首页 > 其他分享 >web03(过滤器,监听器,cookie)

web03(过滤器,监听器,cookie)

时间:2023-11-19 23:25:08浏览次数:35  
标签:Session request session web03 监听器 Cookie cookie response

  • 过滤器 (Filter)
  1. 作用:在访问到正式资源之前进行过滤(请求到达Servlet之前、Servlet处理之后以及响应返回客户端之前进行干预);
  2. 解决中文乱码问题:
        public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
            //设置请求的编码格式
            request.setCharacterEncoding("UTF-8");
            response.setCharacterEncoding("GBK");
            chain.doFilter(request, response);
        }
  3. 要实现Filter过滤器,implements Filter;
  4. 重写Filter的抽象方法,init()进入,doFilter()验证,destroy()销毁;
        public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
                throws IOException, ServletException {
            //验证用户的请求是否拥有登录状态
            HttpServletRequest req=null;
            HttpServletResponse resp=null;
            if(request instanceof HttpServletRequest) {
                req=(HttpServletRequest)request;
                resp=(HttpServletResponse)response;
            }
            //通过请求获取session对象
            HttpSession session=req.getSession();
            //检查session中是否存储了登录的数据
            Object loginobj=session.getAttribute(Sys.LOGIN_USER);
            if(loginobj!=null) {
                //如果登录了,就放行
                chain.doFilter(request, response);//有下一个过滤器就进入,不然就进入servlet  过滤器用同一个注解 比如:@WebFilter("/easyi")
                System.out.println("------已经登录");
            }else {
                //如果没有登录就回应对应数据
    //            response.getWriter().write("未登录");
                resp.sendRedirect("http://localhost:8080/wed/login2.jsp");//重定向
            }
  5. 过滤器的实现过程

  • 监听器(Listener)
  1. 监听作用域对象  生命周期和存放值;如:RequestAttributeListener;
  2. 生命周期监听器;如:RequestListener;
  3. 实现接口:如:implements ServletRequestAttributeListener 或 ServletRequestListener
  4. 有六种监听器,request,session,contextlistener
  • Cookie
  1. 创建Cookie
     Cookie cookie = new Cookie("cookieName", "cookieValue"); 
  2. 设置Cookie的有效期:
     cookie.setMaxAge(60 * 60 * 24); // 设置有效期为一天(以秒为单位) 
  3. 将Cookie添加到响应中:
    response.addCookie(cookie); // 将Cookie添加到响应中 
  4. 从请求中获取Cookie:
     Cookie[] cookies = request.getCookies(); // 获取请求中的所有Cookie  
     for (Cookie c : cookies) {  
     if ("cookieName".equals(c.getName())) {  
     String cookieValue = c.getValue(); // 获取名为"cookieName"的Cookie的值  
     // 根据cookieValue进行相应的操作  
     }  
     } 
  • session和cookie的区别
  1. 保存位置:Session保存在服务器端的内存中,而Cookie保存在客户端,通常是浏览器中或者文件中。
  2. 保存时间:Session在关闭当前会话后会自动清空,而Cookie的存留时间取决于过期时间。
  3. 安全性:由于Session保存在服务器端,相对较安全,而Cookie保存在客户端,存在安全隐患,可能被拦截或被人为清除。
  4. 大小限制:Session没有大小限制,而Cookie的大小通常受限于浏览器,一般是4K左右。
  5. 稳定性:由于Session保存在服务器端,相对较稳定。而Cookie在客户端,受用户控制,可能被禁用或清除。
  6. 生存周期:Session通常在浏览器关闭后消失,而Cookie的生存周期取决于预先设置的生存周期或永久的保存于本地文件。
  • 数据库连接池
  1. 常用数据库连接池:DBCP C3P0 druid;
  2. xmind

标签:Session,request,session,web03,监听器,Cookie,cookie,response
From: https://www.cnblogs.com/wxy01/p/17840644.html

相关文章

  • 抖音cookie多账号自动点赞脚本,可关注插件,可导入用户UID安全码,开源版
    刚给用户定制的一个抖音自动点赞脚本,就是可以导入用户ID,然后软件会自动点赞主页第一条视频,然后自动点赞,可选择关注或者点赞,选择后软件会自动判断,按条件实现关注或点赞,用精易VIP助手开发的,调用谷歌浏览器模块。ui界面:  完整源代码:========================================......
  • 微博cookie批量自动私信脚本,协议版,可发图片文字,用鱼刺模块开发!
    这个软件我也开源出来,包括DLL部分,程序集,完整的都分享给大家,方便大家学习一下代码的结构和运行原理,很多人都会开发这类的软件,但是都调用了填表模块,协议的很少会,那么这个软件就是一个非常不错的一个参考案例,仅供学习哈。UI部分: 程序集代码:===================================......
  • 抖音快手小红书贴吧cookie上号登录工具,可对接私信评论!谷歌浏览器内核开发
    这个源码是用精易VIP模块开发的,优点:由C++开发,专为易语言深度定制,自动化测试框架,纯C++开发,为易语言进行针对性优化,并且结合易语言人群的编程习惯,采用更人性化的命名规范,执行效率更高,使得操作更简单,稳定性更强。所以它是直接调用谷歌谷歌浏览器内核的,只要你的账号支持在谷歌浏览器......
  • 第十五天-登录验证&Cookie&Session&验证码安全
    1、后台验证-登录用户逻辑安全2、后台验证-COOKIE&SESSION3、后台验证-验证码&万能密码等登陆验证流程:1.发送登录请求:账号,密码2.接收账号密码3.判断账号密码准确性正确->成功登录,跳转页面失败->跳转到重新登录页面后台管理系统有多个文件页面,为了方便验证,一般会选用cook......
  • 抖音私信群发工具cookie,批量导入UID安全码,易语言谷歌模版开源
    用精易浏览器的谷歌模版开发的工具,最主要的是可以多账号登录抖音号,而且可以导入COOKIE,也能提取cookie,就实现了一种多账号私信的效果,可以搭配代理IP效果的,这个我没加入,我就分享下源码,开源就行了,软件基础都设计好了,可以实现的功能就是可以多账号登录【cookie写入本地txt分割】然后导......
  • 抖音批量私信群发工具,非脚本,cookie多账号uid安全码,谷歌浏览器内核
    为什么说是谷歌浏览器内核呢?因为它调用的是谷歌浏览器内核,调用你本地电脑上安装的谷歌浏览器,比如cookie提取还有原创,以及网页的填表都是直接调用你电脑的谷歌浏览器内核,所以安全性和稳定性非常高,用精易VIP模块开发的,支持导入抖音用户ID,然后实现批量群发私信的效果,因为是cookie原理......
  • 前端学习-JavaScrip学习-cookie
    在使用Microsoftedge的时候,运行以下代码会报兼容性错误,但是一直没解决'content-type'headercharsetvalueshouldbe'utf-8'.使用chrome不会存储cookie也没有报错使用火狐可以成功存储cookie<!DOCTYPEhtml><htmllang="en"><head><metacharset="......
  • 212-c# url下载pdf,url请求,有参数,且携带cookies
    usingSystem;usingSystem.Net;usingSystem.Net.Http;usingSystem.Net.Http.Headers;usingSystem.Threading.Tasks;classProgram{staticvoidMain(){//设置要下载的PDF文件的URLstringpdfUrl="https://example.com/path/to/your/pdf......
  • 11.cookie注入
    原理 在这里更改cookies的值 黑盒测试下的cookies注入   实战创建额外的cookies值,并将其填充为'发送报文发现需要跳转,跟随跳转发现报错三次不同的注入发现报错结果不同可以证明这里拥有cookies注入点利用联合查询得到敏感信息......
  • Lumen框架 之设置cookie
    一、配置1、找到同版本的laravel下的\vendor\laravel\framework\src\Illuminate\Cookie目录下的文件拷贝到lumen的\vendor\illuminate\cookie目录下二、使用$cookie=\Symfony\Component\HttpFoundation\Cookie::create('login_user',$login_user,time()+3600); ......