当前位置:首页 > 过滤器和监听器
1、用户禁止cookie以后,如何继续使用session。
1)解决方式:
使用url重写机制。 2)什么是url重写。 如果要访问的web组件(jsp/servlet)需要 session机制的支持,那么,不能够直接输入 该web组件的地址,而应该使用服务器生成的 包含有sessionId的地址。 3)编程
如何生成包含有sessionId的地址? //适用于链接、表单提交 response.encodeURL(String url); //适用于重定向
response.encodeRedirectURL(String url);
2、过滤器
1)什么是过滤器
servlet规范当中定义的一种特殊的类,用于对 servlet容器的调用过程进行拦截。
2)怎样写一个过滤器
step1 写一个java类,实现一个Filter接口。 step2 在doFilter方法里,实现过滤的逻辑。 step3 配置(web.xml)。 3)配置初始化参数 step1
web.xml中,使用
step2 在Filter类当中, 使用FilterConfig.getInitParameter(String paraName);
来获得初始化参数。 4)过滤器的优先级
当有多个过滤器都满足过滤的条件时,依据
5)过滤器的优点 a,可以将多个web组件相同的逻辑写在一个
过滤器当中,方便代码的维护。
b,可以实现代码的“可插拔性\。给一个软件 增加或者减少某个功能,不会影响到已经存在
的功能。 练习:
写一个CommentFilter2过滤器,该过滤器会 检查comment参数值是否长度超过指定的范围( 该范围使用初始化参数来配置,比如20)。如果
超过长度范围,提示用户,否则,显示comment参数
值。
3、监听器 1)什么是监听器?
servlet规范当中定义的一种特殊的类, 作用是监听容器当中产生的一些事件并进行 相应的处理。 容器产生的事件指的是两大类事件: 第一大类:生命周期相关的事件,指的是当 容器创建或者销毁request,session, ServletContext对象时产生的事件。
第二大类:绑订事件,指的是当调用request, session,ServletContext对象的setAttribute, removeAttribute时产生的事件。 2)如何写监听器
step1 写一个java类,
实现特定的监听器接口类(依据要监听的事件类型)。 step2 在接口声明的方法中,实现监听的逻辑。
step3 配置(web.xml)。 3)ServletContext接口
web服务器在启动时,会为每一个已经部署的应用 创建唯一的一个ServletContext实例。该实例会一直 存在,除非服务器关闭或者应用被删除。 a,如何获得ServletContext实例。
GenericServlet提供了getServletContext()方法。 HttpSession提供了getServletContext()方法。 ServletConfig提供了getServletContext()方法。 b,常用方法 b1,绑订数据
setAttribute(String name,Object obj); getAttribute(String name);
removeAttribute(String name); b2,配置全局的初始化参数
step1 在web.xml中,使用
step2 使用
String ServletContext
.getInitParameter(String paraName);
b3,依据逻辑路径获得实际部署时的物理路径。 String
ServletContext.getRealPath(String url);
练习: 要统计在线人数。
HttpSessionListener
4)上传文件(扩展) step1 在form中,设置method=\ 设置enctype=\。
enctype属性用于设置表单的编码方式,
对于文件上传,必须设置成\。 step2 在servlet类当中,不能够使用
request.getParameter方法来获得参数值。 要使用InputStream request.getInputStream(); 分析InputStream来获得参数值。
直接分析InputStream比较复杂,一般使用一些 封装好的工具(比如apache提供的
commons-fileupload.jar)来获得参数值。
共分享92篇相关文档