zoukankan      html  css  js  c++  java
  • struts2 action中获取request session application的方法

    共四种方式:

    其中前两种得到的是Map<String,Object>  后两种得到的才是真正的request对象

    而Map就是把request对象中的属性取出做成了键值对而已。

    【方法一】

    public class LoginAction {
    	private Map request;
    	private Map session;
    	private Map application;
    	
    	public String execute() {
    		request = (Map)ActionContext.getContext().get("request");
    		session = ActionContext.getContext().getSession();
    		application = ActionContext.getContext().getApplication();
    		request.put("username1", "jingjing1");
    		session.put("username2", "jingjing2");
    		application.put("username3", "jingjing3");
    		return "success";
    	}
    }

    取出结果

     <body>
        <%
           String username1 = (String)request.getAttribute("username1");
           String username2 = (String)session.getAttribute("username2");
           String username3 = (String)application.getAttribute("username3");
        %>
        <%=username1 %>
        <%=username2 %>
        <%=username3 %>
      </body>

    【方法二】

    public class LoginAction implements RequestAware,SessionAware,ApplicationAware {
    	private Map<String, Object> request;
    	private Map<String, Object> session;
    	private Map<String, Object> application;
    	
    	public void setRequest(Map<String, Object> request) {
    		// TODO Auto-generated method stub
    		this.request = request;
    	}
    
    	public void setSession(Map<String, Object> session) {
    		// TODO Auto-generated method stub
    		this.session = session;
    	}
    
    	public void setApplication(Map<String, Object> application) {
    		// TODO Auto-generated method stub
    		this.application = application;
    	}
    	public String execute() {
    		request.put("username1", "jingjing11");
    		session.put("username2", "jingjing222");
    		application.put("username3", "jingjing33");
    		return "success";
    	}
    }
    
    【方法三】

    public class LoginAction {
    	private HttpServletRequest request;
    	private HttpSession session;
    	private ServletContext application;
    	public String execute() {
    			
    		request = ServletActionContext.getRequest();
    		session = request.getSession();
    		application = session.getServletContext();
    		
    		//application = ServletActionContext.getRequest().getSession().getServletContext();
    		
    		request.setAttribute("aaa", "aaa");
    		session.setAttribute("bbb", "bbb");
    		application.setAttribute("ccc", "ccc");
    		
    		return "success";
    	}
    }

    【方法四】

    public class LoginAction implements ServletRequestAware {
    	private HttpServletRequest request;
    	private HttpSession session;
    	private ServletContext application;
    	
    	public void setServletRequest(HttpServletRequest request) {
    		// TODO Auto-generated method stub
    		this.request = request;
    		this.session = request.getSession();
    		this.application = session.getServletContext();
    	}
    	
    	public String execute() {		
    		request.setAttribute("111", "111");
    		session.setAttribute("222", "222");
    		application.setAttribute("333", "333");
    		return "success";
    	}		
    }

    HttpServletRequest方法总结:

    HttpServletRequest接口是继承自ServletRequest接口的,增加了和HTTP相关的一些方法

    getScheme() 方法返回请求的计划,比如http,https或者ftp.
    getServerName() 方法返回被发送请求的服务器的主机名
    getServerPort() 方法返回被发送请求的端口号。
    getContextPath() 返回请求地址的根目录,以"/"开关,但不是以"/"结尾。
    一个常用的获得服务器地址的连接字符串是:
    String path = request.getContextPath();
    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";


    getCookies() 取得cookie
    getMethod() 取得请求方法,如get,post或put
    getRequestURL() 取得请求URL(统一资源定位符)
    getRequestURI() 取得请求URI(统一资源标识符)
    getSession() 取得对应session

    public HttpSession getSession();
    public HttpSession getSession(boolean create);
    返回与这个请求关联的当前的有效的session。如果调用这个方法时没带参数,那么在没有session与这个请求关联的情况下,将会新建一个session。如果调用这个方法时带入了一个布尔型的参数,只有当这个参数为真时,session才会被建立。


    ServletRequestAware与RequestAware的区别

    ServletRequestAware——提供对HttpServletRequest对象的访问
    RequestAware ——通过Map来提供对所有request属性的访问


  • 相关阅读:
    4-1 R语言函数 lapply
    3-6 向量化操作
    3-5 处理缺失值
    3-4 列表的子集
    3-3 数据框的子集
    3-2 矩阵的子集
    bootstrap 模式对话框
    手机端 超链接 识别电话号码
    jQuery设置和获取HTML、文本和值
    TP 框架 ajax[利用异步提交表单]
  • 原文地址:https://www.cnblogs.com/itmyhome/p/4131592.html
Copyright © 2011-2022 走看看