在struts中关于HttpServletRequestWrapper的问题。。。

问题描述

我在代码中继承了类HttpServletRequestWrapper,代码如下:public class MyRequestWrapper extends HttpServletRequestWrapper {HttpSession iSession = null;public MyRequestWrapper(HttpServletRequest request) {super(request);} public HttpSession getSession() {if (null != iSession) {return iSession;}return super.getSession();}public HttpSession getSession(boolean create) {if (null != iSession) {return iSession;}return super.getSession(create);}public void setSession(HttpSession iSession) {this.iSession = iSession;}}而我在struts Action接受到页面提交过来的信息时,初始化了该类(MyRequestWrapper),Action代码如下:public ActionForward login(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response) { ......... MyRequestWrapper wrapperRequest = (MyRequestWrapper) request; .........}可是出错了:java.lang.ClassCastException: org.apache.catalina.connector.RequestFacadeat com.redMud.web.action.LoginAction.login(LoginAction.java:68)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)at java.lang.reflect.Method.invoke(Method.java:585)at org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:274)at org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:194)at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:419)at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:224)at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)at com.shareinfo.common.util.EncodingFilter.doFilter(EncodingFilter.java:37)at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:833)at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:639)at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1285)at java.lang.Thread.run(Thread.java:595)这个问题有哪位朋友遇到过的吗?帮忙解答一下,谢。。。PS:能说说HttpServletRequestWrapper 具体的用法吗?

解决方案

应该这样写:public ActionForward login(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { ......... MyRequestWrapper wrapperRequest = new MyRequestWrapper(request); ......... }

时间: 2024-09-20 23:48:51

在struts中关于HttpServletRequestWrapper的问题。。。的相关文章

简化繁琐的赋值——反射在Jdbc和Struts中的应用

缘起在Jdbc应用中,我们经常需要有这么样的一个Javabean:当我们从数据库里取值时,我们希望把对应的值赋给Javabean,而后再操作Javabean进行各种业务处理:而我们保存数据的时候,也希望把经过业务处理后的值赋给Javabean,再由该Javabean与Jdbc交互,将数据保存在数据库里. 而在Struts应用中,我们经常要跟ActionForm或DynaActionForm打交道,例如从业面取得用户输入的数据,在Struts应用中,我们实际上是从ActionForm中取得数据:而

Struts中的Action类的工作机制

Struts中的Action类的工作机制  所有的Action类都是org.apache.struts.action.Action的子类.Action子类应该覆写父类的execute()方法.当ActionForm Bean被创建,并且表单验证顺利通过后,Struts框架就会调用Action类的execute()方法.execute()方法的定义如下:    public ActionForward execute(ActionMapping mapping                   

在struts中使用国际化(i18n)

在struts中使用国际化(i18n)    i18n可以满足对系统的国际化,它的原理就是将页面上的所有标志都放到一个消息资源文件中,不同的语言要提供不同的消息资源文件,当用户登录系统是,系统就是根据你登录的语言,选择不同的消息资源文件显示出来,这样你就可以看到不同的效果了.    一.配置文件的设置    其实i18n的使用还是比较简单的,首先你要在struts-config.xml配置文件中配置消息资源文件的路径,如下所示:----------------------------------

Struts中关于用户权限限定的建议

关于web系统的权限限定问题,可能有很多的办法,我在这里说一下自己的一些小技巧,起到抛砖引玉的作用,忘各位指正: 系统中一个角色包含多个用户,角色和用户之间最好采用一对多,以免发生混乱: 自系统初起的时候,系统只有一个超级用户(例如root),有两个默认角色,即游客角色和注册用户角色: 超级用户可以在后续管理中添加角色,默认角色不能删除,其他角色的删除中如果这个角色下有用户,可以采取不允许删除或删除后这些用户的角色自动转为注册用户角色: 每个角色用户访问系统某些功能模块的权利,某个角色是否可以访

在Struts中使用Validator验证框架详解

Validatro框架以成为Jakarta的公共项目的一部分,可以从http://jakarta.apache.org/commons/下载单独的Validator框架,在Struts中已经呆了这个框架. Validator主要依赖两个jar包 Jakarta-oro.jar:-提供一组处理文本的类,具有文本替换.过滤.和分割功能. Commons-validator.jar:提供了一个简单.可扩展的验证框架,包含了通用的验证方法和验证规则. 在用Struts中用这个框架,需加入这两个包,用起来

效果-struts中如何将迭代list的数据实现每行显示固定数目的数据?

问题描述 struts中如何将迭代list的数据实现每行显示固定数目的数据? 1C 1. 求问,struts中如何将迭代list的数据实现每行显示固定数目的数据?我是根据迭代的下标来做的,没有实现效果.(每行显示3条数据)代码如下:

Struts中JSP到Action过程中数组的投射

Jsp <div>     <input type="hidden" name="stulst.name" value="xy"/>     <input type="hidden" name="stulst.name" value="xy1"/>     <input type="hidden" name="stu

path-jsp中action 和Struts 中的action虚拟路径问题

问题描述 jsp中action 和Struts 中的action虚拟路径问题 <html:form action=""/clsCompCaseDealAction"" method=""post"" enctype=""multipart/form-data""> 和struts中的 <action attribute=""clsCompCaseDe

web中的500错误-在struts中实现文件上传,结果老出现500错误

问题描述 在struts中实现文件上传,结果老出现500错误 type Exception report message description The server encountered an internal error () that prevented it from fulfilling this request. exception 我struts.xml没有配错啊 解决方案 是不是后面的没写啊