web项目前后台登录自定义过滤实现
来源:互联网 发布:企业cms 编辑:程序博客网 时间:2024/06/11 18:39
最近在做一个项目,用到了web的过滤器,与大家分享下:
webxml中需要配置:<pre name="code" class="html"><!-- 登录拦截 --><filter><filter-name>LoginInterceptor</filter-name><filter-class>com.yc.vcloud.utils.LoginInterceptor</filter-class></filter><filter-mapping><filter-name>LoginInterceptor</filter-name><url-pattern>/*</url-pattern></filter-mapping>
Java源码
package com.yc.vcloud.utils;import java.io.IOException;import java.io.PrintWriter;import javax.servlet.FilterChain;import javax.servlet.ServletException;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.springframework.web.filter.OncePerRequestFilter;/** * 登录过滤 * * @author Luo_dawei * */public class LoginInterceptor extends OncePerRequestFilter {@Overrideprotected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain)throws ServletException, IOException {// 不过滤的uriString[] notFilter = new String[] { "login.jsp", "back/backlogin.jsp", "index.html", "register.jsp" };// 请求的uriString uri = request.getRequestURI();// uri中包含page时才进行过滤if (uri.contains("page")) {// 是否过滤boolean doFilter = true;for (String s : notFilter) {if (uri.contains(s)) {// 如果uri中包含不过滤的uri,则不进行过滤doFilter = false;break;}}System.out.println("doFilter==>"+doFilter);if (doFilter) {// 执行过滤// 从session中获取登录者实体Object objUser = request.getSession().getAttribute(SessionAttribute.USERLOGIN);Object objAdmin = request.getSession().getAttribute(SessionAttribute.ADMINLOGIN);if (null == objUser) {// 如果session中不存在登录者实体,则弹出框提示重新登录// 设置request和response的字符集,防止乱码request.setCharacterEncoding("UTF-8");response.setCharacterEncoding("UTF-8");response.setContentType("text/html;charset=utf-8");PrintWriter out = response.getWriter();StringBuilder builder = new StringBuilder();builder.append("<script type=\"text/javascript\">");builder.append("alert('您好,请先登录!');");if (null == objUser) {builder.append("location.href='login.jsp';");}if (null == objAdmin) {builder.append("location.href='backlogin.jsp';");}builder.append("</script>");out.print(builder.toString());} else {// 如果session中存在登录者实体,则继续filterChain.doFilter(request, response);}} else {// 如果不执行过滤,则继续filterChain.doFilter(request, response);}} else {// 如果uri中不包含page,则继续filterChain.doFilter(request, response);}}}
1 0
- web项目前后台登录自定义过滤实现
- Java web项目前后台数据交互
- java web网站中使用shiro实现前后台登录功能
- web前后台如何实现交互的
- laravel5.2实现区分前后台用户登录
- laravel5.5前后台登录认证实现过程详解
- laravel5.2实现区分前后台用户登录
- java web项目简单查询demo前后台完整代码
- 前后台登录模板分离
- 论前后台如何实现web中文件下载功能
- java web——servlet+jsp实现前后台交互
- web前后台数据交互
- web前后台乱码总结
- CAS不使用CAS服务器登录界面(适用于前后台完全分离的项目)
- JSON实现前后台传输
- web项目开发中前后台分别取项目的绝对路径
- Yii中处理前后台登录新方法
- Yii中处理前后台登录新方法
- HDU 3398 String
- 15. 3Sum
- 实战-深入剖析HashMap实现原理
- 再次认识Struts2(四)
- 计算机网络 --万维网www
- web项目前后台登录自定义过滤实现
- 编译错误: Dx unsupported class file version 52.0。。。
- USB电源电路分析
- easyui的强大功能
- c#学习历程3
- Java设计模式——装饰模式(Decorator Pattern)
- iOS - 实现验证码倒计时功能
- Flume官方文档翻译之(八)
- iOS解决CUICatalog: Invalid asset name supplied问题