小弟最近异常恶心,以至于茶饭不思,三日不知肉滋味。有一个问题希望大家指点指点。在myeclipse中,我新建了一个web项目,上下文(工程名)为messageboard,在这工程下新建了一jsp文件logon.jsp,这个文件很简单,就是通常简单的登录界面,全部是html代码。在没有写servlet以前当然可以访问,访问路径也正确http://localhost:8088/messageboard/logon.jsp,但自从写了用于过滤用户账号和密码的servlet后,这个路径http://localhost:8088/messageboard/logon.jsp就不能访问logon.jsp页面了,真是怪了。难道纯html页面会受一个servlet的影响吗?这个servlet在src/ch/下面,ch为我定义的包名。后来我终于能够访问了,访问路径为http://localhost:8088/messageboard/WebRoot/logon.jsp,为什么要多一个WebRoot呢?访问的路径我也重来没有修改过,可为什么呢?

解决方案 »

  1.   

    你的servlet 设置成了过滤器 ,也就是说你想访问这个LOGIN.JSP 文件必须先访问 这个过滤器然后才会到 JSP ,我想问题应该出在 这个servlet 过滤器到.JSP 文件的跳转上。带值调整和不带值调整的 相对路径 和根路径都是不一样的 
      

  2.   

    2楼,我没有写错。1楼,我对你的话很有感觉哦,我现在就是有个问题不能解决,就是在logon.jsp中有个表单,action="ch/Register",这个Register就是你说的那个过滤器,过滤器中有一句是:若失败,则dispatcher=request.getRequestDispatcher("logon.jsp")。在logon.jsp中我故意登录失败,并提交,但报出404错误,说http://localhost:8088/messageboard/ch/Register不可利用,这又是什么原因呢?
      

  3.   

    2楼,为什么我俩的总技术分排名是一样的呢?我如果直接输入http://localhost:8088/messageboard/ch/Register的话,结果仍是404错误,说这个文件不可用,又为什么呢?
      

  4.   

    lz看一下web.xml里该servlet配置的urlparrten
      

  5.   

    恩 看看web.xml里该servlet配置的urlparrten
      

  6.   

    楼主能确定web.xml配置正确了吗?
      

  7.   

    lz看一下你的webproject里有没有包含WebRoot这个目录。用myeclipse新建webproject的时候默认web root folder选项值为:WebRoot。看看logon.jsp是否在WebRoot目录下。
      

  8.   

    我的工程名messageboard下面的文件层次在使用servlet的前后是没有变的,也不可能变,我也没有变过它。问题相当的怪
      

  9.   

    问题解决了,不出所料,是我的web.xml配置有问题。在我的工程里,有AuthorityFilter.java过滤器,在mapping的时候是不加包名ch的,而我加了这个包名。