Struts2-学习笔记系列-访问servlet api

Posted 逆向行驶

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Struts2-学习笔记系列-访问servlet api相关的知识,希望对你有一定的参考价值。

5.1通过actioncontext:

 1 public String execute() throws Exception {
 2 
 3     ActionContext ctx = ActionContext.getContext();
 4 
 5     // 通过ActionContext访问application范围的属性值
 6 
 7     Integer counter = (Integer) ctx.getApplication().get("counter");
 8 
 9     if (counter == null) {
10 
11         counter = 1;
12 
13     } else {
14 
15         counter = counter + 1;
16 
17     }
18 
19     // 通过ActionContext设置application范围的属性
20 
21     ctx.getApplication().put("counter", counter);
22 
23     // 通过ActionContext设置session范围的属性
24 
25     ctx.getSession().put("user", getUser());
26 
27     if (getUser().equals("zcx")) {
28 
29         // 通过ActionContext设置request范围的属性
30 
31         ctx.put("tip", "欢迎登录");
32 
33         return SUCCESS;
34 
35     }
36 
37     // 通过ActionContext设置request范围的属性
38 
39     ctx.put("tip", "登录失败");
40 
41     return ERROR;
42 
43 }

 

取数据:注意写在html页面的OGNL表达式语法

${applicationScope.counter}
${
sessionScope.user}
${
requestScope.tip}

5.2实现servletcontextaware、servletrequestaware、servletresponseaware

实现ServletResponseAware 设置cookie

 

  1 public class LoginAction implements Action, ServletResponseAware {
  2 
  3     private String user;
  4 
  5     private String pwd;
  6 
  7     private String tip;
  8 
  9     private HttpServletResponse response;
 10 
 11 
 12 
 13     public String getPwd() {
 14 
 15         return pwd;
 16 
 17     }
 18 
 19 
 20 
 21     public void setPwd(String pwd) {
 22 
 23         this.pwd = pwd;
 24 
 25     }
 26 
 27 
 28 
 29     public String getUser() {
 30 
 31         return user;
 32 
 33     }
 34 
 35 
 36 
 37     public void setUser(String user) {
 38 
 39         this.user = user;
 40 
 41     }
 42 
 43 
 44 
 45     public String execute() throws Exception {
 46 
 47         ActionContext ctx = ActionContext.getContext();
 48 
 49         // 通过ActionContext访问application范围的属性值
 50 
 51         Integer counter = (Integer) ctx.getApplication().get("counter");
 52 
 53         if (counter == null) {
 54 
 55             counter = 1;
 56 
 57         } else {
 58 
 59             counter = counter + 1;
 60 
 61         }
 62 
 63         // 通过ActionContext设置application范围的属性
 64 
 65         ctx.getApplication().put("counter", counter);
 66 
 67         // 通过ActionContext设置session范围的属性
 68 
 69         ctx.getSession().put("user", getUser());
 70 
 71         if (getUser().equals("zcx")) {
 72 
 73             // 通过response添加Cookie
 74 
 75             Cookie c = new Cookie("user", getUser());
 76 
 77             c.setMaxAge(60 * 60);
 78 
 79             response.addCookie(c);
 80 
 81             // 通过ActionContext设置request范围的属性
 82 
 83             ctx.put("tip", "服务器提示:您已经成功的登录");
 84 
 85             return SUCCESS;
 86 
 87         }
 88 
 89         // 通过ActionContext设置request范围的属性
 90 
 91         ctx.put("tip", "登录失败");
 92 
 93         return ERROR;
 94 
 95     }
 96 
 97 
 98 
 99     public String getTip() {
100 
101         return tip;
102 
103     }
104 
105 
106 
107     public void setTip(String tip) {
108 
109         this.tip = tip;
110 
111     }
112 
113 
114 
115     @Override
116 
117     public void setServletResponse(HttpServletResponse httpServletResponse) {
118 
119         this.response = response;
120 
121     }
122 
123 }

 

 

5.3使用servletactioncontext

  1 public class LoginAction implements Action {
  2 
  3     private String user;
  4 
  5     private String pwd;
  6 
  7     private String tip;
  8 
  9     private HttpServletResponse response;
 10 
 11 
 12 
 13     public String getPwd() {
 14 
 15         return pwd;
 16 
 17     }
 18 
 19 
 20 
 21     public void setPwd(String pwd) {
 22 
 23         this.pwd = pwd;
 24 
 25     }
 26 
 27 
 28 
 29     public String getUser() {
 30 
 31         return user;
 32 
 33     }
 34 
 35 
 36 
 37     public void setUser(String user) {
 38 
 39         this.user = user;
 40 
 41     }
 42 
 43 
 44 
 45     public String execute() throws Exception {
 46 
 47         ActionContext ctx = ActionContext.getContext();
 48 
 49         // 通过ActionContext访问application范围的属性值
 50 
 51         Integer counter = (Integer) ctx.getApplication().get("counter");
 52 
 53         if (counter == null) {
 54 
 55             counter = 1;
 56 
 57         } else {
 58 
 59             counter = counter + 1;
 60 
 61         }
 62 
 63         // 通过ActionContext设置application范围的属性
 64 
 65         ctx.getApplication().put("counter", counter);
 66 
 67         // 通过ActionContext设置session范围的属性
 68 
 69         ctx.getSession().put("user", getUser());
 70 
 71         if (getUser().equals("zcx")) {
 72 
 73             // 通过response添加Cookie
 74 
 75             Cookie c = new Cookie("user", getUser());
 76 
 77             c.setMaxAge(60 * 60);
 78 
 79             ServletActionContext.getResponse().addCookie(c);
 80 
 81             // 通过ActionContext设置request范围的属性
 82 
 83             ctx.put("tip", "服务器提示:您已经成功的登录");
 84 
 85             return SUCCESS;
 86 
 87         }
 88 
 89         // 通过ActionContext设置request范围的属性
 90 
 91         ctx.put("tip", "登录失败");
 92 
 93         return ERROR;
 94 
 95     }
 96 
 97 
 98 
 99     public String getTip() {
100 
101         return tip;
102 
103     }
104 
105 
106 
107     public void setTip(String tip) {
108 
109         this.tip = tip;
110 
111     }
112 
113 
114 
115 }

 

以上是关于Struts2-学习笔记系列-访问servlet api的主要内容,如果未能解决你的问题,请参考以下文章

struts2的获取Servlet API的几种方式的学习笔记

Struts2系列:与Servlet API解耦(Servlet相关对象访问)

Struts2笔记--Action访问Servlet API

Struts2学习笔记

Struts2学习笔记

struts2学习笔记---Action中訪问ServletAPI获取Map类型的Servlet元素