请求servlet的url
<a href="administrator/AdministratorServlet?pageNow=1&flag=fenye" >管理模块</a>我的servlet代码:
else if(flag.equals("fenye")){ System.out.println("admin_list before?");
request.getRequestDispatcher("admin_list.jsp").forward(request, response); 

System.out.println("admin_list.jsp after?"); }运行后进入了这个分支
tomcat里面是:admin_list before?
admin_list.jsp after?说明进入了,并且没有报错的,但是浏览器却出现
HTTP Status 404 - /KSXT_v2/administrator/login.jsp
错误。 但是我在servlet里面根本就没有login.jsp的转发。求解

解决方案 »

  1.   

     request.getRequestDispatcher("admin_list.jsp").
    这里加个反斜杠么?加个反斜杠表示在项目更目录下。404是路径错误
    quest.getRequestDispatcher("/具体包/admin_list.jsp").
    HTTP Status 404 - /KSXT_v2/administrator/login.jsp
    是在寻找KSXT_v2/administrator/login.jsp
    这个可能是其他错误吧 比如Tomcat中有其他工程,引起的,当然Tonmcat中允许有多个工程,但是有时候会引发错误这个也是有可能!个人意见 呵呵
      

  2.   

    不用加反斜杠的KSXT_v2/administrator/admin_list.jsp就可以访问到了,关键是那个login.jsp怎么来的,很奇怪,明明是/admin_list.jsp的啊
      

  3.   

    为了防止是其他的web干扰的,我把tomcat的webapps里面的其他项目都删了
      

  4.   


    代码拷我上次写的,而且上个项目是没问题的。就是这次换了DAO的实现和使用JNDI,但是我的另外一个就是这个项目的模块的检查用户登录是没错的,登陆拦截的一般是加了spring的权限管理。而且页面没错啊,确实有那个页面的,我用debug调试,出现了这么一个错误
    Source not found for ApplicationFilterChain.internalDoFilter(ServletRequest, ServletResponse) line: 293
    如图
    之后的都报错了
    Source not found for JIoEndpoint$Worker.run() line: 447到这里调不想去了,是不是拦截器的问题呢,第一次用myeclipse的debug不是很懂
      

  5.   

    我换成 response.sendRedirect("admin_list.jsp");之后可以转发到admin_list.jsp页面,只是之前的arraylist传不过去了。诶
    怎么解决呢,为什么使用
    request.getRequestDispatcher
    会出现这个问题,还是我之前页面的什么地方写错了。
    但是后台就是不到错啊
      

  6.   

    好吧,找到什么问题了,jsp页面没处理好,有个判断之后转发的尴尬了,浪费我2个晚上时间,还好学会了一点debug的使用,不然就全亏了最后还是谢谢热心的朋友们