小弟不解,我在netbeans下新建一个sample web app projet的时候没看到示例中表示链接有时候是 <a href "XXX">,有时又是<a href "XXX.jsp">,当我把jsp后缀去掉以后,就会出错。不知道这里面到底是什麽道理,什麽时候可以不要后缀,什麽时候必须要后缀呢?还有我在写servlet的时候,希望某一个查询的servlet在用户点击该页面链接的时候就运行,在把查询的结果返回到同一个页面显示出来(假设这个页面时XXX.jsp),我把servlet的urlPatterns写成"/XXX"却不行,改成"/XXX.jsp"就可以了想问问大家,这是为什麽?小弟刚刚入门,在网上找了半天也没有找到答案,希望知道原因的朋友能指点一下,在这里先谢过了

解决方案 »

  1.   

    先弄懂 Servlet的配置
    web.xml
    <webapp>
              <!--servlet是指编写的Servlet的路径,以及定义别名-->
              <servlet>
                   <servlet-name>test</servlet-name>
                   <servlet-class>TestServlet</servlet-class>
             </servlet>
             <!--servlet-mapping是指根据别名,定义访问方式-->
             <servlet-mapping>
                  <servlet-name>test</servlet-name>
                  <url-pattern>/servlet/servlet</url-pattern>
            </servlet-mapping>
    </webapp>如果配置了,你就页面可以直接跳转指向test
      

  2.   

    很简单
    把你的XXX或者XXX.jsp放到浏览器中,补充为全路径能够访问才是正确的。
    比如是LoginServlet和login.jsp
    那么浏览器中输入
    http://localhost:8080/yourproject/LoginServlet
    或者http://localhost:8080/yourproject/login.jsp才能正常访问
    如果输入http://localhost:8080/yourproject/LoginServlet.jsp
    或者http://localhost:8080/yourproject/login则会提示找不到页面404
      

  3.   

    大家没有懂我的意思,怪我没有表述清楚,但是还是谢谢ls两位的耐心解答,问题我已经解决了,主要是因为我没有理解 urlPatterns 的含义,如果我要通过超级链接直接触发servlet,就直接用servlet的urlPatterns作为链接地址,这种情况下不需要XXX.jsp的后缀,直接<a href "XXX">就好,如果链接指向的是一个jsp文件,则需要包含后缀名的完整文件名。ps.似乎在javaEE 6里已经没有必要再单独配置servlet的xml,直接在servlet的定义里@WebServlet就好了