struts2笔记05-ServletActionContext

1、ServletActionContext

ServletActionContext, 这个类继承自ActionContext, 所以它具有ActionContext的很多功能,不过更重要的是它提供了直接访问Servlet相关对象的功能,功能更强大,缺点是耦合程度提高了。

HttpServletRequest、ServletContext、PageContext、HttpServletResponse. HttpSession需要从HttpServletRequest实例中获取,并没有提供直接获取的方法。

2、测试代码

package com.test.action;

import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import javax.servlet.jsp.PageContext;

import org.apache.struts2.ServletActionContext;

public class TestServletActionContextAction {
	public String execute() {
		// 1、HttpServletRequest
		HttpServletRequest request = ServletActionContext.getRequest();
		HttpSession session = request.getSession();

		// 2、ServletContext
		ServletContext servletContext = ServletActionContext
				.getServletContext();

		// 3、PageContext
		PageContext pageContext = ServletActionContext.getPageContext();

		// 4、HttpServletResponse
		HttpServletResponse response = ServletActionContext.getResponse();

		System.out.println("execute...");

		return "success";
	}
}

  

时间: 2025-01-31 06:47:42

struts2笔记05-ServletActionContext的相关文章

SWIFT学习笔记05

1.Swift 无需写break,所以不会发生这种贯穿(fallthrough)的情况.2.//用不到变量名,可用"_"替换 for _ in 1...power { answer *= base } 3.case 可以匹配更多的类型模式,包括区间匹配(range matching),元组(tuple)和特定类型的描述. 可以这样用case case 1...3: naturalCount = "a few" 4.如果存在多个匹配,那么只会执行第一个被匹配到的 ca

《掌握需求过程》阅读笔记05

<掌握需求过程>阅读笔记05 我们的产品因为其功能而为用户使用而有意义,我们的产品才会有价值.而产品的需求又分为功能性需求和非功能性需求. 功能性需求就是因为产品存在的根本原因而存在的需求.功能性需求指明了产品必须做的事情,是产品功能的规格说明书,源于产品的基本目标.为了实现存在的根本理由,产品必须执行的一些动作,这些动作就与功能性需求有关. 我们可以通过用例描述.用户场景描述等地方挖掘出我们产品的功能性需求.那些我们产品必不可少的功能.目标就是我们产品的功能性需求.但是在分析功能性需求的时候

C++ GUI Qt4学习笔记05

C++ GUI Qt4学习笔记05 qtc++正则表达式 QIntValidator           --  只让用户输入整数 QDoubleValidator     --  只让用户输入浮点数 QRegExpValidator    --  只让用户按照正则表达式定义好的样式进行输入 本章讲解如何使用Qt开发自定义窗口部件. 通过对一个已经存在的Qt窗口部件进行子类化或者直接对QWidget进行子类化,就可以创建自定义窗口部件. 集成自定义窗口到Qt设计师中,这样就可以像使用内置的Qt窗

Effective C++笔记05:实现

条款26:尽可能延后变量定义式的出现时间 博客地址:http://blog.csdn.net/cv_ronny 转载请注明出处! 有些对象,你可能过早的定义它,而在代码执行的过程中发生了导常,造成了开始定义的对象并没有被使用,而付出了构造成本来析构成本. 所以我们应该在定义对象时,尽可能的延后,甚至直到非得使用该变量前一刻为止,应该尝试延后这份定义直到能够给它初值实参为止. 这样做的好处是:不仅可以避免构造(析构)非必要对象,还可以避免无意义的default构造行为. 遇到循环怎么办?此时往往我

struts2.1笔记05:struts2开发环境的搭建

1.找到开发Struts应用需要使用到的jar文件. 首先我们要在myEclipse中新建一个Web Project,我们这里命名为"struts2".然后我们就要使用jar文件,具体如下: 下载struts的JAR包链接:http://struts.apache.org 2.编写Struts2的配置文件 3.在web.xml中加入Struts2 MVC框架启动配置

Struts2笔记——11.文件下载

Struts2提供了stream结果类型,是专门用于支持文件下载功能的. 实现文件下载的action类 这个类与普通action实现类的唯一区别就是,这个action类需要提供一个返回InputStream的方法.该方法是被下载文件的入口.代码如下.如果想要实现控制下载等一系列其他的功能,只需要在execute方法中实现即可. public class download extends ActionSupport { private String inputPath; public String

Struts2笔记——2.Action的实现、配置

实现Action Struts2中,action负责对用户请求的处理,因此它是整个应用的控制器,也是整个应用的核心.而对开发者来说,他们需要提供大量的action类.相对于struts1而言,struts2的浸入性更低,因为它的action无需继承任何父类或者接口,仅仅是一个普通的POJO(但是应该包括一个无参数的execute方法).struts2通常直接使用action来封装http请求参数(可以理解为表单中的参数,如username,password等),因此在对应的action类中,应该

struts2笔记06-ServletXxxAware接口

1.ServletXxxAware接口 ActionContext和XxxAware接口对应,属于解耦的设计,但功能单一,我们能够获取到的只是struts2给我们返回的map.ServletActionContext和ServletXxxAware接口对应,属于耦合的设计,但功能强大,能够直接获取servlet相关的对象. ServletXxxAware同样是struts2依赖注入给Action类的设计,使用起来比ServletActionContext方便,比如多个action的方法,就不需要

Struts2笔记——10.文件上传

只有当表单的method为post,并且enctype要设置为multipart/form-data时,本地的二进制文件才能够上传到服务器.Struts2本身并不会去解析multipart/form-data,而是需要借助其他框架,所以它的上传功能需要依赖Common-FileUpload.COS等组件.相应的,我们需要把commons-io包跟commons-fileupload包添加到项目中.Struts2对原有的上传解析器做了进一步的封装,使用起来更加简便. 实现文件上传的action S