servlet拦截未登录的用户请求

java代码:

package com.gavin.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 LoginFilter implements Filter { public void destroy() {
// TODO Auto-generated method stub } public void doFilter(ServletRequest req, ServletResponse resp,
FilterChain chain) throws IOException, ServletException {
// TODO Auto-generated method stub
HttpServletResponse response = (HttpServletResponse) resp;
HttpServletRequest request = (HttpServletRequest) req;
HttpSession session = request.getSession(true);
String username = (String) session.getAttribute("username");//
String url = request.getRequestURI();
if (username == null || username.equals("")) {
// 判断获取的路径不为空且不是访问登录页面或执行登录操作时跳转
if (url != null && !url.equals("") && (url.indexOf("Login") < 0 && url.indexOf("login") < 0)) {
response.sendRedirect("login.jsp");
return;
}
}
// 已通过验证,用户访问继续
chain.doFilter(req, resp);
} public void init(FilterConfig filterConfig) throws ServletException {
// TODO Auto-generated method stub } }

web.xml配置

 <filter>
<filter-name>loginFilter</filter-name>
<filter-class>com.gavin.filter.LoginFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>loginFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

最新文章

  1. MapReduce实现手机上网流量分析(业务逻辑)
  2. HDU2255-奔小康赚大钱-二分图最大权值匹配-KM算法
  3. 小试牛刀3之JavaScript基础题
  4. ckeditor的详细配置
  5. ajax中网页传输(三)XML——下拉列表显示练习
  6. JavaEE的13种核心技术
  7. jquery animate() 防止多次执行
  8. 关于iptables的u32匹配
  9. hdu 4542 数论 + 约数个数相关 腾讯编程马拉松复赛
  10. js模版引擎开发实战以及对eval函数的改进
  11. 【Android使用Shape绘制虚线,在4.0以上的手机显示实线】解决方式
  12. Python作业之工资管理
  13. torchvision 作用
  14. Linux 的进程间通信:管道
  15. POJ 1904 King&#39;s Quest (强连通分量+完美匹配)
  16. P1993 小K的农场
  17. FAL_CLIENT和FAL_SERVER参数详解
  18. 高可用OpenStack(Queen版)集群-3.高可用配置(pacemaker&amp;haproxy)
  19. 项目bug的修正
  20. JNI 详细使用 基础【步骤】

热门文章

  1. 修复webpack自动刷新页面慢的问题
  2. Hibernate的使用技巧②
  3. Unity3D游戏开发——物品存储:List与Dictionary
  4. 0523 Scrum项目6.0
  5. LeetCode题解:(19) Remove Nth Node From End of List
  6. PAT 1147 Heaps
  7. 正确的姿势解决IE弹出证书错误页面
  8. syntax error:unexpected end of file
  9. windows多线程(四) 关键段 CriticalSection
  10. 【Java并发编程】之十三:生产者—消费者模型