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;

TODO java-web相关 servlet过滤器+监听器的更多相关文章

  1. 在Java Web程序中使用监听器可以通过以下两种方法

    之前学习了很多涉及servlet的内容,本小结我们说一下监听器,说起监听器,编过桌面程序和手机App的都不陌生,常见的套路都是拖一个控件,然后给它绑定一个监听器,即可以对该对象的事件进行监听以便发生响 ...

  2. Java web相关内容

    我们即将学习Java web 这是通过查阅资料找到的和Java web 相关的内容. 一:Java web的含义 JavaWeb,是用Java技术来解决相关web互联网领域的技术总和.web包括:we ...

  3. Java Web相关技术(汇聚页)

    Java Web相关技术(汇聚页) 初学Java Web(2)——搭建Java Web开发环境

  4. Java Web之Servlet中response、request乱码问题解决

    Java Web之Servlet中response.request乱码问题解决   一.request请求参数出现的乱码问题 get请求: get请求的参数是在url后面提交过来的,也就是在请求行中, ...

  5. java web中servlet、jsp、html 互相访问的路径问题

    java web中servlet.jsp.html 互相访问的路径问题 在java web种经常出现 404找不到网页的错误,究其原因,一般是访问的路径不对. java web中的路径使用按我的分法可 ...

  6. 使用Intellij idea新建Java Web项目(servlet) 原理及初步使用

    准备 JDK       (配置JDK_HOME\bin   和 CLASSPATH)   注:JDK8下载已经需要注册了,请使用JDK11(现在是官方长期支持的版本)     对于我们新手来说,JD ...

  7. JAVA WEB 用servlet实现分页,思路比较清晰和简单。

    JAVA WEB 用servlet实现分页,思路比较清晰和简单.借鉴了其他大佬的思路.特别感谢. 是我第一次发表博客,如果有什么错误,欢迎大家指出!,谢谢 一.思路分析 前台一定是有类似这种的界面 点 ...

  8. 05).30分钟学会Servlet+过滤器+监听器+实际案例

    一.Servlet简介: Servlet程序处理流程 二.Servlet程序实现 实现要求 Servlet属于java ee范畴,而java和javac属于java se范畴,要想编译servlet必 ...

  9. Java Web进阶——Filter过滤器

    一.过滤器的介绍: 在Servlet规范2.3中定义了过滤器,它是一个服务器端的组件,可以截取用户端的请求与响应信息,并且对这些信息进行过滤. Servlet过滤器本身并不生成请求和响应对象,只是提供 ...

随机推荐

  1. React Router 4.0 基本使用

    路由的概念,起初来源于服务端,就是当浏览器访问一个网站的不同页面时,服务端能够正确的返回页面的内容.当访问首页时,它能返回首页的内容,访问关于我们页面时,返回关于我们的内容.可以看到路由就是一种控制和 ...

  2. Nginx 如何通过连接池处理网络请求

    L:35-36 worker_connections 默认 512个 这个链接需要设置的  worker_cpu_affinity 0001 0010 0100 1000;关联CPU connecti ...

  3. Spring MVC 使用介绍(三)—— Controller接口控制器

    一.概述 Controller接口类图如下,其中,BaseCommandController已从Spring 4移除 基于继承Controller接口的方式已经不推荐使用,仅供学习参考 二.基于Con ...

  4. BZOJ2658 ZJOI2012 小蓝的好友(treap)

    显然转化为求不包含关键点的矩形个数.考虑暴力,枚举矩形下边界,求出该行每个位置对应的最低障碍点高度,对其建笛卡尔树,答案即为Σhi*(slson+1)*(srson+1),即考虑跨过该位置的矩形个数. ...

  5. Treasure Hunting HDU - 3468

    题意: 输入一个n行m列的图 每次按字母顺序走最短路, 从一个字母走到下一个字母的过程中,只能拿走一个金子,求走完当前图中所有的字母后能拿到的金子的最大值 解析: bfs求最短路 对于一个金子如果 d ...

  6. MT【256】2016四川高考解答压轴题

    (2016四川高考数学解答压轴题)设函数$f(x)=ax^2-a-\ln x,a\in R$. 1)讨论$f(x)$的单调性;2)确定$a$的所有可能值,使得$f(x)>\dfrac{1}{x} ...

  7. ALLOT流控设备操作手册指引

    ALLOT流控设备操作手册指引 1  简介 1.1 设备介绍 1.1.1 NetXploeer三层结构 Allot设备的管理如上图所示,采用三层结构. 1)NetEnforcer层,包括所有型号的Ne ...

  8. python3 字典dict

    字典是用大括号{}表示 dict() 键必须是唯一的,但值则不必:键是不可变的,如字符串.数字.元组,值可以取任意数据类型: 可以迭代, del可以删除一对键值,del Dict['key'] 重复给 ...

  9. 【BZOJ5303】[HAOI2018]反色游戏(Tarjan,线性基)

    [BZOJ5303][HAOI2018]反色游戏(Tarjan,线性基) 题面 BZOJ 洛谷 题解 把所有点全部看成一个\(01\)串,那么每次选择一条边意味着在这个\(01\)串的基础上异或上一个 ...

  10. 一点理解之 CmBacktrace: ARM Cortex-M 系列 MCU 错误追踪库

    @2019-02-14 [小记] CmBacktrace: ARM Cortex-M 系列 MCU 错误追踪库,用来将单片机故障状态寄存器值翻译出来输出至终端上以便排错 CmBacktrace: AR ...