Struts2中对Servlet API的访问
2017-05-06 15:09
417 查看
1 通过接口进行对象注入,action必须是实现相应的接口,struts就可以将指定的对象传递给action类
ServletContextAware接口:可以获得ServletContext对象
ServletResponseAware接口:可以获得ServletResponse对象
ServletRequestAware接口:可以获得ServletRequest对象
request.getSession获得session对象
执行结果:
2 ServletActionContext 工具类,struts 的action类中获得servlet的api
获得servlet 对象,可以操作域数据,可以调用其他api
HttpServletRequest ServletActionContext.getRequest();
HttpSession ServletActionContext.getRequest().getSession();
ServletContext ServletActionContext.getServletContext();
jsp代码:
执行结果:
3 通过Action上下文对象ActionContext,可以间接对servlet 域数据进行操作,实现了解耦,不依赖于servlet api
获得ActionContext实例:ActionContext.getContext()
间接操作域数据
jsp代码:
执行结果:
ServletContextAware接口:可以获得ServletContext对象
ServletResponseAware接口:可以获得ServletResponse对象
ServletRequestAware接口:可以获得ServletRequest对象
request.getSession获得session对象
public class ServletAction extends ActionSupport implements ServletRequestAware{ private HttpServletRequest request; @Override public void setServletRequest(HttpServletRequest request) { this.request = request; } @Override public String execute() throws Exception { System.out.println(request.getContextPath()); return SUCCESS; } }
执行结果:
2 ServletActionContext 工具类,struts 的action类中获得servlet的api
获得servlet 对象,可以操作域数据,可以调用其他api
HttpServletRequest ServletActionContext.getRequest();
HttpSession ServletActionContext.getRequest().getSession();
ServletContext ServletActionContext.getServletContext();
public class ServletAction extends ActionSupport { @Override public String execute() throws Exception { ServletActionContext.getResponse(); ServletActionContext.getRequest().setAttribute("sac", "ServletActionContext_request"); ServletActionContext.getRequest().getSession().setAttribute("sac", "ServletActionContext_session"); ServletActionContext.getServletContext().setAttribute("sac", "ServletActionContext_application"); return SUCCESS; } }
jsp代码:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <body> <h3>获得3作用域内容 -- ServletActionContext</h3> ${requestScope.sac} <br/> ${sessionScope.sac} <br/> ${applicationScope.sac} <br/> </body> </html>
执行结果:
3 通过Action上下文对象ActionContext,可以间接对servlet 域数据进行操作,实现了解耦,不依赖于servlet api
获得ActionContext实例:ActionContext.getContext()
间接操作域数据
public class ServletAction extends ActionSupport { @Override public String execute() throws Exception { ActionContext.getContext().put("ac", "ActionContext_request"); ActionContext.getContext().getSession().put("ac", "ActionContext_session"); ActionContext.getContext().getApplication().put("ac", "ActionContext_application"); return SUCCESS; } }
jsp代码:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <body> <h3>获得3作用域内容-- ActionContext</h3> ${requestScope.ac} <br/> ${sessionScope.ac} <br/> ${applicationScope.ac} <br/> </body> </html>
执行结果:
相关文章推荐
- struts2学习笔记之六(Action访问servlet的API以及复制项目小技巧)
- Struts2访问Servlet的API及......
- struts2访问servlet的API
- Struts2 访问 Servlet API 的四种方式
- Struts2之访问Servlet的API
- 【4】Struts2访问Servlet的API
- Struts2(二)— Result结果配置、Servlet的API的访问、模型驱动、属性驱动
- Struts2中访问Servlet中的API(ActionContext,ServletActionContext)两种方式
- Struts2 访问 Servlet API 的三种方法
- Struts2 访问 Servlet API 的三种方法
- 传智播客-struts2(3)-Servlet API访问、拦截器以及struts2的小bug
- Struts2_009_Servlet API耦合的访问方式值之ServletXxxAware
- struts2,转发、重定向,访问servletAPI、获取表单参数
- Struts2_008_Servlet API耦合的访问方式值之ServletActionContext
- (转)Struts2访问Servlet的API及......
- Struts2系列:(5)与Servlet API解耦(Servlet相关对象访问)
- struts2中耦合访问servlet- API
- Struts2(二)结果视图,实体封装和访问Servlet的API
- Struts2:访问Servlet API
- Struts2的Action与ServletAPI的解耦