zl程序教程

您现在的位置是:首页 >  工具

当前栏目

Struts2笔记–Action访问Servlet API详解编程语言

笔记ServletAPI编程语言 详解 访问 &# 8211
2023-06-13 09:11:46 时间

Web应用中通常需要访问的Servlet API就是HttpServletRequest、HttpSession和ServletContext,这三个接口分别代表JSP内置对象中的request、session和application。

1.使用Struts2提供的ActionContext类来访问Servlet API。下面是ActionContext类中包含的几个常用方法。

Object get(Object key):该方法类似于调用HttpServletRequest的getAttribute(String name)方法。

Map getApplication():返回一个Map对象,该对象模拟了该应用的ServletContext实例。

static ActionContext getContext():静态方法,获取系统的ActionContext实例。

Map getParameters():获取所有的请求参数。类似于调用HttpServletRequest对象的getParameterMap()方法。

Map getSession():返回一个Map对象,该Map对象模拟了HttpSession实例。

void setApplication(Map application):直接传入一个Map实例,将该Map实例里的key-value对转换成application的属性名、属性值。

void setSession(Map session):直接传入一个Map实例,将该Map实例里的key-value对转换成session的属性名、属性值。

eg:
通过ActionContext设置application范围的属性

 ActionContext ctx = ActionContext.getContext(); 

 ctx.getApplication.put("name","aaa");

通过ActionContext设置request范围的属性

 ctx.put("name","bbb");

 

2.虽然Struts2提供了ActionContext来访问Servlet API,但这种访问不是直接获得Servlet API的实例,为了直接在Action中访问Serlvet API,struts2提供了如下几个接口:

ServletContextAware:实现该接口的Action可以直接访问Web应用的ServletContext实例。

ServletRequestAware:实现该接口的Action可以直接访问用户请求的HttpServletRequest实例。

ServletResponseAware:实现该接口的Action可以直接访问服务器响应的HttpSerlvetResponse实例。

3.使用ServletActionContext访问Servlet API

为了能直接访问Servlet API,Struts2还提供了一个ServletActionContext工具类,这个类包含了如下几个静态方法。

static PageContext getPageContext():取得Web应用的PageContext的对象。

static HttpServletRequest getRequest():取得Web应用的HttpServletRequest对象。

static HttpServletResponse getResponse():取得Web应用的HttpServletResponse对象。

static ServletContext getServletContext():取得Web应用的ServletContext对象。

 

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/16874.html

cjava