struts2 servlet api 访问方式
Action中访问ServletAPI.
主要就是接收表单参数及向域对象中存取值.
关于SevletAPI的方法在Action中有三种方式:
1.完全解耦合的形式:
* 使用一个类:ActionContext.
* static ActionContext getContext(); --- 获得ActionContext对象
* Map getParameters(); --- 接收提交到Action中的参数.
* Map getSession(); --- 获得Session的Map.
* Map getApplication(); --- 获得Application的Map.
* void put(String key,Object value); --- 向request中存值.
* Object get(String key); --- 从request中获得值.
* 代码实现:
// 获得ActionContext对象
ActionContext context = ActionContext.getContext();
// 获得表单提交参数:
Map<String,Object> map = context.getParameters();
String[] username = (String[]) map.get("username");
System.out.println(username[0]);
String[] password = (String[]) map.get("password");
System.out.println(password[0]);
// 向request域中存值
context.put("reqName", "reqValue");
System.out.println("request域中的值:"+context.get("reqName"));
// 向session域中存值
context.getSession().put("sessName", "sessValue");
System.out.println("session域中的值:"+context.getSession().get("sessName"));
// 向ServletContext中存值
context.getApplication().put("appName", "appValue");
System.out.println("application域中的值:"+context.getApplication().get("appName"));
2.使用接口注入的方式:
* 实现接口:
* ServletRequestAware
* ServletResponseAware
* ServletContextAware
* 代码实现:
public class RequestAction2 extends ActionSupport implements ServletRequestAware,ServletContextAware{
private HttpServletRequest request;
private ServletContext context;
@Override
public String execute() throws Exception {
// 1.接收参数:
String username = request.getParameter("username");
String password = request.getParameter("password");
System.out.println(username +" "+password);
// 2.向request域中存值:
request.setAttribute("reqName", "李健");
// 3.向session域中存值:
request.getSession().setAttribute("sessName", "凤姐");
// 4.向application域中存值.
context.setAttribute("appName", "芙蓉");
return SUCCESS;
}
public void setServletRequest(HttpServletRequest request) {
this.request = request;
}
public void setServletContext(ServletContext context) {
this.context = context;
}
}
3.使用ServletActionContext中静态方法:
方法:
* getRequest();
* getResponse();
* getServetContext();
代码:
// 1.接收参数:
HttpServletRequest request = ServletActionContext.getRequest();
String username = request.getParameter("username");
String password = request.getParameter("password");
System.out.println(username+" "+password);
// 2.向request域中存值:
request.setAttribute("reqName", "小健健");
// 3.向session域中存值:
request.getSession().setAttribute("sessName", "小凤凤");
// 4.向application中存值:
ServletActionContext.getServletContext().setAttribute("appName", "小蓉蓉");
***** 第一种方式是最好的!习惯第三种用的很方便.
struts2 servlet api 访问方式的更多相关文章
- 配置Struts2及Struts2访问servlet api的方式
Struts2的起源与背景 在很长的一段时间内,在所有的MVC框架中,Struts1处于绝对的统治地位,无论是从市场的普及范围,还是具体的使用者数量. 其他MVC框架都无 法与其相比,作为一一款优秀的 ...
- Struts 2 访问Servlet API的方式
与Servlet API解耦的访问方式 与Servlet API耦合的访问方式 (tips:耦合既依赖) 1. 与Servlet API解耦的访问方式 2. 与Servlet API耦合 ...
- 3、Struts2的API访问和数据封装
一.API的访问 在使用Struts2的框架的过程中,发现Struts2和Servlet的API是解耦合的.在实际开发中,经常使用到Servlet的API,比如进行登录,将用户的信息保存到Sessio ...
- JAVA框架Struts2 servlet API
一:servlet API 1)完全解耦接口: 使用ActionContext类进行相关操作: package jd.com.actioncontex; import com.opensymphony ...
- Struts2中获取servlet API的几种方式
struts2是一个全新的MVC框架,如今被广大的企业和开发者所使用,它的功能非常强大.这给我们在使用servlet 纯java代码写项目的时候带来了福音.但是一般来说,我们的项目不到一定规模并不需要 ...
- Struts2学习笔记(五)——Action访问Servlet API
在Strut2中访问Servlet API有三种方式: 1.通过ActionContext访问Servlet API,推荐使用这种,但是这种方案它获取的不是真正的事Servlet API. 步骤: 1 ...
- Struts2中使用Servlet API步骤
Struts2中使用Servlet API步骤 Action类中声明request等对象 Map<String, Object> request; 获得ActionContext实例 Ac ...
- java:struts框架2(方法的动态和静态调用,获取Servlet API三种方式(推荐IOC(控制反转)),拦截器,静态代理和动态代理(Spring AOP))
1.方法的静态和动态调用: struts.xml: <?xml version="1.0" encoding="UTF-8"?> <!DOCT ...
- Struts2访问Servlet API的三种方式
有时我们需要用到Request, Response, Session,Page, ServletContext这些我们以前常用的对象,那么在Struts2中怎么样使用到这些对象呢,通常有三种方式. * ...
随机推荐
- 小技能——markdown
如果常常要在电脑上写点东西,比如写笔记.做总结.写博客之类的,花一两个小时学会markdown还是很值的. markdown简介 markdown不是某个软件,而是一种标记语言,标记普通文本的格式,以 ...
- mysql中DATETIME,DATE和TIMESTAMP的区别整理
简而言之.看格式,DATE 是 年月日YYYY-MM-DD,DATETIME 是 年月日时分秒YYYY-MM-DD HH:MM:SS,TIMESTAMP是 年月日时分秒YYYY-MM-DD HH:MM ...
- 通过mongodb客户端samus代码研究解决查询慢问题
最近有项目需要用到mongodb,于是在网上下载了mongodb的源码,根据示例写了测试代码,但发现一个非常奇怪的问题:插入记录的速度比获取数据的速度还要快,而且最重要的问题是获取数据的速度无法让人接 ...
- 解决redhat的未注册问题
昨天安装第五步的时候:开始是没有网,,,居然ping不通 网 ,服务器也ping不通,,,,,可能和我前几天删除了网络适配器有关,,把linux桥接对应的适配器给删了,,, 解决办法是打开虚拟网络 ...
- netstat miscellaneousness
netstat -a (--all) : show both listening and non-listening sockets 默认是不显示正在侦听的进程,只显示已经established的 n ...
- Java基础相关总结
临近面试,权当复习了吧 final相关 定义常量的方法 eg:final int i=0;//则i不能被修改 final修饰的类不能被继承,因此没有子类,且它的类中的方法默认是final final ...
- Mastering Web Application Development with AngularJS 读书笔记(一)
第一章笔记 (一) 一.PS:运行时配置IIS <html> <head> <script src="angular.js"></scri ...
- javascript客户端检测技术
1. Firefox Gecko是firefox的呈现引擎.当初的Gecko是作为通用Mozilla浏览器一部分开发的,而第一个采用Gecko引擎的浏览器是Netscape6: 我们可以使用用户代理 ...
- 开始使用 Markdown
(Xee:我最近感觉nyfedit打开有点慢,数据库有点大,试想着用一些其他的方式记录一下学习的过程,才想起了遗忘了很长时间的Markdown,将其分类在HTML下,也是我原本意愿的...) 本文面向 ...
- Android中设定背景图片平铺。
注:本文由Colin撰写,版权所有!转载请注明原文地址,谢谢合作! 在做Android开发时,我们常常需要为程序设定一个背景,但由于现在的Android设备尺寸不一,如果随便设置一个图片为背景,那么很 ...