javaweb登陆过滤器实现
Posted Jarbein
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javaweb登陆过滤器实现相关的知识,希望对你有一定的参考价值。
在web.xml中配置登陆过滤器:
<!-- 配置登陆过滤器 --> <filter> <filter-name>loginFilter</filter-name> <filter-class>weijiabin.BBS.Utils.LoginFilter</filter-class> <init-param> <param-name>passUrl</param-name> <param-value>index;login;FunctionServlet</param-value> </init-param> </filter> <filter-mapping> <filter-name>loginFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
上边代码中的param-value用来设置不进行拦截的地址关键字(以;作为分隔符),在下边过滤器代码中用passUrl表示
然后写过滤器代码:
public class LoginFilter implements Filter { @Override public void destroy() { // TODO Auto-generated method stub } String passUrl = ""; @Override public void doFilter(ServletRequest arg0, ServletResponse arg1, FilterChain arg2) throws IOException, ServletException { HttpServletRequest httpRequest=(HttpServletRequest)arg0; HttpServletResponse httpResponse=(HttpServletResponse)arg1; HttpSession session=httpRequest.getSession(); String[] strArray = passUrl.split(";");
//下边循环作用是依次检查访问的url中是否包含passurl中的关键字,如果包含则不进行拦截 for (String str : strArray) { if (str.equals(""))//如果在上边配置中设置的url为空,则说明都需要进行拦截,跳过此循环 continue; if (httpRequest.getRequestURL().indexOf(str) >= 0) { arg2.doFilter(httpRequest, httpResponse); return; } } if(session.getAttribute("sessionUser")!=null){ arg2.doFilter(httpRequest, httpResponse); } else{ httpResponse.sendRedirect(httpRequest.getContextPath()+"/login.jsp"); } } @Override public void init(FilterConfig arg0) throws ServletException { // TODO Auto-generated method stub passUrl = arg0.getInitParameter("passUrl"); } }
以上是关于javaweb登陆过滤器实现的主要内容,如果未能解决你的问题,请参考以下文章
《java精品毕设》基于javaweb宠物领养平台管理系统(源码+毕设论文+sql):主要实现:个人中心,信息修改,填写领养信息,交流论坛,新闻,寄养信息,公告,宠物领养信息,我的寄养信息等(代码片段