struts2访问web资源

通过ActionContext访问

public class TestActionContextAction {

    public String execute(){

        //获取 ActionContext 对象
        ActionContext actionContext = ActionContext.getContext();

        //application
        Map<String, Object> applicationMap = actionContext.getApplication();

        applicationMap.put("applicationKey", "applicationValue");

        //获取属性
        Object date = applicationMap.get("date");
        System.out.println("date: " + date);

        //2. session
        Map<String, Object> sessionMap = actionContext.getSession();
        sessionMap.put("sessionKey", "sessionValue");

        //清空session
        /*if(sessionMap instanceof SessionMap){
            SessionMap sm = (SessionMap) sessionMap;
            sm.invalidate();
            System.out.println("session 失效了. ");
        }*/

        //request
        Map<String, Object> requestMap = (Map<String, Object>) actionContext.get("request");
        requestMap.put("requestKey", "requestValue");

        //parameter
        Map<String, Parameter> parameters = actionContext.getParameters();
        System.out.println(parameters.get("name"));

        return "success";
    }

}

Aware方式

public class TestAwareAction implements ApplicationAware, SessionAware, RequestAware
    ,ParameterAware{

    public String execute(){

        //1. 向 application 中加入一个属性: applicationKey2 - applicationValue2
        application.put("applicationKey", "applicationValue");

        //2. 从 application 中读取一个属性 date, 并打印.
        System.out.println(application.get("date"));
        request.put("requestKey", "requestValue");

        session.put("sessionKey", "sessionValue");

        return "success";
    }

    public String save(){

        return null;
    }

    private Map<String, Object> application;

    @Override
    public void setApplication(Map<String, Object> application) {
        this.application = application;
    }
    private Map<String, String[]> parameters;
    @Override
    public void setParameters(Map<String, String[]> parameters) {
        this.parameters = parameters;
    }

    private Map<String, Object> request;
    @Override
    public void setRequest(Map<String, Object> request) {
        // TODO Auto-generated method stub
        this.request = request;

    }

    private Map<String, Object> session;
    @Override
    public void setSession(Map<String, Object> session) {
        // TODO Auto-generated method stub
        this.session = session;

    }

}

jsp页面

application : ${applicationScope.applicationKey }
    <br><br>

    session: ${sessionScope.sessionKey }
    <br><br>

    request: ${requestScope.requestKey }
    <br><br>

    parameters ${parameters.name }

struts.xml

 <action name="TestActionContext" class="com.TestActionContextAction">
      <result  name="success">/actionContext.jsp</result>
 </action>

 <action name="TestAware" class="com.TestAwareAction">
      <result>/aware.jsp</result>
 </action>
时间: 2024-10-24 15:31:47

struts2访问web资源的相关文章

Struts2学习第三课 访问Web资源

1.什么是WEB资源? HttpServletRequest,HttpSession,ServletContext等原生的Servlet API. 2.为什么访问WEB资源? B/S的应用的Controller中必然需要访问WEB资源,例如,向域对象中读写属性,读写Cookie,获取realPath等等. 3.如何访问? 在Action中,可以通过一下方式访问web的HttpSession,HttpServletRequest,HttpServletResponse等资源 与Servlet AP

Struts2:在 Action 中访问 WEB 资源

1.什么是 WEB 资源? HttpServletRequest.HttpSession.ServletContext 等原生的 Servlet API. 2.为什么访问 WEB 资源? B/S 的应用的 Controller 中必然需要访问 WEB 资源(向域对象中读写属性.读写Cookie.获取 realPath 等) 3.如何访问? 1).和Servlet API 解耦的方式:只能访问有限的 Servlet API 对象,且只能访问有限的方法.(使用 ActionContext .实现 X

Struts2(四):在Action中如何访问Web资源

1.什么WEB资源? HttpServletRequest,HttpServletRespone,HttpApplication,ServletContext,HttpSession等原生ServletAPI. 2.在Struts2中为什么要访问WEB资源? B/S应用中的Controller必然会有场景需要访问WEB资源:向域对象中读写属性,读取Cookie,获取realPath等. 3.在Struts2中如何访问WEB资源? a)和ServletAPI解耦的方式:只能有限的ServletAP

在Action 中访问web资源

1.什么是web资源: HttpServletRequest,HttpSession,ServletContext等原生的Servlet API. 2.为什么要访问web资源? B/S应用的Controller 中必然需要访问web资源:如域对象中读写属性,读取Cookie,获取realPath... 3.如何访问? 1.和Servlet API 解耦的方式:只能访问有限的Servlet API 对象,且只能访问有限的方法(读取请求的参数,读写域对象的属性,使Session对象失效等等) -->

6、访问web资源

1.什么是web资源? HttpServletRequest.HttpSession.ServletContext等原生servlet API 2.为什么访问web资源? B\S 的应用中Controller中必然要访问web资源:向域对象中读写属性,读写cookie.读写realPath..... 3.如何访问? ①和Servlet API解耦的方式:只能访问有限的servlet API 对象,且只能访问其有限的对象方法(读取请求参数.读取域对象的属性.使session失效) >使用Actio

Struts2访问web元素

一.为什么Action要访问web元素? 在使用struts2框架进行开发的时候, 页面与Action类进行交互, 由于Action中无法取得前端request.session.application.HttpServletRequest.HttpSession.ServletApplication,但是当有用户登录的时候, 需要在程序中为该用户创建session以标识该用户的登录状态及其他信息, 如何才能使得Action能够访问web元素,并把相应数据放到session.application

struts2 访问Web元素的4种方法

完整代码 :Struts12AccessWebElement.rar 第一种也是最常用的一种方法实现这几个接口 RequestAware,SessionAware,ApplicationAware struts以依赖注入方式把request,session和application赋上值,看一下完整的代码 package com.pengli.struts.parampack; import java.util.Map; import org.apache.struts2.interceptor.

Struts2访问web元素的各种方法

1.通过RequestAware,SessionAware,ApplicationAware获取: 在Struts2中不能直接访问Request,Session,Application元素,但是可以使用Struts2中提供的RequestAware,SessionAware,ApplicationAware.在这里要分别为三个对象提供setter方法,以便让struts自动执行,使用IoC(控制反转)进行赋值. 下面的LoginAction使用ModelDriven获取User,放入Sessio

Struts2获取web资源的几种方式

1.通过ActionContext直接获取 1 public testAction extends ActionSupport { 2 private Map request; 3 private Map session; 4 private Map application; 5 public testAction(){ 6 request = (Map)ActionContext.getContext().get("request"); 7 session = ActionConte