Struts2 访问web元素
访问web元素的四种方法(耦合,依赖注入)、(耦合,非依赖注入)、(非耦合,依赖注入)、(非耦合,非依赖注入)
耦合:可以得到HttpServletResponse,HttpServletRequest,HttpSession等类型对象。能直接操作到真正的web元素。
非耦合:得到的是由struts封装好的Map类型,只能对范围进行存取值操作。
依赖注入:对象由struts2从外部注入。Action类不需要关心对象是如何得到的。
非依赖注入:对象由Action类自己提供初始化。
耦合
非依赖注入
public class UserAction extends ActionSupport{
//类型为真实的web元素:HttpServletResponse,HttpServletRequest等..
private HttpServletResponse resp;
private HttpServletRequest req;
private HttpSession session;
private ServletContext app;
public String execute() throws IOException{
req = ServletActionContext.getRequest(); //得到request
resp = ServletActionContext.getResponse(); //得到response
app = ServletActionContext.getServletContext(); //得到application
session = ServletActionContext.getRequest().getSession(); //得到session
//操作
req.setAttribute("req", "write req.."); //往request里存值
session.setAttribute("session", "write session"); //住session里存值
session.getAttribute("session"); //从session里取值
resp.getWriter(); //得到response的 PrintWriter
return "test";
}
}
依赖注入
//实现ServletRequestAware,ServletResponseAware接口
public class UserAction extends ActionSupport implements ServletRequestAware,ServletResponseAware{
private HttpServletResponse resp;
private HttpServletRequest req;
private HttpSession session;
private ServletContext app; public String execute() throws IOException{
//操作
req.setAttribute("req", "write req.."); //往request里存值
session.setAttribute("session", "write session"); //住session里存值
session.getAttribute("session"); //从session里取值
resp.getWriter(); //得到response的 PrintWriter
return "test";
} //重写setServletResponse方法,Response对象不需要自己得到,由struts2从外部注入
public void setServletResponse(HttpServletResponse resp) {
this.resp=resp; //得到response
}
//重写setServletRequest方法,Request对象不需要自己得到,由struts2从外部注入
public void setServletRequest(HttpServletRequest req) {
this.req=req; //得到request
this.session = req.getSession(); //得到session
this.app = session.getServletContext(); //得到application
}
}
非耦合
非依赖注入
public class UserAction extends ActionSupport{
//得到的是由struts封装好的Map类型,只能对范围进行存取值操作
private Map<String,Object> req;
private Map<String,Object> session;
private Map<String,Object> app;
public String execute() throws IOException{
req= (Map<String,Object>)ActionContext.getContext().get("request"); //得到request
session = ActionContext.getContext().getSession(); //得到session
app = ActionContext.getContext().getApplication(); //得到application
//操作
req.put("req", "write req.."); //存值到request
session.put("session", "write session.."); //存值到session
app.put("app", "write application.."); //存值到application
session.get("session"); //从session存值
return "test";
}
}
依赖注入(推荐)
//实现RequestAware,SessionAware,ApplicationAware等接口
public class UserAction extends ActionSupport implements RequestAware,SessionAware,ApplicationAware{
//得到的是由struts封装好的Map类型,只能对范围进行存取值操作
private Map<String,Object> req;
private Map<String,Object> session;
private Map<String,Object> app; public String execute() throws IOException{
//操作
req.put("req", "write req.."); //存值到request
session.put("session", "write session.."); //存值到session
app.put("app", "write application.."); //存值到application
session.get("session"); //从session存值
return "test";
}
//得到application
public void setApplication(Map<String, Object> app) {
this.app=app;
}
//得到session
public void setSession(Map<String, Object> session) {
this.session=session;
}
//得到request
public void setRequest(Map<String, Object> req) {
this.req= req;
}
}
Struts2 访问web元素的更多相关文章
- struts2 访问Web元素的4种方法
完整代码 :Struts12AccessWebElement.rar 第一种也是最常用的一种方法实现这几个接口 RequestAware,SessionAware,ApplicationAware s ...
- Struts2访问web元素的各种方法
1.通过RequestAware,SessionAware,ApplicationAware获取: 在Struts2中不能直接访问Request,Session,Application元素,但是可以使 ...
- Struts2中访问web元素的四种方式
Struts2中访问web元素的四种方式如下: 通过ActionContext来访问Map类型的request.session.application对象. 通过实现RequestAware.Sess ...
- Struts2之web元素访问与模板包含与默认Action使用
上一篇为大家介绍了如何使用Action进行参数接收,以及简单的表单验证,本篇为大家介绍一下关于Action访问web元素的三种方式(request.session.application):模板包含( ...
- Struts2学习---简单的数据校验、访问Web元素
1.简单的数据校验 在action里面我们已经给出了一个数据校验: public String execute() { if(user.getUsername().equals("usern ...
- 01_12_Struts2_访问Web元素
01_12_Struts2_访问Web元素 1. 配置struts.xml文件 <package name="login" namespace="/login&qu ...
- sessionapplicationStruts2中访问web元素
本文是一篇关于sessionapplication的帖子 取得Map类型request,session,application,实在类型 HttpServletRequest, HttpSession ...
- struts2获取web元素的方式和方法
获取web资源的方式按是否与servlet耦合可分为两种,再细分按照依赖方式又有两种即 依赖容器 和 依赖注入 什么是依赖容器 就是依赖 ActionContext或者ServletActionC ...
- 2.struts2访问web资源(在struts2中获取session,request等等)
什么是web资源:web资源就是指request,response,session,servlet的api 为什么需要访问web资源:因为图片上传,需要获取图片的目录,就需要通过action来访问we ...
随机推荐
- EntityFramework1
1.ORM都是Select * ,即使不需要某些字段,也要查询出来,效率是否很低. 可以使用视图来解决,比如对于列表页,可以定义一个视图,只查询列表中需要使用的字段,然后将列表映射为实体 2.ORM中 ...
- Android的Activity屏幕切换滑动动画
Activity的切换效果使用的是Android的动画效果,Android的动画在官方有相关资料:http://developer.android.com/guide/topics/graphics/ ...
- SQL查询语句47题
select * from student select * from score --select * from grade select * from course select * from t ...
- HDU 5727 - Necklace
题意:( 0 <= n <= 9 ) 现在有n颗阴珠子和n颗阳珠子,将它们阴阳相间圆排列构成一个环, 已知有些阴珠子和阳珠子不能放在相邻的位置,否则这颗阳珠子就会失去功效, ...
- Win7如何添加局域网内的网络打印机
win+R或开始找到运行,在运行框中输入打印机所在的局域网内的IP地址. 这时会打开一个界面.如图 右键要选择的打印机.连接.这时会显示正在安装打印机驱动.如图 开始菜单->设备和打印机 找到刚 ...
- 从汇编看c++成员函数指针(三)
前面的从汇编看c++中成员函数指针(一)和从汇编看c++成员函数指针(二)讨论的要么是单一类,要么是普通的多重继承,没有讨论虚拟继承,下面就来看一看,当引入虚拟继承之后,成员函数指针会有什么变化. 下 ...
- [转]C++实现系统服务暂停、停止、启动
/* 名称:系统服务管理 语言:C++ 介绍:对Windows系统服务的状态获取,服务暂停,开启,停止操作代码 */ void CStartServiceDlg::OnBnClickedButton1 ...
- Android 创建自定义布局
我们所有的控件都是继承至View类的,而所有的布局都是继承至ViewGroup的,所以我们也可以继承某个view类来实现我们自己的布局或者控件. 引入布局 我们新建一个title.xml的layout ...
- SQL Server数据库空间管理 (2)
本篇内容主要解决剩余的两个问题:2).日志文件不停增长 4).自动增长和自动收缩 日志文件不停增长的解决 首先,当日志文件超过预期的时候,我们然要看看日志文件中存放了什么内容:DBCC LOG ; ...
- IDEA12 KeyGen Download List
When you use IDEA to develop Java, you can use the following file to generate lincese. Because CNBlo ...