5.Struts2框架中的ServletAPI如何获取

1.完全解耦合的方式
   如果使用该种方式,Struts2框架中提供了一个类,ActionContext类,该类中提供一些方法,通过方法获取Servlet的API
   一些常用的方法如下
* static ActionContext getContext()                                         -- 获取ActionContext对象实例
* java.util.Map<java.lang.String,java.lang.Object> getParameters()          -- 获取请求参数,相当于request.getParameterMap();
* java.util.Map<java.lang.String,java.lang.Object> getSession()             -- 获取的代表session域的Map集合,就相当于操作session域。
* java.util.Map<java.lang.String,java.lang.Object> getApplication()         -- 获取代表application域的Map集合
* void put(java.lang.String key, java.lang.Object value)                    -- 注意:向request域中存入值。
/**
 * 完全解耦合的方式,使用Servlet的API
 * @author Administrator
 */
public class Demo1Action extends ActionSupport{

    private static final long serialVersionUID = -7255855724015241518L;

    public String execute() throws Exception {
        // 完全接耦合的方式
        ActionContext context = ActionContext.getContext();
        // 获取到请求的参数,封装所有请求的参数
        Map<String, Object> map = context.getParameters();
        // 遍历获取数据
        Set<String> keys = map.keySet();
        for (String key : keys) {
            // 通过key,来获取到值
            String [] vals = (String[]) map.get(key);
            System.out.println(key+" : "+Arrays.toString(vals));
        }

        // 如果向request对象中存入值
        context.put("msg", "小东东");
        // 获取其他map集合
        context.getSession().put("msg", "小苍");
        context.getApplication().put("msg", "小泽");

        return SUCCESS;
    }

}
2.使用原生Servlet的API的方式--简单方便
    * Struts2框架提供了一个类,ServletActionContext,该类中提供了一些静态的方法
    * 具体的方法如下
        * getPageContext()
        * getRequest()
        * getResponse()
        * getServletContext()
/**
 * 原生的API
 * @author Administrator
 *
 */
public class Demo2Action extends ActionSupport{

    private static final long serialVersionUID = -864657857993072618L;

    public String execute() throws Exception {
        // 获取到request对象
        HttpServletRequest request = ServletActionContext.getRequest();
        request.setAttribute("msg", "小东东");
        request.getSession().setAttribute("msg", "美美");
        ServletActionContext.getServletContext().setAttribute("msg", "小凤");

        HttpServletResponse response = ServletActionContext.getResponse();
        // 使用输出流,输出内容

        return SUCCESS;
    }
}
时间: 2024-10-27 10:51:08

5.Struts2框架中的ServletAPI如何获取的相关文章

在Struts2框架中使用Servlet的API

1. 在Action类中也可以获取到Servlet一些常用的API * 需求:提供JSP的表单页面的数据,在Action中使用Servlet的API接收到,然后保存到三个域对象中,最后再显示到JSP的页面上. * 提供JSP注册的页面,演示下面这三种方式 <h3>注册页面</h3> <form action="${ pageContext.request.contextPath }/xxx.action" method="post"&g

在struts2框架中实现手动处理输入验证

在struts2框架中实现手动处理输入验证,只需要在Action中对父类ActionSupport的validate方法重写即可.就是讲输入验证逻辑写在validate方法中.下面看项目中的Action类checkUser.java package action; import java.util.regex.Matcher; import java.util.regex.Pattern; import com.opensymphony.xwork2.ActionSupport; public

Struts2框架中书写XML配置文件时能添加提示技巧(方案二)

1.  先在/工程名/WebRoot/WEB-INF/lib/struts2-core-2.1.8.jar中找到struts-2.1.dtd文件. 2.  在Myeclipse8.6-->Window-->Preferences 3.  在搜索框输入xml文件,找到XMLCatalog,单击XML Catalog出现如上页面,之后单击Add按钮,出现如下图: 4.  在Location中选择FileSystem,选择struts-2.1.dtd文件的位置,如果这个文件在工程里面,可以使用Wor

请求在Struts2框架中的处理步骤

上图来源于Struts2官方站点,是Struts 2 的整体结构. 一个请求在Struts2框架中的处理大概分为以下几个步骤 1 客户端初始化一个指向Servlet容器(例如Tomcat)的请求 2 这个请求经过一系列的过滤器(Filter)(这些过滤器中有一个叫做ActionContextCleanUp的可选过滤器,这个过滤器对于Struts2和其他框架的集成很有帮助,例如:SiteMesh Plugin) 3 接着FilterDispatcher被调用,FilterDispatcher询问A

Mybatis框架中Mapper文件传值参数获取。【Mybatis】

Mybatis框架中,Mapper文件参数获取一般有以下几种: 1.参数个数为1个(string或者int) dao层方法为以下两种: [java] view plain copy /** * 单个int型 */ public List<UserComment> findByDepartmentId(int dapartmentId); /** * 单个string型 */ public Source findByTitle(String title); 对应的Mapper取值: 取值时应当注

Struts2 框架中怎么处理异常Exception

Struts2中异常的处理 在开发Java web应用程序时,由于程序的开发不太完善,导致用户在使用过程中会出现程崩溃的情况,结果就是在浏览器上看见一大堆怎么都看不懂的东西.对于一些商业级的应用可能损失上千万.Struts2 框架异常处理机制对于这种情况提供了有效的支持. 一般情况下,开发中往往希望是这样的:当用户请求发生了异常时,就会转入指定的错误视图资源,不同的异常转入不同的指定的视图资源,用户的体验度就提高了.处理方式有: 1. 在Action中使用try catch解决,但是这中解决方法

struts2框架学习笔记3:获取servletAPI

Struts2存在一个对象ActionContext(本质是Map),可以获得原生的request,response,ServletContext 还可以获得四大域对象(Map),以及param参数(Map)等等 ActionContext生命周期:每次请求都会创建一个与请求对应的ActionContext对象 绑定当前线程(ThreadLocal),直接从ThreadLocal中获得即可 请求处理完后,ActionContext对象销毁 第一种获得方式: public String execu

一个请求在Struts2框架中的处理流程

1.客户端向Servlet容器发起一个请求,将请求封装为HttpServletRequest对象. 2.HttpServletRequest首先经过web.xml中配置的struts2的过滤器,以及struts2内置的一些过滤器. 3.接着FilterDispatcher(现已过时)被调用,FilterDispatcher询问ActionMapper来决定这个请是否需要调用某个Action. 4.如果ActionMapper决定需要调用某个Action,FilterDispatcher把请求的处

struts2框架学习笔记4:获取参数

第一种参数获取方式: 编写一个前端页面,提交表单,做示例: <form action="${pageContext.request.contextPath}/Demo1Action"> 用户名:<input type="text" name="name" /><br> 年龄:<input type="text" name="age" /><br>