struts sServletActionContext

如果我们的Action需要直接与JavaServletHttpSessionHttpServletRequest等一些对象进行操作,我们又该如何处理?。

ServletActionContext这个类直接继承了我们上面介绍的ActionContext,它提供了直接与JavaServlet相关对象访问的功能,它可以取得的对象有:

1javax.servlet.http.HttpServletRequestHTTPservlet请求对象

2javax.servlet.http.HttpServletResponse;HTTPservlet相应对象

3javax.servlet.ServletContextServlet 上下文信息

4javax.servlet.ServletConfigServlet配置对象

5javax.servlet.jsp.PageContextHttp页面上下文

ServletActionContext除了提供了上面这些对象访问,它当然也继承了它父类ActionContex的很多功能,比如:对OgnlValueStackAction名字等的访问。

下面我们看看几个简单的例子,让我们了解如何从ServletActionContext里取得JavaServlet的相关对象:

1、取得HttpServletRequest对象:

HttpServletRequest request = ServletActionContext. getRequest();

2、取得HttpSession对象:

HttpSession session = ServletActionContext. getRequest().getSession();

ServletActionContextActionContext有着一些重复的功能,在我们的Action中,该如何去抉择呢?我们遵循的原则是:如果ActionContext能够实现我们的功能,那最好就不要使用ServletActionContext,让我们的Action尽量不要直接去访问JavaServlet的相关对象。在使用ActionContext时有一点要注意:不要在Action的构造函数里使用ActionContext.getContext(),因为这个时候ActionContext里的一些值也许没有设置,这时通过ActionContext取得的值也许是null

你可能感兴趣的:(jsp,struts,servlet)