ActionContext和Session

1、在执行action后,如果要在所跳转的目标页面中显示信息,则要用到Action和Session。

2、在Struts2中,Action已经与Servlet API分离,这使得Action具有更加灵活和低耦合的特性。

3、Struts2提供了ActionContext类;ActionContext是一个Action的上下文对象,Action运行期间所用到的数据都保存在ActionContext中。

4、通过ActionContext.getContext()方法获取ActionContext的实例对象。

5、ActionContext的其中一个方法:    Map getSession()   返回一个Map类型的HttpSession对象。

6、代码事例

  (1)Aciton中产生Session对象的代码

 1 package com.action;
 2
 3 import com.factory.StudentDAOFactory;
 4 import com.opensymphony.xwork2.ActionContext;
 5 import com.vo.Student;
 6
 7 public class Login {
 8     private String Type;
 9     private String Username;
10     private String Password;
11     private String Msg;
12     public String getType() {
13         return Type;
14     }
15     public void setType(String type) {
16         Type = type;
17     }
18     public String getUsername() {
19         return Username;
20     }
21     public void setUsername(String username) {
22         Username = username;
23     }
24     public String getPassword() {
25         return Password;
26     }
27     public void setPassword(String password) {
28         Password = password;
29     }
30     public String getMsg() {
31         return Msg;
32     }
33     public void setMsg(String msg) {
34         Msg = msg;
35     }
36     public String execute()throws Exception{
37         if(Type.equals("学生")){
38             Student student = new Student();
39             student.setStudent_Number(getUsername());
40             student.setStudent_Password(getPassword());
41             if(StudentDAOFactory.getIStudentDAOInstance().studentLogin(student)){
42                 ActionContext.getContext().getSession().put("student_number", student.getStudent_Number());
43                 ActionContext.getContext().getSession().put("student_name", student.getStudent_Name());
44                 ActionContext.getContext().getSession().put("student_sex", student.getStudent_Sex());
45                 ActionContext.getContext().getSession().put("student_domitory", student.getStudent_Domitory());
46                 ActionContext.getContext().getSession().put("student_password", student.getStudent_Password());
47                 ActionContext.getContext().getSession().put("student_absenceDate", student.getStudent_AbsenceDate());
48                 return "success";
49             }else{
50                 Msg = "用户名或者密码错误";
51                 return "error";
52             }
53         }else{
54             Msg = "身份选择错误!";
55             return "error";
56         }
57     }
58 }

(2)跳转的目标页面中显示Action处理后的信息

 1 <html>
 2   <head>
 3
 4     <title>My JSP ‘welcome.jsp‘ starting page</title>
 5
 6   </head>
 7
 8   <body>
 9     successfully!!!
10     ${student_number }
11     ${student_name }
12     ${student_sex }
13     ${student_domitory }
14     ${student_password }
15     ${student_absenceDate }
16   </body>
17 </html>
时间: 2024-10-11 08:02:01

ActionContext和Session的相关文章

在Struts2中使用ValueStack、ActionContext、ServletContext、request、session等 .

笔者不知道该用哪个词来形容ValueStack.ActionContext等可以在Struts2中用来存放数据的类.这些类使用的范围不同,得到的方法也不同,下面就来一一介绍. 声明:本文参考Struts2版本为2.3.1.2,内容仅供参考,限于笔者水平有限,难免有所疏漏,望您能友善指出.本文发表于ITEYE,谢绝转载. 1. ValueStack ValueStack在中文版的<Struts2深入浅出>一书中译作“值栈”.其本身数据结构是一个栈,使用者可以把一些对象(又称作bean)存入值栈中

Struts2中使用Session的两种方法

在Struts2里,如果需要在Action中使用到session,可以使用下面两种方式: 通过ActionContext 类中的方法getSession得到 Action实现org.apache.struts2.interceptor.SessionAware接口的方式来对session进行操作 下面先看一个采用第一种方式,在action中得到session的例子 public class SessionTestAction extends ActionSupport { public Stri

Struts清楚session方法

//第一种方法(继承SessionAware类来取得session,然后用invalidate()方法清理)public class ExitAction extends ActionSupport implements SessionAware{ @Overridepublic String execute() throws Exception {HttpServletRequest request = ServletActionContext.getRequest();HttpSession

【JAVA学习】struts2的action中使用session的方法

尊重版权:http://hi.baidu.com/dillisbest/item/0bdc35c0b477b853ad00efac 在Struts2里,如果需要在Action中使用session,可以通过下面两种方式得到1.通过ActionContext class中的方法getSession得到2.Action实现org.apache.struts2.interceptor.SessionAware接口的方式来对session进行操作 下面先看一个采用第一种方式,在action中得到sessi

ActionContext表格总结

用一张表格来总结: 变量 从ActionContext中获得 生命周期 用Ongl来读取值 使用ServletConfigInterceptor来注入 ActionContext类 静态方法ActionContext. getContext() 一次Http请求 使用“#”加上key,如“#name” 无法注入 ValueStack类 ActionContext. getValueStack() 一次Http请求 直接填写来访问栈中对象的方法,或者使用top来直接获得栈中对象 无法注入 Http

Struts2中使用Session

嗯,没错,过了这么长时间我还在做我的注册和登录. 登陆的部分自然是从数据库中查找响应的用户信息,然后把一个user放到session里, Action中代码如下: public String Login(){ User user = new User(username,password); user = userbiz.Login(user); if(user != null){ session.put("user", user); return this.SUCCESS; } ret

struts2 中 Session的使用简介

在Struts2里,如果需要在Action中使用到session,可以使用下面两种方式: 通过ActionContext 类中的方法getSession得到 Action实现org.apache.struts2.interceptor.SessionAware接口的方式来对session进行操作 下面先看一个采用第一种方式,在action中得到session的例子 public class SessionTestAction extends ActionSupport { public Stri

获取Session和request方法

action中的几种写法 //第一种很少用public class LoginAction1 extends ActionSupport {        private Map request;    private Map session;    private Map application;        public LoginAction1() {        request = (Map)ActionContext.getContext().get("request")

Struts2-学习笔记系列(4)-访问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 =