关于Struts2框架的学习(四)
来源:互联网 发布:mysql 自增 编辑:程序博客网 时间:2024/06/05 17:21
一、获取ServletAPI
1.strtus2有2种方式获得ServletAPI,一种是解耦,一种是耦合。
解耦使得使用strtus2来进行测试的时候,不需要启动服务器,在一定程度上提高开发效率。
2.使用解耦的方式获得ServletAPI;通过ActionContext对象获取
package com.yaoyao.action;import com.opensymphony.xwork2.ActionContext;import java.util.Map;public class LoginAction { //表单域的名称和属性值一样即可 private String name; private String pwd; //处理方法 public String execute() { if ("zhangfei".equals(name) && "1111".equals(pwd)) { //将name放入session中 ActionContext.getContext().getSession().put("user", name); //获取request---HttpServletRequest对象的attributes Map<String, Object> request = (Map) ActionContext.getContext().get("request"); //获取Application Map<String, Object> application = ActionContext.getContext().getApplication(); //获取parameters Map<String, Object> parameters = ActionContext.getContext().getParameters(); System.out.print(((String[]) parameters.get("name"))[0]); return "success"; } else { return "failed"; } } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getPwd() { return pwd; } public void setPwd(String pwd) { this.pwd = pwd; }}
3、通过ActionContext直接获取HttpServletRequest
package com.yaoyao.action;import com.opensymphony.xwork2.ActionContext;import org.apache.struts2.StrutsStatics;import javax.servlet.http.HttpServletRequest;public class LoginAction { //表单域的名称和属性值一样即可 private String name; private String pwd; //处理方法 public String execute() { if ("zhangfei".equals(name) && "1111".equals(pwd)) { HttpServletRequest request = (HttpServletRequest) ActionContext.getContext().get(StrutsStatics.HTTP_REQUEST); System.out.print(request.getParameter("name")); request.getSession().setAttribute("user",name); return "success"; } else { return "failed"; } } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getPwd() { return pwd; } public void setPwd(String pwd) { this.pwd = pwd; }}4.通过耦合的方式获取HttpServlertRequest
package com.yaoyao.action;import org.apache.struts2.interceptor.ServletRequestAware;import javax.servlet.http.HttpServletRequest;public class LoginAction implements ServletRequestAware { //表单域的名称和属性值一样即可 private String name; private String pwd; HttpServletRequest request; //处理方法 public String execute() { if ("zhangfei".equals(name) && "1111".equals(pwd)) { request.getSession().setAttribute("user", name); return "success"; } else { return "failed"; } } public void setServletRequest(HttpServletRequest httpServletRequest) { this.request = httpServletRequest; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getPwd() { return pwd; } public void setPwd(String pwd) { this.pwd = pwd; }}
5.通过ServletActionContext获取HttpServletRequest对象
public String execute() { if ("zhangfei".equals(name) && "1111".equals(pwd)) { HttpServletRequest request = (HttpServletRequest) ServletActionContext.getContext(); request.getSession().setAttribute("user", name); return "success"; } else { return "failed"; } }建议使用第一种和第四种
二、有关ActionContext的学习
1.什么是ActionContext:是map结构的容器,ActionContext是Action的上下文。存放Action执行过程中的数据信息。每次请求时会为当前线程创建一个新的ActionContext,而ActionContext采用了ThreadLocal的方式来存放,所以ActionContext是线程安全的 。
2.获取ActionContext:ActionContext.getContext()获取,由于ActionContext是线程安全的,并且是静态方法获取的,所以在本线程中的非Action类中,也可以直接访问。
0 0
- 关于Struts2框架的学习(四)
- 关于Struts2框架的学习(一)
- 关于Struts2框架的学习(二)
- 关于Struts2框架的学习(三)
- struts2学习笔记(四)基于xml的框架校验
- 关于struts2框架学习
- Struts2框架(四)
- Struts2框架(四)
- Struts2框架(1)----Struts2的四种跳转方式
- Struts2框架学习之四:OGNL表达式
- 细谈Struts2框架(四)Struts2框架之标签库
- SCPPO(四):框架的学习
- struts2学习笔记(四)
- Struts2学习笔记(四)
- 深入Struts2学习(四)
- Struts2框架进阶(四)
- struts2学习之验证框架四规则文件的书写风格
- Spring 学习日记 (四) Spring 整合Mybaits 和 struts2 框架的配置文件
- 写一下今天的收获吧,如:截取屏幕图片并保存,单击“空白返回上一页”,一点关于布局的小心得
- window添加控制面板项目
- webpack打包1
- hdu 1274 展开字符串
- Android 第一行代码(第二版)学习笔记(一)
- 关于Struts2框架的学习(四)
- apache 2.4-X版本配置虚拟主机
- automation
- chorme浏览器无法播放MP4格式的视频解决
- [Err] 1091
- LeetCode:349. Intersection of Two Arrays
- 创建一个目录,进入目录,在目录里创建文件并用ls1。显示出来各需要什么权限
- 本机不安装Oracle客户端,使用PL/SQL Developer连接远程数据库
- SpringMVC——使用RequestDispatcher.include()和HttpServletResponseWrapper动态获取jsp输出内容