j2ee过滤器实现的主要代码
Posted 情似雨餘黏地絮
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了j2ee过滤器实现的主要代码相关的知识,希望对你有一定的参考价值。
首先实现Filter接口(该实例是用于判断session中是否存在用户)
package com.xinzhi.filter; 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; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; public class LoginFilter implements Filter { public void destroy() { } public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException { HttpServletRequest request = (HttpServletRequest) req; HttpServletResponse response = (HttpServletResponse) res; // 1. 获取请求资源,截取 String uri = request.getRequestURI(); // /emp_sys/login.jsp // 截取 【login.jsp或login】 String requestPath = uri.substring(uri.lastIndexOf("/") + 1, uri .length()); // 2. 判断: 先放行一些资源:/login.jsp、/login if ("LoginServlet".equals(requestPath) || "login.jsp".equals(requestPath)) { // 放行 chain.doFilter(request, response); } else { // 3. 对其他资源进行拦截 // 3.1 先获取Session、获取session中的登陆用户(loginInfo) HttpSession session = request.getSession(false); // 判断 if (session != null) { Object obj = session.getAttribute("adminname"); // 3.2如果获取的内容不为空,说明已经登陆,放行 if (obj != null) { // 放行 uri = requestPath; // chain.doFilter(request, response); } else { // 3.3如果获取的内容为空,说明没有登陆; 跳转到登陆 uri = "jsp/login.jsp"; } } else { // 肯定没有登陆 uri = "jsp/login.jsp"; } request.getRequestDispatcher(uri).forward(request, response); } } public void init(FilterConfig arg0) throws ServletException { // TODO Auto-generated method stub } }
然后要在web.xml配置文件中指定相关信息
<filter> <filter-name>filter</filter-name> <filter-class>com.xinzhi.filter.LoginFilter</filter-class> </filter> <filter-mapping> <filter-name>filter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
以上是关于j2ee过滤器实现的主要代码的主要内容,如果未能解决你的问题,请参考以下文章
《java精品毕设》基于javaweb宠物领养平台管理系统(源码+毕设论文+sql):主要实现:个人中心,信息修改,填写领养信息,交流论坛,新闻,寄养信息,公告,宠物领养信息,我的寄养信息等(代码片段