`
yuynlong_0708
  • 浏览: 2552 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
最近访客 更多访客>>
社区版块
存档分类
最新评论

struts2中获取request、response,与android客户端进行交互(转载)

阅读更多

用struts2作为服务器框架,与android客户端进行交互需要得到request、response对象。

struts2中获取request、response有两种方法。

第一种:利用ServletActionContext的静态方法

Struts2 利用ServletActionContext类来维护Servlet对象,ServletActionContext利用ThreadLocal来维护 不同线程的Servlet对象,因此可以使用ServletActionContext类获取,这种方法可以叫做非注射方式(非IoC方式)。

[代码]java代码:
01 public class LoginAction extends ActionSupport {
02   
03         private static final long serialVersionUID = 1L;
04           
05         private String account;//账号
06          private String pwd;//密码
07           
08         public String login() throws Exception{
09                   
10                 //获取request
11                  HttpServletRequest request=ServletActionContext.getRequest();
12                  //获取response
13                  HttpServletResponse response=ServletActionContext.getResponse();
14                  //获取Session
15                  HttpSession session=request.getSession(true);
16                  //放到session中
17                  session.setAttribute("account", account);
18                  //获得上下文
19                  ServletContext context=ServletActionContext.getServletContext();
20                  //获取upload文件夹
21                  File uploadFile=new File(context.getRealPath("upload"));
22                   
23                 //给客户端返回结果
24                  PrintWriter writer=response.getWriter();
25                  writer.print("account");
26                   
27                 return execute();
28          }
29  }

第二种:利用相关的Aware接口

Struts2 提供Aware接口,实现了相关Aware接口的Action能够感知相应的资源。Struts在实例化一个Action事例中,如果发现它实现了相应的 Aware接口,会把相应的资源通过Aware接口方法注射进去,这种方法可以叫做注射方式(IoC方式)。

[代码]java代码:
01 public class ServletAwareAction extends ActionSupport implements
02                  ServletRequestAware, ServletResponseAware, SessionAware, ServletContextAware {
03   
04         private static final long serialVersionUID = 1L;
05   
06         private ServletContext application;//Servlet上下文
07          private HttpServletRequest request;//request对象
08          private HttpServletResponse response;//response对象
09          private Map<String, Object> session;//session对象
10           
11         public void setServletRequest(HttpServletRequest request) {
12                  this.request=request;
13          }
14   
15         public void setServletResponse(HttpServletResponse response) {
16                  this.response=response;
17          }
18   
19         public void setSession(Map<String, Object> session) {
20                  this.session=session;
21          }
22   
23         public void setServletContext(ServletContext application) {
24                  this.application=application;
25          }
26   
27         public String execute(){
28                  String upload=application.getRealPath("upload");
29                   
30                 request.getRemoteAddr();
31                  response.getContentType();
32                  session.get("account");
33                   
34                 return Action.SUCCESS;
35          }

Aware接口其实是一种拦截器,拦截器代码会在执行Action之前执行,将相关的Servlet对象设置进去

分享到:
评论

相关推荐

    手机与服务器交互,服务器端代码

    当我们手机需要和服务器进行交互时,服务器端的代码。 采用了struts技术。HttpServletRequest HttpServletResponse 以最简单的this.response.getWriter().write(result); 进行服务器端返回。此时与服务器的交互流量...

    详解Struts2中Action访问Servlet API的几种方法

    在通常的web开发中Request和Response对象比较常见,但在Struts2框架中由于Action能与JSP页面进行数据交互,所以通常都不会用到这两个对象。如果想在Struts2程序中用到这两个对象,也有解决方法 Struts2的Action并未...

    struts2.4+spring3.1+hibernate4.1的SSH框架

     系统的基本业务流程是: 在表示层中,首先通过JSP页面实现交互界面,负责传送请求(Request)和接收响应(Response),然后Struts根据配置文件(struts-config.xml)将ActionServlet接收到的Request委派给相应的Action...

    Java Web编程宝典-十年典藏版.pdf.part2(共2个)

    8.3.1 Struts2的获取与放置 8.3.2 第一个Struts2程序 8.4 Action对象 8.4.1 认识Action对象 8.4.2 请求参数的注入原理 8.4.3 Action的基本流程 8.4.4 什么是动态Action 8.4.5 动态Action的应用 8.5 Struts2的配置...

    ssh(structs,spring,hibernate)框架中的上传下载

     LobHandler必须注入到Hibernate会话工厂sessionFactory中,因为sessionFactory负责产生与数据库交互的Session。LobHandler的配置如代码 5所示:  代码 5 Lob字段的处理句柄配置 1. 2. … 3. 4. class="org....

    JAVA-SSH面试题

    如果需要,Struts2 Action仍然可以访问初始的Request和Response。 但是,其他的元素减少或者消除了直接访问HttpServletRequest和HttpServletResponse的必要性。 d、可测性 测试struts1.2 Action的一个主要问题是...

    java 面试题 总结

    redirect就是服务端根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址,一般来说浏览器会用刚才请求的所有参数重新请求,所以session,request参数都可以获取。 20、EJB与JAVA BEAN的区别? Java Bean 是可复用...

    超级有影响力霸气的Java面试题大全文档

    redirect就是服务端根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址,一般来说浏览器会用刚才请求的所有参数重新请求,所以session,request参数都可以获取。 23、EJB与JAVA BEAN的区别?  Java Bean 是可...

    李兴华Java Web开发实战经典(高清版) Part2

    4.5、交互性 4.6、本章摘要 4.7、开发实战讲解 第5章 JSP基础语法 5.1、JSP注释 5.2、Scriptlet 5.2.1、第一种Scriptlet: 5.2.2、第二种Scriptlet:!%&gt; 5.2.3、第三种Scriptlet: 5.3、Scriptlet标签 5.4...

    java web 视频、电子书、源码(李兴华老师出版)

    6.4、response对象 6.4.1、设置头信息 6.4.2、页面跳转 6.4.3、操作Cookie 6.5、session对象 6.5.1、取得Session Id 6.5.2、登陆及注销 6.5.3、判断新用户 6.5.4、取得用户的操作时间 6.6、...

    李兴华 Java Web 开发实战经典_带源码_高清pdf 带书签 上

    4.5、交互性 4.6、本章摘要 4.7、开发实战讲解 第5章 JSP基础语法 5.1、JSP注释 5.2、Scriptlet 5.2.1、第一种Scriptlet: 5.2.2、第二种Scriptlet:!%&gt; 5.2.3、第三种Scriptlet: 5.3、Scriptlet标签 5.4...

    MLDN+李兴华+Java+Web开发实战经典.part3.rar )

    4.5、交互性 4.6、本章摘要 4.7、开发实战讲解 第5章 JSP基础语法 5.1、JSP注释 5.2、Scriptlet 5.2.1、第一种Scriptlet: 5.2.2、第二种Scriptlet:!%&gt; 5.2.3、第三种Scriptlet: 5.3、Scriptlet标签 5.4...

    李兴华 java_web开发实战经典 源码 完整版收集共享

    4.5、交互性 4.6、本章摘要 4.7、开发实战讲解 第5章 JSP基础语法 5.1、JSP注释 5.2、Scriptlet 5.2.1、第一种Scriptlet: 5.2.2、第二种Scriptlet:!%&gt; 5.2.3、第三种Scriptlet: 5.3、Scriptlet标签 5.4...

    李兴华 Java Web 开发实战经典_带源码_高清pdf 带书签 下

    4.5、交互性 4.6、本章摘要 4.7、开发实战讲解 第5章 JSP基础语法 5.1、JSP注释 5.2、Scriptlet 5.2.1、第一种Scriptlet: 5.2.2、第二种Scriptlet:!%&gt; 5.2.3、第三种Scriptlet: 5.3、Scriptlet标签 5.4...

    李兴华Java Web开发实战经典.pdf (高清版) Part1

    4.5、交互性 4.6、本章摘要 4.7、开发实战讲解 第5章 JSP基础语法 5.1、JSP注释 5.2、Scriptlet 5.2.1、第一种Scriptlet: 5.2.2、第二种Scriptlet:!%&gt; 5.2.3、第三种Scriptlet: 5.3、Scriptlet标签 5.4...

    李兴华 Java Web 开发实战经典 高清扫描版Part3

    4.5、交互性 4.6、本章摘要 4.7、开发实战讲解 第5章 JSP基础语法 5.1、JSP注释 5.2、Scriptlet 5.2.1、第一种Scriptlet: 5.2.2、第二种Scriptlet:!%&gt; 5.2.3、第三种Scriptlet: 5.3、Scriptlet标签 5.4...

Global site tag (gtag.js) - Google Analytics