关于action和servlet

来源:百度知道 编辑:UC知道 时间:2024/05/15 14:12:35
action里得到的request(HttpServletRequest)和servlet中得到的request(doGet()和doPost()方法里得到的request)有什么不同?
为什么会有如此一问那是因为:
在servlet中处理文件上传时候,可以使用apache的common包的FileUpload类,进行文件上传处理。而在Struts的action里面,只能用FormFile来实现相关处理(即如果用common包的FileUpload类将得不到文件数据)。所以才会问他们的request是不是有什么不同。现在只有这么理解了,action中request截掉了是截掉文件数据的request。

补充:
用到Fileupload时,不知道lz是否设置了页面上form的mime属性,如果是的话,这时候的request已经和以前的repuest不同了。
另:回三楼,struts的源码是按照模板方法模式组织的。只要顺藤摸瓜就可以看的到。ActionServlet也是Servlet啊,映射文件和反射调用也没有那么神秘,即使没有这些文件,也可以直接按照模式方法组织struts结构
---------
没有什么不同。如果你看struts源码的话
Action是继承了servlet的

谁说Action继承了Servlet?你确定你看过struts的源码?什么版本的。
我所知道struts只有一个servlet就是ActionServlet,然后在这个Servlet里面通过映射文件和反射调用Action的execute方法,而这个request是作为方法调用的一个参数传递过去的。

一样的