今天想到使用struts2框架后如何使用servelt的内置对象呢,后来上网查了查,原来是有办法的,根据网上的资料整理如下:欢迎拍砖。
一,通过 IOC 注入方式
1.实现要用到的接口;
2.在类内部定义类变量 request, response, session和 application, 实现对应接口中的setter方法
public class xxxAction extends ActionSupportimplements HttpServletRequest,HttpServletResponse,SessionAware,ApplicationAware{
private HttpServletRequest request; //HttpServletRequest型变量request声明
private HttpServletResponse response; //HttpServletResponse型变量response声明
private Map session; //HttpSession型变量session声明
private Map application; //Application型变量application声明
public void setServletRequest(HttpServletRequest request){ //实现接口中的方法
this.request = request;
}
public void setServletResponse(HttpServletResponse response){ //实现接口中的方法
this.response = response;
}
public void setSession(Map<String, Object> session){ //实现接口中的方法
this.session = session;
}
public void setApplication(Map<String, Object> application){ //实现接口中的方法
this.application = application;
}
}
3.完成上述工作之后,就可以在自己的方法中或者在execute()等执行方法中直接使用这些request,response,session和application对象
public String execute(){
String userName=request.getParameter("userName"); //使用
//response.sendRedirect("register/index.jsp");
session.put("userName",userName);
application.put("onlineNum",100);
//...code...
}