struts----访问ServletAPI的方式
一.解耦方式
1.封装成Map对象,通过ActionContext.getContext来访问
2.注入方式,实现相应的Aware接口
二.耦合方式
直接访问ServletAPI
HelloAction.
// 解耦方式1
// public class HelloAction extends ActionSupport {
//
// private String name;
// //可以接受参数
//
// public String getName() {
// return name;
// }
// public void setName(String name) {
// this.name = name;
// }
// Map request;
// Map session;
// Map application;
// public String execute() throws Exception {
// ActionContext context = ActionContext.getContext();
// request = (Map) context.get("request");
// session = context.getSession();
// application = context.getApplication();
// request.put("rq1", "rq1");
// session.put("session1", "session1");
// return super.execute();
// }
// }
//解耦方式2
//public class HelloAction extends ActionSupport implements RequestAware, SessionAware {
// Map request;
// Map session;
// public void setRequest(Map<String, Object> request) {
//
// this.request = request;
// }
//
// public void setSession(Map<String, Object> session) {
// this.session = session;
// }
// public String execute() throws Exception {
// request.put("rq2", "rq2");
// session.put("session2", "session2");
// return super.execute();
// }
//
//}
public class HelloAction extends ActionSupport {
HttpServletRequest request;
HttpSession session;
@Override
public String execute() throws Exception {
// TODO Auto-generated method stub
request=ServletActionContext.getRequest();
session=request.getSession(true);//有就返回,没有就创建返回
request.setAttribute("rq3", "rq3");
session.setAttribute("session3", "session3");
return super.execute();
}
}
sucess.jsp
<%@ page language="java" contentType="text/html; charset=GB18030"
pageEncoding="GB18030"%>
<%@taglib prefix="s" uri="/struts-tags"%>
<h1>ONE</h1>
<%=request.getAttribute("rq1") %>
<s:property value="#request.rq1"/>
<s:property value="name"/>
<s:debug></s:debug>
<h1>TWO</h1>
<%=request.getAttribute("rq2") %>
<s:property value="#request.rq2"/>
<s:debug></s:debug>
<h1>THREE</h1>
request取:<%=request.getAttribute("rq3") %>
<s:property value="#request.rq3"/><br>
session取:<s:property value="#session.session3"/>
<s:debug></s:debug>
</body>
</html>
运行