Struts2访问servlet分享
深入Struts2中的访问Servlet分享机制
一、访问或添加request/session/application属性
在Struts2框架中,我们可以通过ActionContext类轻松访问和添加request、session和application属性。以下是具体的代码实现:
```java
public String scope() throws Exception {
ActionContext ctx = ActionContext.getContext();
ctx.getApplication().put("app", "应用范围"); // 往ServletContext里放入app
ctx.getSession().put("ses", "session范围"); // 往session里放入ses
ctx.put("req", "request范围"); // 往request里放入req
return "scope";
}
```
在JSP页面中,我们可以通过EL表达式获取这些属性:
```html
${applicationScope.app}
${sessionScope.ses}
${requestScope.req}
```
二、获取HttpServletRequest / HttpSession / ServletContext / HttpServletResponse对象
在Struts2中,我们可以通过两种主要方式获取HttpServletRequest、HttpSession、ServletContext和HttpServletResponse对象。
方法一:直接通过ServletActionContext类获取。代码如下:
```java
public String rsa() throws Exception {
HttpServletRequest request = ServletActionContext.getRequest();
ServletContext servletContext = ServletActionContext.getServletContext();
request.getSession(); // 获取session对象,不需要单独赋值
HttpServletResponse response = ServletActionContext.getResponse();
return "scope";
}
```
方法二:实现指定的接口,由Struts框架运行时注入。这种方式更为灵活,我们可以在需要的地方注入这些对象。代码如下:
```java
public class HelloWorldAction implements ServletRequestAware, ServletResponseAware, ServletContextAware {
private HttpServletRequest request;
private ServletContext servletContext;
private HttpServletResponse response;
public void setServletRequest(HttpServletRequest req) { this.request = req; }
public void setServletResponse(HttpServletResponse res) { this.response = res; }
public void setServletContext(ServletContext ser) { this.servletContext = ser; }
}
```
通过这种方式,我们可以在类的任何方法中直接使用这些对象,无需再次获取。这种方式在处理复杂的业务逻辑和多个请求响应周期中特别有用。Struts2框架为我们提供了丰富的工具和方法来访问和操作Servlet相关的对象,使得开发过程更为便捷和高效。
编程语言
- Struts2访问servlet分享
- php ActiveMQ的安装与使用方法图文教程
- 利用types增强vscode中js代码提示功能详解
- AngularJS轻松实现双击排序的功能
- TCP关闭问题详细介绍
- 微信公众平台消息接口校验与消息接口响应实例
- Repeater绑定dictionary数据源代码及报错解决
- ajax回调函数中使用$(this)取不到对象的解决方法
- Javascript将JSON日期格式化
- ThinkPHP CURD方法之data方法详解
- mysql临时表用法分析【查询结果可存在临时表中】
- 详解vue 中使用 AJAX获取数据的方法
- jQuery Mobile开发中日期插件Mobiscroll使用说明
- curl 出现错误的调试方法(必看)
- twig模板获取全局变量的方法
- JBuilder2005实现重构