您的位置:首页 > 其它

动手学servlet(六) 过滤器和监听器

2015-05-16 17:33 281 查看
[b] 过滤器(Filter)[/b]

过滤器是在客户端和请求资源之间,起一个过滤的作用,举个例子,比如我们要请求admin文件夹下的index.jsp这个页面,那么我们可以用一个过滤器,判断登录用户是不是管理员

-请求资源可以是servlet,jsp页面,html页面等

-在请求资源的前后执行

-请求和响应可以通过filter修改

过滤器常用在这几个方面:[b]Session管理权限验证日志记录字符编码转换[/b]

package servletdemo;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

/**
* Servlet implementation class TestListenerServlet
*/
@WebServlet("/TestListenerServlet")
public class TestListenerServlet extends HttpServlet {
private static final long serialVersionUID = 1L;

/**
* @see HttpServlet#HttpServlet()
*/
public TestListenerServlet() {
super();
// TODO Auto-generated constructor stub
}

/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
HttpSession session=request.getSession();
session.setAttribute("session_name", "session_value");
//替换
session.setAttribute("session_name", "session_value2");
//删除
session.invalidate();
}

/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
}

}


创建servlet
运行servlet,该监听器的事件会执行,效果如下



还有一个HttpRequestListener和HttpRequestAttributeListener,一运行servlet就会创建一个request,所以对应的监听器的add事件就会执行

还有监听器的配置文件代码:

<listener>
<listener-class>servletdemo.MyListener</listener-class>
</listener>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: