<servlet-mapping>
    <servlet-name>LoginServe</servlet-name>
    <url-pattern>/login</url-pattern>
  </servlet-mapping>在登陆页面中,表单的action='login',为什么在xml文件中<url-pattern>要写成/login而不是login呢?还有关于在servlet中页面转向的路径问题,总是搞不懂,例如:String nextURL = "WEB-INF/pages/shopping.jsp";
为什么要加"WEB-INF"呢?

解决方案 »

  1.   

    1./代表你webapp的根路径。比如你测试的时候是http://localhost:8080/{WebApp name}/login,这里的/代表了http://localhost:8080/{WebApp name}这串变量
    2.根据javaEE标准,web包的结构为
    WebApp根目录
    |__WEB-INF
    即WEB-INF的上面一层。而你的jsp放入了WEB-INF文件夹。所以Web容器在读取的时候,从根目录的结构开始读就变成了WEB-INF/pages/shopping.jsp。另外,放入WEB-INF文件夹有个好处就是外界无法直接访问WEB-INF中的jsp,而必须要你的代码内部跳转才可以。等于是加了一道防火墙
      

  2.   

    楼上已经解决了,这好像你在 windows操作系统中,找一个文件D:\Java\jdk1.6.0_17\README.html前面也要斜杠进行分开。