Action访问Servlet API的对象
来源:互联网 发布:edius软件 编辑:程序博客网 时间:2024/05/20 06:31
1,Action访问ActionContext的方式:(request session application)
Struts2中的Action与Servlet API完全分离,但是在实现业务逻辑处理是,经常需要访问Servlet中的一些对象,如request,session,application等,struts2提供ActionContext类,在Action中通过该类获取Servlet中的参数
创建ActionContext实例的方法如下:
ActionContext ac=ActionContext.getContext();
常用的方法如下:
1,Object get(Object key);//在ActionContext中查找key值2,Map getAppliCation();//返回一个application 对象,相当于jsp的application对象3,static ActionContext getContext()//获取当前线程的ActionContext对象4,Map getParameter()//返回一个Map类型所有HttpServletRequest 相当于jsp中的request对象5,Map getsession()//返回Map类型的HttpSession值,相当于jsp中的session对象6,void put(Object key,Object value)//向当前的ActionContext存入值7,void setApplication( Map application)//设置application对象的上下文8,void setSession(Map session)//设置session的值
package login;import com.opensymphony.xwork2.ActionContext;import com.opensymphony.xwork2.ActionSupport;public class LoginAction extends ActionSupport {/** * */private static final long serialVersionUID = 1L;private String userName;private String password;//属性要与jsp显示组件的那么值相同 public String getUserName() {return userName;}public void setUserName(String userName) {this.userName = userName;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}public String execute(){if(getUserName().equals("QQ")&&getPassword().equals("123")){//获取ActionContextActionContext ac=ActionContext.getContext();//把登录名放进application中ac.getApplication().put("useName",getUserName());//吧登录名放进session中ac.getSession().put("userName", getUserName());return SUCCESS;}else{return INPUT;}} }
2,Action直接访问Servlet.(request response session)
在struts2中通过IoC的方式把servlet对象注入到Action中,需要在Action中实现以下接口:
(1),ServletRequestAware:实现该接口的Action可以直接访问request对象,该接口中提供void setServletRequest(HttpServletRequest request);
(2),ServletResponseAware:实现该接口的Action可以直接访问response对象,该接口中提供void setServletResponse(HttpServletResponseresponse);
(3),SessionAware:实现该接口的Action可以直接访问session对象,该接口中提供void setSession(Map session);
package login;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpSession;import org.apache.struts2.interceptor.ServletRequestAware;import com.opensymphony.xwork2.ActionContext;import com.opensymphony.xwork2.ActionSupport;public class LoginAction extends ActionSupport implements ServletRequestAware{/** * */private static final long serialVersionUID = 1L;private String userName;private String password;//属性要与jsp显示组件的那么值相同private HttpServletRequest request; //可以直接使用request public String getUserName() {return userName;}public void setUserName(String userName) {this.userName = userName;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}@Overridepublic void setServletRequest(HttpServletRequest arg0) {// TODO Auto-generated method stubrequest=arg0;//实现该方法赋值} public String execute(){if(getUserName().equals("QQ")&&getPassword().equals("123")){ //通过request对象获取session对象HttpSession session=request.getSession();//把用户名放入session中session.setAttribute("userName", getUserName());return SUCCESS;}else{return INPUT;}}}
3,非IOC的方式,辅助类ServletActionContext帮助获得servlet.
常用方法:
<span style="font-size:24px;">static getRequest();//获取request对象static getResponse();//获取response对象</span>
<span style="font-size:24px;">import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpSession;import org.apache.struts2.ServletActionContext;import com.opensymphony.xwork2.ActionSupport;public class LoginAction extends ActionSupport {/** * */private static final long serialVersionUID = 1L;private String userName;private String password;//属性要与jsp显示组件的那么值相同 public String getUserName() {return userName;}public void setUserName(String userName) {this.userName = userName;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;} public String execute(){if(getUserName().equals("QQ")&&getPassword().equals("123")){//调用ServletActionContext的getRequest方法获得request对象HttpServletRequest request=ServletActionContext.getRequest(); //通过request对象获取session对象HttpSession session=request.getSession();//把用户名放入session中session.setAttribute("userName", getUserName());return SUCCESS;}else{return INPUT;}}}</span>
0 0
- Action访问Servlet API的对象
- Action访问Servlet API
- Action访问Servlet API
- Struts2的Action访问Servlet API
- Struts2的Action访问Servlet对象
- Struts2的Action访问Servlet对象
- ACtion直接访问Servlet API中的ServletRequest对象
- Action中访问Servlet API
- struts2 Action访问Servlet Api
- Struts2--------Action访问Servlet API
- Action访问Servlet API
- Action中访问Servlet API
- action之访问Servlet API
- Struts2 Action访问Servlet API
- 通过Action访问Servlet API
- Struts2-Action访问Servlet API
- Struts2的Action访问Servlet API的方式
- Struts的 action访问servlet API的三种方法
- const_iterator 《C++ primer》(第5版)的笔误
- String.trim()方法
- JavaScript高级程序设计之变量、作用域和内存问题之垃圾收集第4.3讲敏敏笔记
- 第八章 包装类
- C++ traits编程方法
- Action访问Servlet API的对象
- 怎么安装Alcatraz插件管理工具以及cocoaPods
- java正则表达式
- java数组和向量
- where 1=1的作用
- MySQL服务器时间同步问题
- Qt Virtual Keyboard
- UVa1612Guess
- 二维数组中每行最大值