后台调用ServletActionContext.getServletContext()获取application,ServletActionContext.getRequest()获取request信息,然后通过request信息获取session信息。和容器绑定可以获取除传值以外的容器其他信息。
package struts.test.action;
import java.sql.SQLException;
import java.util.Map;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import org.apache.struts2.ServletActionContext;
import com.opensymphony.xwork2.ActionSupport;
/**
* 登录练习
* @author zk
*
*/
public class LoginAction extends ActionSupport {
//获取request对象
HttpServletRequest request1;
HttpSession session1;
ServletContext application1;
@Override
public String execute() throws Exception {
request1 = ServletActionContext.getRequest();
session1 = request1.getSession();
application1 = ServletActionContext.getServletContext();
request1.setAttribute("req", "request1属性");
session1.setAttribute("ses", "session1属性");
application1.setAttribute("app", "application1属性");
return SUCCESS;
}
}
前台2种方式获取(EL表达式和控制反转IOC)
<%@ page pageEncoding="UTF-8"%>
<%@ taglib uri="/struts-tags" prefix="s" %>
<%
String path = request.getContextPath();
%>
<html>
<head></head>
<body>
<h1>adminSuc</h1>
管理员页面
<br/><br/>
requset属性接受:<s:property value="#request.req"/> <br/>
session属性接受:<s:property value="#session.ses"/><br/>
application属性接受:<s:property value="#application.app"/><br/>
<br/>
=============================
<br/>
<br/><h1> 另外一种获取方法 :</h1><br/>
requset属性接受:${requestScope.req}<br/>
session属性接受:${sessionScope.ses}<br/>
application属性接受:${applicationScope.app}<br/>
<br/>
<br/>
<a href="<%=path %>/login.jsp">返回</a>
</body>
</html>