zoukankan      html  css  js  c++  java
  • TODO java-web相关 servlet过滤器+监听器

    servlet过滤器

    定义:

    过滤器是小型的web组件,它负责拦截请求和响应,以便查看、提供或以某种方式操作正在客户机和服务器之间交换的数据

    与过滤器相关的servlet共包含3个简单接口:Filter/Filter-Chain/FilterConfig.

     要实现过滤器功能,必须先实现Filter接口。

    与servlet类似,Filter也需要在web.xml中配置。

    过滤器的使用:

    1.在实际应用中,可能会遇到需要对某些IP进行访问限制,不让非法的IP访问应用系统,这是就需要用到过滤器进行限制。

    当一个用户发出访问请求时,首先通过过滤器进行判断,如果用户的IP地址呗限制,就禁止访问,只有合法的IP才可以继续访问。

    2.打印版权有效期

    servlet监听器

    主要用来对web应用进行监听和控制,增强web应用的时间处理能力。

    servlet监听就是指一些特殊的servlet类,这些类可以监听web应用上下文信息,servlet会话信息、servlet请求信息

    cookie是一种在客户端保存信息的技术。

    在servlet中,使用java.servlet.http.Cookie类来封装一个Cookie消息,在HttpServletResponse接口中定义了一个addCookie方法来向浏览器发送Cookie消息(也就是Cookie对象),在HttpServletRequest接口中定义了一个getCookies方法来读取浏览器发送的web服务器的所有cookie消息。

     

    SaveCookie

    response.setContentType("text/html;charset=UTF-8");
    
    //添加临时Cookie对象
    
    PrintWriter out = response.getWriter();
    
    //建立超时时间为0的Cookie
    
    Cookie tempCookie = new Cookie("cookie","87654321");
    
    cookie.setMaxAge(0);
    
    response.addCookie(cookie);
    
    String user = request.getParameter("user");
    
      if(user!=null){
    
      //建立永久cookie对象
    
      cookie userCookie = new Cookie("user",user);
    
      userCookie.setMaxAge(60*60*24);
    
      userCookie.setPath("/");
    
      //添加永久cookie对象
    
      response.addCookie(userCookie);
    
    }
    

      

    RequestDispatcher readCookie = 
    
        getServletContext().getRequestDispatcher("/ReadCookie")
    
    readCookie.include(request,response);
    

      

    ReadCookie

    public class ReadCookie extends HttpServlet{
    
      protected Cookie getCookieValue(Cookie[] cookies,String name){
    
        if(cookies !=null){
    
        for(Cookie c :cookies){
    
        if(c.getName().equals(name))
    
        return c;
    
    }
    
      }
    
    return null;
    
    }
    

      

    public void service(HttpServletRequest request,HttpServletResponse response)throws ServletException,IOException{
    
      response.setContentType("text/html;charset=UTF-8");
    
      PrintWriter out = response.getWriter();
    
    //获取临时cookie
    
      Cookie tempCookie =getCookieValue(request.getCookies(),"temp");
    
      if(tempCookie!=null)
    
        out.println("临时Cookie的值"+tempCookie.getValue()+"<br/>");
    
      else
    
        out.println("临时cookie未设置!<br/>");
    
    //获取超时时间为0的cookie
    
      Cookie cookie = getCookieValue(request.getCookies(),"cookie");
    
      if(cookie!=null)
    
        out.println("cookie:"+cookie.getValue()+"<br/>");
    
      else
    
        out.println("cookie已经被删除!<br/>");
    
    //获取永久cookie
    
      Cookie userCookie = getCookieValue(request.getCookies(),"userCookie");
    
      if(userCookie!=null)
    
        out.println("user:"+userCookie.getValue());
    
      else
    
        out.println("user未设置");
    
    }
    
    }
    
     
    

      

    Session技术

    session对象用来保存每个用户的用户信息和会话状态。

    session对象有服务器端自动创建,可以跟踪每个用户的操作状态。

    用户首次登陆系统是,服务器会自动给用户分配唯一表示的SessionID,可以用来区分开其他用户。相对Cookie,Session是存储在服务器端的会话,相对安全,而且其存储长度限制也比Cookie的存储长度限制扩大了。

    通过Cookie跟踪Session;(尚不清楚什么原理)

    //todo

    通过URL跟踪Session;

  • 相关阅读:
    Squid-Squid 多层Cache 如何设置实现墙内直连,墙外域名走国外Proxy
    利用win2008虚拟化hyper-v 和squid反向代理,自己做个IDC
    再次分享 pyspider 爬虫框架
    刘宇:我如何5分钟拿到李书福的投资?
    刘宇:2014年投资感悟
    刘宇(正和磁系资本创始人)_百度百科
    python编写的自动获取代理IP列表的爬虫-chinaboywg-ChinaUnix博客
    采集爬虫中,解决网站限制IP的问题?
    Web 应用性能和压力测试工具 Gor
    dnspod-sr内网轻量级DNS首选方案
  • 原文地址:https://www.cnblogs.com/zhizhiyin/p/6590030.html
Copyright © 2011-2022 走看看