访问servletAPI方式

1.通过ActionContext  (推荐)

public class Demo5Action extends ActionSupport {

    public String execute() throws Exception {
        //request域=> map (struts2并不推荐使用原生request域)
        //不推荐
        Map<String, Object> requestScope = (Map<String, Object>) ActionContext.getContext().get("request");
        //推荐
        ActionContext.getContext().put("name", "requestTom");
        //session域 => map
        Map<String, Object> sessionScope = ActionContext.getContext().getSession();
        sessionScope.put("name", "sessionTom");
        //application域=>map
        Map<String, Object> applicationScope = ActionContext.getContext().getApplication();
        applicationScope.put("name", "applicationTom");

        return SUCCESS;
    }
}

2.通过ServletActionContext

public class Demo6Action extends ActionSupport {
    //并不推荐
    public String execute() throws Exception {
        //原生request
        HttpServletRequest request = ServletActionContext.getRequest();
        //原生session
        HttpSession session = request.getSession();
        //原生response
        HttpServletResponse response = ServletActionContext.getResponse();
        //原生servletContext
        ServletContext servletContext = ServletActionContext.getServletContext();
        return SUCCESS;
    }
}

3.通过实现接口方式

public class Demo7Action extends ActionSupport implements ServletRequestAware {

    private HttpServletRequest request;

    public String execute() throws Exception { 

        System.out.println("原生request:"+request);
        return SUCCESS;
    }

    @Override
    public void setServletRequest(HttpServletRequest request) {
        this.request = request;
    }
}
时间: 2024-10-08 18:46:36

访问servletAPI方式的相关文章

Struts2的Action中访问servletAPI方式

struts2的数据存放中心为ActionContext,其是每次请求来时都会创建一个ActionContext,访问结束销毁,其绑定在ThreadLocal上,由于每次访问web容器都会为每次请求创建一个独立的线程ThreadLocal,而ActionContext绑定在ThreadLocal上,所以各个ActionContext是相互独立和安全的,在ActionContext中还持有其他的域对象引用,如application,session等,ActionContext销毁时只销毁自己内部创

JAVAEE学习——struts2_02:结果跳转、访问servletAPI、获得参数以及封装、练习:添加客户

一.结果跳转方式 <action name="Demo1Action" class="cn.itheima.a_result.Demo1Action" method="execute" > <result name="success" type="dispatcher" >/hello.jsp</result> </action> 转发 <action

Action访问ServletAPI的三种方式

一.前言 Struts是一种基于MVC设计模式的web应用框架,主要担任C的角色,用于分离页面显示和业务逻辑处理,那其实在我们学习jsp的时候学过一个具有类似功能的东西--servlet.其实Struts本质上相当于servlet,可以理解Struts是对servlet的进一步封装和抽象.那么在servlet里面使用的对象,在Struts里面同样也是可以使用的,这也是这一章的主要内容. 二.传统的Web程序和Web容器传递数据的方法 HttpServletRequest的getParameter

在struts2中访问servletAPI

在struts2中访问servletAPI,通俗点也就是使用servlet中的两个对象request对象和response对象. 前几天看到一个CRM项目的源码,里面使用request对象和response对象方式和我以前使用的方式有点不同,于是便上网查询一些相关资料.特此记录于此,有兴趣的也可以参考参考. 以往使用struts2往网页填充数据通常采用往值栈存放数据,也就是ActionContext.getContext().****();后面的方法类似与request对象和response对象

struts2中耦合访问servlet- API

struts2中耦合访问servlet- API有三种,推荐使用第二种.当然,尽量用解耦合的方式访问,解耦合方式访问内容在上一篇文章中有解释,需要者请查看. 方法一:.[一般推荐使用](只能获得request,而response则得不到) Struts2提供了一个ActionContext类,Struts2中的Action可以通过它进行访问. 其方法有:get(),getApplication(),getContext(),getParameters(),getSession(),setAppl

【ThinkPHP】TP-四种url访问的方式_URL_MODEL

TP-四种url访问的方式 'URL_MODEL' => 1, URL访问模式,可选参数0.1.2.3,代表以下四种模式: 0 (普通模式); 1 (PATHINFO 模式);  /*默认*/ 2 (REWRITE 模式); 3 (兼容模式) 0:http://localhost/index.php?m=模块&c=控制器&a=操作方法     [get模式] 1:http://localhost/index.php/模块[模块文件夹]/控制器/操作方法    [pathinfo模式]

tp-02 四种url访问的方式

1:http://localhost/index.php?m=模块&c=控制器&a=操作方法 [get模式] 2:http://localhost/index.php/模块[模块文件夹]/控制器/操作方法 [pathinfo模式] 3:http://localhost/模块[模块文件夹]/控制器/操作方法 [rewite重写模式] 4:http://localhost/index.php?s=/模块[模块文件夹]/控制器/操作方法 [兼容模式] 具体的url模式 在ThinkPHP/con

struts2学习笔记之六:struts2的Action访问ServletAPI的几种方式

方法一:通过ActionContext访问SerlvetAPI,这种方式没有侵入性 Action类部分代码 import com.opensymphony.xwork2.ActionContext; public String execute() throws Exception { if("admin".equals(user.getUsername()) && "admin".equals(user.getPassword())){ //获取Ma

Struts2访问ServletAPI的三种方式

web应用中需要访问的ServletAPI,通常只有HttpServletRequest,HttpSession,ServletContext三个,这三个接口分别代表jsp内置对象中的request,session,application,Struts2没有与任何Servlet接口耦合,所以很方便的访问Servlet API. 第一种: Struts2提供了一个ActionContext类,顾名思义,Action的上下文,该类提供了很多方法,比如getApplication(),getSessi