java项目
打开java web项目的web.xml,配上如下代码
上面配置过滤器中我们可以看到,有个com.ccse.frame.filter.SessionFilter 这个类,那下面我们就把这个类加入项目中,路径自己设置。代码如下package com.ccse.frame.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 SessionFilter implements Filter { public void init(FilterConfig filterConfig) throws ServletException { } public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { HttpServletRequest req = (HttpServletRequest) request; HttpServletResponse res = (HttpServletResponse) response; HttpSession session = req.getSession(true); //从session里取的用户名信息 String username = (String) session.getAttribute('baseUserId');//这句话自己改,看登陆的时候在session里插入了什么,就去什么去判断。 //判断如果没有取到用户信息,就跳转到登陆页面 if ((username == null) || ''.equals(username)) { //跳转到登陆页面 res.sendRedirect('http://' + req.getHeader('Host') + '/login_oa.jsp'); } else { //已经登陆,继续此次请求 chain.doFilter(req, res); } } public void destroy() { }}如下图
下面在不登陆我们访问下项目中的某个文件活action请求,看看是不是不能访问,自动跳转到上面定义的登陆页面了,哈哈就这么简单,大功告成。
自己修改代码里的session获取,和跳转的登陆页面
自己修改xml中的,要拦截项目中的那些目录,如我的jsp在page下,所以拦截这里。