会话过滤器

 1 <%@ page language="java" import="java.util.*" pageEncoding="gbk"%>
 2 
 3 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 4 <html>
 5     <head>
 6         <title>登录页面</title>
 7         <meta http-equiv="pragma" content="no-cache">
 8         <meta http-equiv="cache-control" content="no-cache">
 9         <meta http-equiv="expires" content="0">
10         <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
11         <meta http-equiv="description" content="This is my page">
12     </head>
13     <body>
14         <form action="forward.jsp" method="post" name="form1">
15             用户名:
16             <input type="text" name="username" />
17             密 码:
18             <input type="password" name="userpwd" />
19             <input type="submit" name="loginBtn" value="登录" />
20         </form>
21     </body>
22 </html>
登录页面的代码
 1 <%@ page language="java" import="java.util.*" pageEncoding="gb2312"%>
 2 
 3 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 4 <html>
 5     <head>
 6         <title>登录成功</title>
 7         <meta http-equiv="pragma" content="no-cache">
 8         <meta http-equiv="cache-control" content="no-cache">
 9         <meta http-equiv="expires" content="0">
10         <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
11         <meta http-equiv="description" content="This is my page">
12     </head>
13     <body>
14         <%
15             String name = request.getParameter("username");
16             String pwd = request.getParameter("userpwd");
17             out.print("你的用户名:" + name + ",密码:" + pwd);
18             if (null != name && name.equals("scott")) {
19                 session.setAttribute("isLogin", "true");
20                 out.print("<br>恭喜你,被正确授权");
21             } else {
22                 out.print("<br>对不起,未被授权");
23             }
24         %>
25         <br />
26         <a href="security/show.jsp">只有被正确授权才可以,进入查看页面</a>
27     </body>
28 </html>
forward.jsp页面代码

 

 1 package com.obtk.filter;
 2 
 3 import java.io.IOException;
 4 
 5 import javax.servlet.Filter;
 6 import javax.servlet.FilterChain;
 7 import javax.servlet.FilterConfig;
 8 import javax.servlet.ServletException;
 9 import javax.servlet.ServletRequest;
10 import javax.servlet.ServletResponse;
11 import javax.servlet.http.HttpServletRequest;
12 import javax.servlet.http.HttpServletResponse;
13 import javax.servlet.http.HttpSession;
14 
15 /**
16  * 用户访问鉴权过滤器
17  * 
18  * @author Administrator
19  */
20 public class SignonFilter implements Filter {
21     String LOGIN_PAGE = "login.jsp"; // 登录页面地址,用于鉴于失败,而重定向到该页面
22     protected FilterConfig filterConfig;
23 
24     /**
25      * @初始化过滤器,和servlet一样,也可以获取都参数
26      * */
27     public void init(FilterConfig config) throws ServletException {
28         this.filterConfig = config;
29     }
30 
31     // 过滤处理的方法
32     public void doFilter(ServletRequest sRequest, ServletResponse sResponse,
33             FilterChain fChain) throws IOException, ServletException {
34         // 把父类转换为子类类型,
35         HttpServletRequest request = (HttpServletRequest) sRequest;
36         HttpServletResponse response = (HttpServletResponse) sResponse;
37         HttpSession session = request.getSession();
38         String isLogin = "";
39         try {
40             isLogin = (String) session.getAttribute("isLogin");
41             // 取出会话的值,然后移除,避免回话的值一直调用
42             session.removeAttribute("isLogin");
43             // 获得请求的地址
44             String requestURI = request.getRequestURI();
45             if (null != isLogin && isLogin.equals("true")
46                     || requestURI.endsWith("ogin.jsp")) {
47                 System.out.println("在signonFilte中验证通过");
48                 // 验证成功继续处理。
49                 fChain.doFilter(sRequest, sResponse);
50             } else {
51                 // 获取到工程名字,在转到登录页面
52                 response.sendRedirect(request.getContextPath() + "/"
53                         + LOGIN_PAGE);
54 
55                 System.out.println("被SignonFilter拦截一个未认证的请求");
56             }
57         } catch (Exception e) {
58             System.out.println("错误信息:" + e.getMessage());
59         }
60 
61     }
62 
63     // 摧毁过滤器
64     public void destroy() {
65         this.filterConfig = null;
66     }
67 
68 }
java类的代码
 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
 3     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 4     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
 5     http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
 6     <filter>
 7         <filter-name>auth</filter-name>
 8         <filter-class>com.obtk.filter.SignonFilter</filter-class>
 9     </filter>
10 
11     <filter-mapping>
12         <filter-name>auth</filter-name>
13         <url-pattern>/security/*</url-pattern>
14     </filter-mapping>
15 </web-app>
xml配置

struts2框架的开始。 218786602QQ群,欢迎大家一起讨论。

转载于:https://www.cnblogs.com/lc2014/p/3662978.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值