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>

运行

struts----访问ServletAPI的方式