需要写个拦截器,当用户没有登录的时候某些页面是不能访问的
用法将需要登录后访问的文件全部放在一个文件夹中,这里是logined文件夹
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.StringTokenizer;
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 com.tlt.app.bean.Useraccount;
import com.tlt.app.util.Constants;
public class SessionFilter implements Filter{
private List list = new ArrayList();
public void destroy() {
// TODO Auto-generated method stub
}
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
// TODO Auto-generated method stub
String path=((HttpServletRequest)request).getServletPath();
// System.out.println("path="+path);
for(int i=0;i<list.size();i++){
if(path.indexOf((String)list.get(i))!=-1){//需要拦截
if (((HttpServletRequest) request).getSession().getAttribute(Constants.USER_KEY) == null) {//session不存在需要拦截
String contextPath=((HttpServletRequest)request).getContextPath();
// System.out.println("ContextPath="+contextPath);
((HttpServletResponse)response).sendRedirect(contextPath+"/login.jsp?toPath="+servletPath);//记录下登录后需要跳转到的页面,比如:/logined/account.jsp
}else{
chain.doFilter(request, response);
}
break;
}else{
chain.doFilter(request, response);
}
}
}
public void init(FilterConfig filterConfig) throws ServletException {
// TODO Auto-generated method stub
//初始化需要拦截的文件夹
String include = filterConfig.getInitParameter("include");
if (include != null) {
StringTokenizer st = new StringTokenizer(include, ",");
list.clear();
while (st.hasMoreTokens()) {
list.add(st.nextToken());
}
}
}
}
可以使用多个文件夹,只需要将<param-value>中的值之间用“,”隔开。
<filter>
<filter-name>sessionFilter</filter-name>
<filter-class>com.tlt.app.filter.SessionFilter</filter-class>
<init-param>
<param-name>include</param-name>
<param-value>logined</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>sessionFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
分享到:
相关推荐
登录拦截器(通用版)
理解拦截器 1.1. 什么是拦截器: 拦截器,在AOP(Aspect-Oriented Programming)中用于在某个方法或字段被访问之前,进行拦截然后在之前或之后加入某些操作。拦截是AOP的一种实现策略。 在Webwork的中文文档的解释...
Jfinal通过拦截器实现登录验证,要访问控制层的方法必须先登录通过验证
一个简单的基于java SSM框架的登录拦截器demo,里面有非常详细的代码,简单易懂,方便初次接触拦截器的人使用
例如通过拦截器可以进行权限验证、记录请求信息的日志、判断用户是否登录等。 15.1.1 拦截器的定义 要使用Spring MVC中的拦截器,就需要对拦截器类进行定义和配置。通常拦截器类可以通过两种方式来定义。 通过实现...
使用spring+struts2+hibernate实现简单的登录拦截器。实现登录。用户注销功能。单表增删查实现分页功能
初学者很容易将 Spring MVC 拦截器 和 Spring Cloud OpenFeign 拦截器搞混,误以为OpenFeign拦截器就是SpringMVC拦截器:Spring MVC拦截器发生在客户端 和 服务端之间,在客户端向服务端发送请求时进行拦截处理。...
SpringBoot 简单登录功能 拦截器实现。 在实际开发中,我们经常会遇到某些页面需要登录才能查看的情况。下面使用拦截器实现该功能,在用户没有登录的情况下,将网站的所有访问都指向登录页面。 Springboot 登录
简单的通过SSM技术利用拦截器实现登录拦截,
SpringBoot整合Mybatis完整详细版含注册、登录、拦截器配置功能
Springmvc框架进行登录验证,除了某些特定的action请求不需要登录验证,例如登录,注册等。其他的action请求均需要登录验证,若没有登录则直接调到登录界面。若登录成功,则通过拦截
uni-app 请求拦截器
基于Springboot前后端分离式,利用拦截器完成登录拦截的demo ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信...
该压缩包实现了利用过滤器或者拦截器对登录信息进行验证跳转登陆页的功能,利用的是SpringBoot和thymeleaf,使用前请先看使用说明
spring boot jpa连接数据库,设置拦截器拦截指定路径下的文件。
Struts2拦截器(Interceptor) Struts2拦截器(Interceptor)
mybatis mysql 分页拦截器,可以针对方法名称,或指定的参数进行拦截
spring boot简单应用,配置yml文件,实现mysql数据库的连接,对数据进行增删改查,另有登录拦截器。
spring-boot 拦截器 登录拦截spring-boot 拦截器 登录拦截spring-boot 拦截器 登录拦截spring-boot 拦截器 登录拦截
JavaEE 拦截器用户登录案例源代码