最近 Spring—MVC 项目, 定义的过滤器类:
代码如下:
package com.cmcc.soc.aop;
import org.springframework.web.filter.OncePerRequestFilter; // 过滤器类 需要 实现的 每次请求都过滤的类
import javax.servlet.FilterChain; //请求的 处理链
import javax.servlet.ServletException; //servlet 的异常
import javax.servlet.http.HttpServletRequest; //http 的请求
import javax.servlet.http.HttpServletResponse; //http 的响应
import java.io.IOException; //io 流异常
import java.io.PrintWriter; // 字符输出流
/**
* Project: soc
* User: Henry
* Date: 13-7-26
* Description:
* Modify Memo:
*/
public class AuthenticationFilter extends OncePerRequestFilter {//继承一个 每次都过滤的过滤器类
@Override
protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) throws ServletException, IOException {
// 不过滤的uri
String[] notFilter = new String[] { "/Login/Login.do","/Home/Index.do"};// 设置不过滤的uri
// 请求的uri
String contextpath = request.getContextPath(); //获取上下文的路径
String spring_uri = request.getRequestURI().replace(contextpath, ""); //获取 请求的 uri
boolean doFilter = true;// 简写 doFiter 为true 时 会执行下面的
for (String s : notFilter) { //遍历 不过滤的uri
if (spring_uri.equals(s)) { //取过 获取的uri 包含不过滤的 uri doFiter 返回false
// 如果uri中包含不过滤的uri,则不进行过滤
doFilter = false;
break; //退出 循环
}
}
if (doFilter) {
Object obj = request.getSession().getAttribute("user");//获取session 中的值
if (null == obj) { //如果session中的值是空的话 设置 响应
// 如果session中不存在登录者实体,则弹出框提示重新登录
// 设置request和response的字符集,防止乱码
request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");
PrintWriter out = response.getWriter();// 字符输出流
String loginPage = "/Login/Login.do";//登录页
StringBuilder builder = new StringBuilder();
//javascript
builder.append("<script type=\"text/javascript\">");
builder.append("alert('网页过期,请重新登录!');");
builder.append("window.top.location.href='");// 地址转到
builder.append(contextpath);//项目 路径
builder.append(loginPage);// 登录页
builder.append("';");
builder.append("</script>");
out.print(builder.toString()); //输出
} else {
// 如果session中存在登录者实体,则继续
filterChain.doFilter(request, response);
}
} else {
// 如果不执行过滤,则继续
filterChain.doFilter(request, response);
}
}
}
相关推荐
spring mvc 过滤器,实现url过滤,权限模块经常用到的,很不错
spring mvc拦截器,过滤json数据中的null值,将null变成空字符串,内含截图,及jar包
本篇文章主要介绍了Spring MVC过滤器-登录过滤,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧。
通过原理主要给大家解析了关于Spring mvc的内置编码过滤器的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起看看吧。
它分离了控制器、模型对象、过滤器以及处理程序对象的角色,使得它们更容易进行定制。 Spring MVC的优点包括: 基于MVC架构模式,有助于将web层进行职责解耦。 容易理解上手快,使用简单。Spring MVC支持注解,...
主要是对java spring,spring mvc等知识链条学习归纳,实现了前端jsp和后端spring交互的简单mvc应用,项目已经实现拦截器、过滤器和监听器,数据CURD简单操作,附mysql包。环境:开发工具-idea,mysql + java13 + ...
spring mvc的学习笔记,主要讲解了基于xml的配置,和如何增加spring mvc拦截器,如何返回json报文
基于java语言,spring mvc+hibernate联合开发,mysql数据库,设置登录过滤器,错误拦截器,在必要填写字段设置啦字段长度判断,在学号工号等唯一字段进行检测,合理的数据库映射关系,在一些操作做到啦级联管理
内容概要:该资源是Spring全家桶视频课程的第二部分Spring MVC的源码,其对于Spring的最常用的基本功能,如:表单、国际化、过滤器、拦截器、log等都使用案例进行了说明,并且在最后通过一个贯穿前、中、后台的案例...
该程序使用eclipse作为开发工具,mysql作为数据库。...dwz框架中的乱码问题不用太管,spring mvc自带的过滤器已经配置好了,网页发布到tomcat服务器后查看不会有乱码。 希望能帮到大家。也感谢给我帮助过的人。
自己搭建的简单的Spring + Spring MVC + Mybatis框架 功能比较简单但是比较实用 初学者适用 需项目使用的请自行添加功能 集成功能 1.提供分页参数自动查询总数 2.实体校验(hibernate-validator) ...5.字符编码过滤器
Spring mvc 配置: WEB/INF/springmvc-servlet.xml//编码过滤器//静态资源忽略//AOP代理方式设定//拦截器配置//cglib动态代理
,Spring Web编程模型,基于权限配置的方式:核心是1个拦截器,基于注解的权限控制:核心是1个切面,WebFlux编程模型,基于权限配置的方式:核心是1个过滤器,基于注解的权限控制:核心是1个切面
spring mvc demo 入门实例,手把手个人笔记
NULL 博文链接:https://hw1287789687.iteye.com/blog/2046621
本框架使用Maven整合jar包,完全按照SpringFramework官方规范整合,加入Druid数据源及SpringJDBC,使用servlet3.1容器,代码整洁易读,不懂spring4及servlet3.1规范的同学可以下载看一看,收获一定不小。另:结合...
AOP,JPA,事务管理,拦截器,过滤器,阿里的数据连接池,Beetl,Json
springmvc跨域处理,和过滤器方式跨域处理的主要代码,整体系统基于springboot框架搭建
javaControlTastaMaster 使用JSP,Spring MVC,JPA,过滤器和身份验证进行任务控制的Java应用程序。
弹簧过滤器 [MVC生命周期](#MVC生命周期) [如何使用过滤器](#如何使用过滤器) 使用指南 , 弹簧过滤器 使用Servlet的ServletContext函数,可以在用户调用Servlet之前/之后检查并设置用户的请求/响应标头信息...