2 zhaohaibo 1988 zhaohaibo_1988 于 2016.01.27 17:17 提问

java普通类中能否获取request对象

一个java普通的类能否拿到request对象呢?
如果要继承httpservlet,是否一定要覆盖doget和dopost方法呢,如果不覆盖能否取到request对象?

9个回答

caozhy
caozhy   Ds   Rxr 2016.01.27 17:42

你可以从servlet传request对象过去。或者在普通类中封装成接口,普通类操作接口,selvet调用的时候实现接口转发到request上。

bdmh
bdmh   Ds   Rxr 2016.01.27 17:38

普通类获取不到,你要接受请求或提交,就要处理这两个方法

Tenderness_xq
Tenderness_xq   2016.01.27 17:51

你告诉我你想干什么,普通的类当然无法获得request

zhaohaibo_1988
zhaohaibo_1988 这边使用dwr框架,前台js调用后台java代码,而这个java类就是个普通的java程序,所以很纳闷,不过现在已经解决了。可以通过ActionContext ac = ActionContext.getContext(); HttpServletRequest request =(HttpServletRequest)ac.get(ServletActionContext.HTTP_REQUEST);这个方式获取
接近 2 年之前 回复
qq_19558705
qq_19558705   Ds   Rxr 2016.01.27 18:17

类继承httpservlet就可以了,定义一个全局的request变量。不一定只在doGet()和doPost()方法中。

baokx
baokx   2016.01.27 20:50

莫非楼主是想获取当前登陆的用户么。。

zhaohaibo_1988
zhaohaibo_1988 dwr框架,调用后台java程序,现在已经可以取到了
接近 2 年之前 回复
qq_26946497
qq_26946497 那个嘛,过滤器就可以吧?
接近 2 年之前 回复
qq_26946497
qq_26946497   2016.01.27 21:48

那啥,想轻松地获得一个Request是不可能的,因为我们在web应用中获取的request是tomcat创建出来的,我们的web程序只是获取了它.
当然也不是没可能,因为java有能力对付HTTP请求,但这样一来创建Request的过程就完全由我们自己完成,也就是说需要自己实现Tomcat的部分功能

wojiushiwo945you
wojiushiwo945you   Ds   Rxr 2016.01.28 11:09

首先,普通类不能直接获取到request对象,但是可以依赖HttpServletRequest类的,即这个类的方法中的某个参数类型是 HttpServletRequest。其次,doPost, doGet方法是servlet最终调用的方法,如果不覆盖的话就是用父类的默认实现,就没有实际意义了。而且这两个是抽象方法,必须要重实现的。

Royal_lr
Royal_lr   Ds   Rxr 2016.01.28 11:21

普通类又不能与网页交互,怎么获取request

cuiwei1026522829
cuiwei1026522829   Ds   Rxr 2016.01.28 16:38

可以依赖HttpServletRequest类

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!