Struts2 访问web元素
访问web元素的四种方法(耦合,依赖注入)、(耦合,非依赖注入)、(非耦合,依赖注入)、(非耦合,非依赖注入)
耦合:可以得到HttpServletResponse,HttpServletRequest,HttpSession等类型对象。能直接操作到真正的web元素。
非耦合:得到的是由struts封装好的Map类型,只能对范围进行存取值操作。
依赖注入:对象由struts2从外部注入。Action类不需要关心对象是如何得到的。
非依赖注入:对象由Action类自己提供初始化。
耦合
非依赖注入
1 public class UserAction extends ActionSupport{ 2 //类型为真实的web元素:HttpServletResponse,HttpServletRequest等.. 3 private HttpServletResponse resp; 4 private HttpServletRequest req; 5 private HttpSession session; 6 private ServletContext app; 7 8 public String execute() throws IOException{ 9 req = ServletActionContext.getRequest(); //得到request 10 resp = ServletActionContext.getResponse(); //得到response 11 app = ServletActionContext.getServletContext(); //得到application 12 session = ServletActionContext.getRequest().getSession(); //得到session 13 //操作 14 req.setAttribute("req", "write req.."); //往request里存值 15 session.setAttribute("session", "write session"); //住session里存值 16 session.getAttribute("session"); //从session里取值 17 resp.getWriter(); //得到response的 PrintWriter 18 return "test"; 19 } 20 }
依赖注入
1 //实现ServletRequestAware,ServletResponseAware接口 2 public class UserAction extends ActionSupport implements ServletRequestAware,ServletResponseAware{ 3 private HttpServletResponse resp; 4 private HttpServletRequest req; 5 private HttpSession session; 6 private ServletContext app; 7 8 public String execute() throws IOException{ 9 //操作 10 req.setAttribute("req", "write req.."); //往request里存值 11 session.setAttribute("session", "write session"); //住session里存值 12 session.getAttribute("session"); //从session里取值 13 resp.getWriter(); //得到response的 PrintWriter 14 return "test"; 15 } 16 17 //重写setServletResponse方法,Response对象不需要自己得到,由struts2从外部注入 18 public void setServletResponse(HttpServletResponse resp) { 19 this.resp=resp; //得到response 20 } 21 //重写setServletRequest方法,Request对象不需要自己得到,由struts2从外部注入 22 public void setServletRequest(HttpServletRequest req) { 23 this.req=req; //得到request 24 this.session = req.getSession(); //得到session 25 this.app = session.getServletContext(); //得到application 26 } 27 }
非耦合
非依赖注入
1 public class UserAction extends ActionSupport{ 2 //得到的是由struts封装好的Map类型,只能对范围进行存取值操作 3 private Map<String,Object> req; 4 private Map<String,Object> session; 5 private Map<String,Object> app; 6 7 public String execute() throws IOException{ 8 req= (Map<String,Object>)ActionContext.getContext().get("request"); //得到request 9 session = ActionContext.getContext().getSession(); //得到session 10 app = ActionContext.getContext().getApplication(); //得到application 11 //操作 12 req.put("req", "write req.."); //存值到request 13 session.put("session", "write session.."); //存值到session 14 app.put("app", "write application.."); //存值到application 15 session.get("session"); //从session存值 16 return "test"; 17 } 18 }
依赖注入(推荐)
1 //实现RequestAware,SessionAware,ApplicationAware等接口 2 public class UserAction extends ActionSupport implements RequestAware,SessionAware,ApplicationAware{ 3 //得到的是由struts封装好的Map类型,只能对范围进行存取值操作 4 private Map<String,Object> req; 5 private Map<String,Object> session; 6 private Map<String,Object> app; 7 8 public String execute() throws IOException{ 9 //操作 10 req.put("req", "write req.."); //存值到request 11 session.put("session", "write session.."); //存值到session 12 app.put("app", "write application.."); //存值到application 13 session.get("session"); //从session存值 14 return "test"; 15 } 16 //得到application 17 public void setApplication(Map<String, Object> app) { 18 this.app=app; 19 } 20 //得到session 21 public void setSession(Map<String, Object> session) { 22 this.session=session; 23 } 24 //得到request 25 public void setRequest(Map<String, Object> req) { 26 this.req= req; 27 } 28 }
转载于:https://www.cnblogs.com/likailan/p/3334553.html
Struts2 访问web元素相关推荐
- 四种struts2访问web元素的方式
1:第一种:如图: 注意:如果程序运行不成功的话,检查下web.xml中struts2的版本配置,看是否是环境的问题. 2:第二种:如图,request可以直接用,不用再像第一种还要自己去获取.(最常 ...
- Struts2中访问web元素
1.访问web元素,可以取得Map类型的request,session,application,真实类型为HttpServletRequest,HttpSession,ServletContext的引 ...
- Struts访问web元素
//index.jsp 1 <?xml version="1.0" encoding="GB18030" ?> 2 <%@ page lang ...
- Struts2 学习系列 (2) 访问web资源
2019独角兽企业重金招聘Python工程师标准>>> 在 Action 中, 可以通过以下方式访问 web 的 HttpSession, HttpServletRequest, H ...
- (转)Struts2访问Servlet的API及......
http://blog.csdn.net/yerenyuan_pku/article/details/67315598 Struts2访问Servlet的API 前面已经对Struts2的流程已经执行 ...
- 086_访问html元素
1. 访问html元素有一下几种方法: 1.1. 通过id查找html元素. 1.2. 通过标签名查找html元素. 1.3. 通过类名查找html元素. 1.4. 通过CSS选择器查找html元素. ...
- 在ASP.NET AJAX 1.0框架中访问Web服务
一. 简介 如今,微软最新推出的AJAX框架为ASP.NET AJAX 1.0(下载地址为[url]http://ajax.asp.net/downloads/default.aspx[/ur ...
- Struts2访问Servlet的三种方式
Struts2访问Servlet的三种方式 基本介绍 在Struts2中,Action并没有直接和Servlet API耦合.虽然Struts2 中的Action访问Servlet API麻烦一些,但 ...
- Silverlight访问Web Service报System.Security.SecurityException: 安全性错误的处理
Silverlight访问Web Service报"System.Security.SecurityException: 安全性错误"的处理 好几次了,执行的好好的Silverli ...
最新文章
- form上传文件以及跨域异步上传
- Mathematica求解微分方程组
- MongoDB索引问题
- ap模式和sta模式共存_锐捷AP缺省VLAN和用户VLAN那些事儿 | 运维实战家
- C#开发笔记之19-如何用C#实现优雅的Json解析(序列化/反序列化)方案?
- mysql导出可执行文件_实例讲解MYSQL注入中导出可执行文件至启动项原理(三)...
- 【图论训练】最小拓扑序
- 喝酒、吸烟和喝茶三者相对而言,哪个对身体有益?哪个对身体有害?
- pagerTabStrip例子
- LeetCode----两数之和
- Apache HBase 最新发布2.0.4 ,分布式数据库
- 大物实验计算弹性模量_什么是材料的杨氏模量?它的定义与计算公式是什么?...
- leaflet 加载百度离线瓦片
- 微信手机号授权解密失败问题现象和解决方法: getPhoneNumber
- 央行降准:对股市、楼市、债市、商品、人民币汇率的影响
- fastlane二开java_从入门开始使用Fastlane
- vbs 合并 excel 表格
- 云学堂2.0绘制教育桌面云新图谱
- GEEer成长日记十三:Landsat_SR计算地表温度时间序列
- 使用chrom访问本地项目需要输入http