Struts 中获取session、request及response对象的方法
我们平常所说的session一般是HttpSession,但在struts2中被封装成了Map类型。
这个map对象里面可以存放键值对,而且我们可以在前台页面中通过相应的表达式将值取出来,如何在Action中获取session呢?下面是一些常用的方法:
1、获取session
Map session = ActionContext.getContext().getSession();session.put("userName",userName);ActionContext.getContext().getSession().remove(key);ServletActionContext.getRequest().getSession();
ServletActionContext.getRequest();
ServletActionContext.getResponse()
ActionContext ctx = ActionContext.getContext(); HttpServletRequest request = (HttpServletRequest)ctx.get(ServletActionContext.HTTP_REQUEST); HttpServletResponse response = (HttpServletResponse)ctx.get(ServletActionContext.HTTP_RESPONSE);
public class BaseAction extends ActionSupport implements SessionAware, ServletRequestAware, ServletResponseAware {ActionContext context = ActionContext.getContext();HttpServletRequest request;HttpServletResponse response;SessionMap session;//获取request,response,session方式一,非IoC方式,不用实现SessionAware, ServletRequestAware, ServletResponseAware//ActionContext context = ActionContext.getContext();//HttpServletRequest request = (HttpServletRequest) context.get(ServletActionContext.HTTP_REQUEST);//HttpServletResponse response = (HttpServletResponse) context.get(ServletActionContext.HTTP_RESPONSE);//Map session = context.getSession();//SessionMap session = (SessionMap) context.get(ActionContext.SESSION);//获取request,response,session方式一,IoC方式,必须实现SessionAware, ServletRequestAware, ServletResponseAwarepublic void setSession(Map map) {this.session = (SessionMap) map;}public void setServletRequest(HttpServletRequest request) {this.request = request;}public void setServletResponse(HttpServletResponse response) {this.response = response;}}public String findAllUsers() throws Exception { List<User> userList = userService.findAllUsers();HttpSession se = request.getSession();se.setAttribute("userList", userList);return SUCCESS;}public String findAllUsers() throws Exception {List<User> userList = userService.findAllUsers();session.put("userList", userList);//request.setAttribute("userList", userList);return SUCCESS;} <table value="%{#session.userList}">--%> <s:iterator id="user" value="#session.userList"><%-- <s:iterator id="user" value="#request.userList">--%> <tr> <td>${user.id}</td> <td>${user.name}</td> <td>${user.sex}</td> <td>${user.age}</td> <td>${user.address}</td> <td>${user.phone}</td> <td>${user.email}</td> </tr></s:iterator> </table><%-- 用完要清空 --%><%request.removeAttribute("userList");%><%--<%session.removeAttribute("userList");%>--%>[/size][/size][/size]