在struts2中訪问servletAPI
在struts2中訪问servletAPI,通俗点也就是使用servlet中的两个对象request对象和response对象。
前几天看到一个CRM项目的源代码,里面使用request对象和response对象方式和我曾经使用的方式有点不同,于是便上网查询一些相关资料。特此记录于此,有兴趣的也能够參考參考。
- 以往使用struts2往网页填充数据通常採用往值栈存放数据。也就是ActionContext.getContext().****();后面的方法类似与request对象和response对象的方法。
- 这几天看到的是实现接口ServletRequestAware,ServletResponseAware。通过这两个接口实现两个方法setServletResponse(HttpServletResponse
response)与setServletRequest(HttpServletRequest request)。然后訪问用户请求的HttpServletRequest实例与server响应的HttpServletResponse实例。 - 进过上网查找另一种ServletActionContext。这个类直接继承了ActionContext。
接下来介绍一下ActionContext和ServletActionContext各自的方法:
- ActionContext:
- Object get(Object key):该方法类似于调用HttpServletRequest的getAttribute(String name)方法;
- Map getApplication():返回一个Map对象。该对象模拟了该应用的ServletContext实例。
- static ActionContext getContext():静态方法,获取系统的ActionContext实例;
- Map getParameters():获取全部的请求參数。
类似于调用HttpServletRequest对象的getParameterMap方法;
- Map getSession():返回一个Map对象,该Map对象模拟了HttpSession实例。
- void setApplication(Map application):直接传入一个Map实例,将该Map实例里的key-value对转换成application的属性名。属性值;
- void setSession(Map session):直接传入一个Map实例。将该Map实例里的key-value对转换成session的属性名。属性值
- ServletActionContext
- static PageContext getPageContext():取得Web应用的PageContext对象;
- static HttpServletRequest getRequest():取得web应用的HttpServletRequest对象;
- static HttpServletResponse getResponse():取得web应用的HttpServletResponse对象;
- static ServletContext getServletContext():取得web应用的ServletContext对象;
那么这几种方式有什么差别呢?原来使用ActionContext和ServletActionContext这两个类是属于非IOC方式来訪问request对象和response对象。而Action实现ServletRequestAware和ServletResponseAware接口是属于IOC方式的。关于IOC请点击 fr=aladdin">这里
我贴上代码来看看吧。
ServletRequestAware,ServletResponseAware
package cn.crm.web.action; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import org.apache.struts2.interceptor.ServletRequestAware;
import org.apache.struts2.interceptor.ServletResponseAware; import com.opensymphony.xwork2.ActionSupport; public class BaseAction extends ActionSupport implements ServletRequestAware,ServletResponseAware{ protected HttpServletRequest request;
protected HttpServletResponse response;
@Override
public void setServletResponse(HttpServletResponse response) {
// TODO Auto-generated method stub
this.response=response;
} @Override
public void setServletRequest(HttpServletRequest request) {
// TODO Auto-generated method stub
this.request=request; } }
ActionContext
ActionContext context = ActionContext.getContext();
Map params = context.getParameters();
String username = (String) params.get("username");
ServletActionContext
HttpServletRequest request = ServletActionContext. getRequest();
HttpSession session = ServletActionContext. getRequest().getSession();
在struts2中訪问servletAPI的更多相关文章
- struts2学习笔记(2)---Action中訪问ServletAPI获取Map类型的Servlet元素
源码: strust.xml <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts ...
- struts2学习笔记(3)---Action中訪问ServletAPI获取真实类型的Servlet元素
一.源码: struts.xml文件: <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE s ...
- iOS开发中訪问相冊摄像像头
iOS开发中訪问相冊摄像像头 源代码下载地址http://download.csdn.net/download/jingjingxujiayou/7270479 在AppDelegate.m文件里 - ...
- java中訪问修饰符
较之c++ 中 public,proctected, private 三种訪问控制, java多了默认訪问控制. java中四种訪问控制权限 简单描写叙述为一下四句: 1)private 仅本类可见 ...
- weblogic部署struts2项目訪问action404错误
近期有个project部署到tomcat上是正常的,部署到weblogic上时訪问action报404错误.依据报错日志.在网上找到了原因例如以下: 部署到weblogic上.struts.xml配置 ...
- MFC 一个类訪问还有一个类成员对象的成员变量值
作者:卿笃军 原文地址:http://blog.csdn.net/qingdujun/article/details/35263857 MFC中一个类要訪问另外一个类的的对象的成员变量值,这就须要获得 ...
- Objective-C 类属性和方法的訪问权限
OC中提供了4种訪问权限.@private, @public, @protected这三种和其它的C++, Java是一样的,@package这个訪问权限并非Java里的包訪问权限,OC中没有包的概念 ...
- Ubuntu Linux訪问小米手机存储卡
操作系统: 麒麟14.04 安装工具 sudo apt-get install mtpfs libfuse-dev libmad0-dev sudo mkdir /media/mtp 重新启动与使用 ...
- Java 訪问权限控制:你真的了解 protected keyword吗?
摘要: 在一个类的内部,其成员(包含成员变量和成员方法)是否能被其它类所訪问,取决于该成员的修饰词:而一个类是否能被其它类所訪问,取决于该类的修饰词.Java的类成员訪问权限修饰词有四类:privat ...
随机推荐
- codeforces 659B Qualifying Contest
题目链接:http://codeforces.com/problemset/problem/659/B 题意: n个人,m个区.给出n个人的姓名(保证不相同),属于的区域,所得分数.从每个区域中选出成 ...
- ThinkPHP 3.2 开发过程
原文:ThinkPHP 3.2 开发过程 设置所有项目的公共配置Application\Common\Conf\config.php,SAE模式下配置文件为config_sae.php 配置默认的模块 ...
- UVALive 6869(后缀数组)
传送门:Repeated Substrings 题意:给定一个字符串,求至少重复一次的不同子串个数. 分析:模拟写出子符串后缀并排好序可以发现,每次出现新的重复子串个数都是由现在的height值减去前 ...
- 1.VMwareTools安装
1 选中虚拟机.右击.然后点击:安装Vmware-tool(最好是有网络的情况下安装) 2 将Vmware-tool的安装文件复制到暂时文件夹下,截图例如以下: 3 解压VMwareTools- ...
- eclipse中我要同时看两个console
eclipse中我要同时看两个console 有一个按钮“New Console View”,可以让你再建一个Console,还有一个按钮“Display Selected Console”,可以在两 ...
- windows mysql安装、配置
一.MySQL的下载: 上图中,我们选择红框部分的社区版本进行下载,MySQL支持许多平台: 我的操作系统是64位的,选择对应版本MSI版下载,弹出login界面, 选择no thanks,just ...
- C strstr() 函数
包含文件:string.h 函数名: strstr 函数原型:extern char *strstr(const char *str1, const char *str2); 语法:* strstr( ...
- ActionBar本部分适用述评
http://note.youdao.com/share/?id=7f213cb64069bad221f4581507707294&type=note 因为把图片拿进来太麻烦,所以我给了一个直 ...
- sql server2012附加的数据库问题
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMjM2NzUxMw==/font/5a6L5L2T/fontsize/400/fill/I0JBQk ...
- Linux下SVN安装配置全程实录(转)
一.安装SVN默认安装到/usr/local/bin下面 二.创建仓库 svnadmin create /home/svnrepo /root/svnrepo为所创建仓库的路径,理论上可以是任何目录 ...