白日放歌须纵酒,青春作伴好还乡。这篇文章主要讲述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";
}
}
取出结果
【struts2 action中获取request session application的方法】
<
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属性的访问
再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow
推荐阅读
- ExecutorException: A query was run and no Result Maps were found for the Mapped Statement ‘com.win.m
- SpringMVC中@Controller和@RequestMapping用法和其他常用注解(转)
- 安卓微信端打开H5页面背景图被键盘挤压移动位置解决
- .net core获取appsettings CustomSettings
- android: getDimension, getDimensionPixelOffset 和getDimensionPixelSize 区别
- android -------- OkGo (让网络请求更简单的框架)
- Android ButterKnife依赖注入框架的引入和使用
- WinXP下如何运行幽浮:未知敌人
- WinXP下如何删除非空目录