码迷,mamicode.com
首页 > 其他好文 > 详细

拦截器

时间:2016-06-15 20:32:27      阅读:181      评论:0      收藏:0      [点我收藏+]

标签:

学沫~~~~

拦截器拦截没登陆过的人进入系统,所以要得到进入过的人的name,用session。

1,在.Java中用session保存用户登录过的信息,这里还有继承一个类ActionSupport,不知道是什么,背下来背下来~

技术分享
 1 package com.chinasofti.strutshuman.struts;
 2 
 3 import java.util.Map;
 4 
 5 import org.apache.struts2.interceptor.SessionAware;
 6 
 7 import com.chinasofti.strutshuman.DAO.InformationDAO;
 8 import com.chinasofti.strutshuman.entity.Information;
 9 import com.opensymphony.xwork2.ActionSupport;
10 
11 @SuppressWarnings("serial")
12 public class Landing extends ActionSupport implements SessionAware{
13     private  Information infor ;
14     private String massage;
15     private Map<String,Object> session;
16     String lervel1="员工";
17     String lervel2="管理员";    
18     public Information getInfor() {
19         return infor;
20     }
21     public void setInfor(Information infor) {
22         this.infor = infor;
23     }
24     public String getMassage() {
25         return massage;
26     }
27     public void setMassage(String message) {
28         this.massage = message;
29     }
30     
31 
32     //前面不用管
33     public String execute(){
34         InformationDAO infordao = new InformationDAO();
35         Information inf = infordao.getInformationByName(infor.getName());
36         if(inf!=null){
37             if(infor.getPassword().equals(inf.getPassword())){
38                 if(infor.getLervel().equals(inf.getLervel())&&inf.getLervel().equals(lervel1)){
39                     //用SESSION保存用户登陆过的信息
40                     session.put("OK",infor);
41                     //顺便保留下name
42                     session.put("name",infor.getName());
43                     massage="欢迎员工登录!";
44                     return "havelervel1";
45                 }else if(infor.getLervel().equals(inf.getLervel())&&inf.getLervel().equals(lervel2)){
46                     session.put("OK",infor);
47                     session.put("name",infor.getName());
48                     massage="欢迎管理员登录!";
49                     return "havelervel2";
50                 }else{
51                     massage="你的身份错了!";
52                     return "havelervel3";
53                 }
54                 
55             }else{
56                 massage="密码错误!请再次登录";
57                 return "havepassword";
58             }
59         }
60         return massage;    
61     }
62     @Override
63     public void setSession(Map<String, Object> session) {
64         // TODO Auto-generated method stub
65         this.session=session;
66     }
67 }
View Code

2.创建一个类来验证用户是不是已经登陆过了,这里也要继承一个类  AbstractInterceptor,背吧!

技术分享
 1 package com.chinasofti.strutshuman.struts;
 2 
 3 import java.util.Map;
 4 
 5 import javax.servlet.http.HttpServletRequest;
 6 
 7 import org.aopalliance.intercept.Invocation;
 8 import org.apache.struts2.ServletActionContext;
 9 
10 
11 import com.opensymphony.xwork2.ActionInvocation;
12 import com.opensymphony.xwork2.interceptor.AbstractInterceptor;
13 
14 public class Landing_Chick extends  AbstractInterceptor{
15 
16     @Override
17     public String intercept(ActionInvocation invocation) throws Exception {
18         
19         // TODO Auto-generated method stub
20         HttpServletRequest request=ServletActionContext.getRequest();
21          Map<String,Object> session=invocation.getInvocationContext().getSession();
22          Object obj=session.get("OK");
23           if(obj!=null){
24               //request.setAttribute("message", "欢迎你!");
25               Object name=session.get("name");
26               System.out.println(name);
27               request.setAttribute("message",name);
28               return "landing_chick";
29           }
30            
31            request.setAttribute("message", "对不起您还没有登录,请先登录");
32            return "chinkshibai";
33           }
34 }
View Code

3.重点的是Struts,在Struts里面跳转界面,因为里面太多action 了,下面这两个action都要写,我很喜欢弄错,无语ing~

技术分享
 1 <!-- 拦截器,Struts后面的名字是要验证的类名 -->
 2     <interceptors>
 3      <interceptor name="login" class="com.chinasofti.strutshuman.struts.Landing_Chick"/>
 4     </interceptors>
 5 
 6 
 7 
 8 
 9 <!-- 拦截器的跳转界面,注意登录过和没登陆过跳转到不同的界面 -->
10      <action name="landing_chick"  class="com.chinasofti.strutshuman.struts.Landing_Chick_ramp" >
11                  <result name="landing_chick_ramp"  type="dispatcher">/employees.jsp</result>  
12                  <result name="chinkshibai"  type="dispatcher">/landing_chick.jsp</result>  
13                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    
14                  <interceptor-ref name="login"></interceptor-ref>
15                 <interceptor-ref name="defaultStack"></interceptor-ref>
16      </action>
View Code

 

拦截器

标签:

原文地址:http://www.cnblogs.com/zh13197490940/p/5588688.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!