Servlet中连接tomcat出现404

  Servlet中连接tomcat出现404

在创建完成后会出现404错误,如下图所示:

   分析其原因:

    1.在配置web.xml的时候,由于是在Eclipse中是自己创建的,所以错放路径,也会导致找不到tomcat服务器,出现404.需要按照下列方式存放表格

    2.有时候也会出现tomcat服务器startup失败,这可能是由于在书写web.xml的时候,映像名称(servlet-name)没写对,导致服务器开不起来,或者url-pattern,servlet-class没有写对路径位置导致,所以下面是写这几个元素需要注意的点:

  <servlet>
    <servlet-name>Pac_info</servlet-name><!-- 要执行的程序的名字 -->
    <servlet-class>test_my_1.Pac_info</servlet-class><!-- 如果在同一个目录下面,需要协商包名+名字 -->
  </servlet>
  <servlet-mapping>
    <servlet-name>Pac_info</servlet-name><!-- 映像名字,这个也是不能错的,必须是执行的程序名字 -->
    <url-pattern>/Pac_info</url-pattern><!-- 映像路径,后面和前面都不限制范围 -->
  </servlet-mapping>

    3.再讲一下url-pattern的匹配规则:

  当servlet容器接收到浏览器发起的一个url请求后,容器会用url减去当前应用的上下文路径,以剩余的字符串作为servlet映射,假如url是http://localhost:8080/appDemo/index.html,其应用上下文是appDemo,容器会将http://localhost:8080/appDemo去掉,用剩下的/index.html部分拿来做servlet的映射匹配,url-pattern映射匹配过程同样也是有优先顺序的

    匹配方式:

  1.精确匹配:<url-pattern>中配置的项必须与url完全精确匹配

<servlet-mapping>
    <servlet-name>MyServlet</servlet-name>
    <url-pattern>/user/users.html</url-pattern>
    <url-pattern>/index.html</url-pattern>
    <url-pattern>/user/addUser.action</url-pattern>
</servlet-mapping>

当在浏览器中输入如下几种url时,都会被匹配到该servlet
  http://localhost:8080/appDemo/user/users.html
  http://localhost:8080/appDemo/index.html
  http://localhost:8080/appDemo/user/addUser.action

  2.路径匹配:以“/”字符开头,并以“/*”结尾的字符串用于路径匹配

<servlet-mapping>
    <servlet-name>MyServlet</servlet-name>
    <url-pattern>/user/*</url-pattern>
</servlet-mapping>

路径以/user/开始,后面的路径可以任意。比如下面的url都会被匹配。
  http://localhost:8080/appDemo/user/users.html
  http://localhost:8080/appDemo/user/addUser.action
  http://localhost:8080/appDemo/user/updateUser.actionl

  3.扩展名匹配:以“/”字符开头,并以“/*”结尾的字符串用于路径匹配

<servlet-mapping>
    <servlet-name>MyServlet</servlet-name>
    <url-pattern>*.jsp</url-pattern>
    <url-pattern>*.action</url-pattern>
</servlet-mapping>

则任何扩展名为jsp或action的url请求都会匹配,比如下面的url都会被匹配
  http://localhost:8080/appDemo/user/users.jsp
  http://localhost:8080/appDemo/toHome.action

  

  4.缺省匹配

<servlet-mapping>
    <servlet-name>MyServlet</servlet-name>
    <url-pattern>/</url-pattern>
</servlet-mapping>
原文地址:https://www.cnblogs.com/instead-everyone/p/13742981.html