SERVLETJSP Unit08: 过滤器、监听器
来源:互联网 发布:特效文字制作软件 编辑:程序博客网 时间:2024/05/29 11:25
一.过滤器
1.过滤器的作用
用来处理项目中的公共的业务
记录日志,过滤敏感词,登录检查
公共业务:很多请求都需要进行处理的业务
2.使用步骤
创建一个类,实现Filter接口
在web.xml中配置此类
3.小案例
4.登录检查
5.参数说明
二.监听器
1.什么是监听器
监听器用来监听事件,当某事件发生时,它会通知服务器
它监听的目标是一些对象
2.监听器的分类(接口)
1) request
创建与销毁:ServletRequestListener
数据的变化:ServletRequestAttributeListener
2) session
创建与销毁:HttpSessionListener
数据的变化:HttpSessionAttributeListener
3) context
创建与销毁:ServletContextListener
数据的变化:ServletContextAttributeListener
3.开发步骤
创建一个类,实现对应的监听器接口
在web.xml中声明此类
案例
AddCostServlet.java
package web;import java.io.IOException;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;public class AddCostServlet extends HttpServlet { @Override protected void service( HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { System.out.println("增加资费"); }}
FindCostServlet.java
package web;import java.io.IOException;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;public class FindCostServlet extends HttpServlet { @Override protected void service( HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { System.out.println("查询资费"); req.setAttribute("name", "zhangsan"); }}
GuolvFilter.java
package web;import java.io.IOException;import javax.servlet.Filter;import javax.servlet.FilterChain;import javax.servlet.FilterConfig;import javax.servlet.ServletException;import javax.servlet.ServletRequest;import javax.servlet.ServletResponse;public class GuolvFilter implements Filter { public void destroy() { System.out.println("销毁GuolvFilter"); } public void doFilter( ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException { System.out.println("在前面过滤敏感词"); chain.doFilter(req, res); System.out.println("在后面过滤敏感词"); } String words; public void init(FilterConfig cfg) throws ServletException { System.out.println("初始化GuolvFilter"); words = cfg.getInitParameter("words"); System.out.println("words:"+words); }}
LogFilter.java
package web;import java.io.IOException;import javax.servlet.Filter;import javax.servlet.FilterChain;import javax.servlet.FilterConfig;import javax.servlet.ServletException;import javax.servlet.ServletRequest;import javax.servlet.ServletResponse;public class LogFilter implements Filter { public void destroy() { System.out.println("销毁LogFilter"); } public void doFilter( ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException { System.out.println("在前面记日志"); //请求继续,向下执行 chain.doFilter(req, res); System.out.println("在后面记日志"); } public void init(FilterConfig arg0) throws ServletException { System.out.println("初始化LogFilter"); }}
MyListener.java
package web;import javax.servlet.ServletRequestAttributeEvent;import javax.servlet.ServletRequestAttributeListener;import javax.servlet.ServletRequestEvent;import javax.servlet.ServletRequestListener;public class MyListener implements ServletRequestListener, ServletRequestAttributeListener { public void requestDestroyed(ServletRequestEvent e) { //request销毁时调用 System.out.println("销毁request"); System.out.println(e.getServletRequest()); } public void requestInitialized(ServletRequestEvent arg0) { //request创建时调用 System.out.println("创建request"); } public void attributeAdded(ServletRequestAttributeEvent arg0) { System.out.println("向request添加数据"); } public void attributeRemoved(ServletRequestAttributeEvent arg0) { // TODO Auto-generated method stub } public void attributeReplaced(ServletRequestAttributeEvent arg0) { // TODO Auto-generated method stub }}
web.xml
<?xml version="1.0" encoding="UTF-8"?><web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5"> <display-name>jsp5</display-name> <welcome-file-list> <welcome-file>index.html</welcome-file> <welcome-file>index.htm</welcome-file> <welcome-file>index.jsp</welcome-file> <welcome-file>default.html</welcome-file> <welcome-file>default.htm</welcome-file> <welcome-file>default.jsp</welcome-file> </welcome-file-list> <servlet> <servlet-name>findCost</servlet-name> <servlet-class>web.FindCostServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>findCost</servlet-name> <url-pattern>/findCost</url-pattern> </servlet-mapping> <servlet> <servlet-name>addCost</servlet-name> <servlet-class>web.AddCostServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>addCost</servlet-name> <url-pattern>/addCost</url-pattern> </servlet-mapping> <filter> <filter-name>log</filter-name> <filter-class>web.LogFilter</filter-class> </filter> <filter-mapping> <filter-name>log</filter-name> <!-- 声明Filter对哪些请求路径有效,即 用户在访问哪些路径时Tomcat调用此Filter. --> <url-pattern>/*</url-pattern> </filter-mapping> <!-- 多个Filter其顺序以mapping的配置顺序为准 --> <filter> <filter-name>guolv</filter-name> <filter-class>web.GuolvFilter</filter-class> <init-param> <param-name>words</param-name> <param-value> 靠,TMD,NND </param-value> </init-param> </filter> <filter-mapping> <filter-name>guolv</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <!-- 注册监听器,Tomcat会在相应事件发生时, 自动调用此监听器的对应的方法. --> <listener> <listener-class> web.MyListener </listener-class> </listener></web-app>
阅读全文
0 0
- SERVLETJSP Unit08: 过滤器、监听器
- SERVLETJSP学习(八)—— 过滤器、监听器
- 过滤器、监听器
- 过滤器 监听器
- 过滤器 监听器
- 过滤器-监听器
- 过滤器-监听器
- 过滤器、监听器
- 过滤器、监听器
- 监听器/过滤器
- servletjsp
- 过滤器、监听器 (监听器 )
- 过滤器、监听器 (过滤器)
- servlet过滤器和监听器
- java--监听器、过滤器
- servlet 过滤器 监听器
- java--监听器、过滤器
- 作用域、监听器、过滤器
- 思维导图模板下载
- 指定地址的复制
- IDEA调试
- maven项目遇到的问题
- 有什么用的方法可以让网站权重快速提高?
- SERVLETJSP Unit08: 过滤器、监听器
- ELK学习1_开源分布式搜索平台ELK+Redis+Syslog-ng实现日志实时搜索
- [leetcode]160. Intersection of Two Linked Lists
- Thinking in java-32 Iterable & Iterator Inteface
- crack the coding interview 数组与字符串 1.5
- 三元组相加获得target
- Android 性能优化之MAT分析内存泄漏
- 润乾报表DQL组件如何为查询字段的检索条件设置编辑风格
- 转载:android适配屏幕