我的web.xml的配置
<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
version="3.1"
metadata-complete="true">
<display-name>Welcome to Tomcat</display-name>
<description>
Welcome to Tomcat
</description>
<servlet>
<servlet-name>helloworldservlet</servlet-name>
<servlet-class>HelloWorldServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>helloworldservlet</servlet-name>
<url-pattern>/H</url-pattern>
</web-app>
我的123.jsp的内容
<%@page contentType="text/html;charset=gb2312"%>
<html>
<body bgcolor=cyan><font size=1>
<form action="/H" >
<input type="submit">
</form>
</form>
</font>
</body>
</html>
我的helloWordServlet.java
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class HelloWorldServlet extends HttpServlet
{
private static final String CONTENT_TYPE="text/html;charset=GBK";
public void init() throws ServletException{
}
public void doGet(HttpServletRequest request,HttpServletResponse response)
throws ServletException,IOException
{
PrintWriter out=response.getWriter();
out.println("<html>");
out.println("<head><title>HelloWorldServlet</title></head>");
out.println("<body bgcolor=\"#ffffff\">");
out.println("Hello World");
out.println("</body>");
out.println("</html>");
out.close();
}
public void destroy()
{}
}
放置的位置图是
webapps
|||||--helloworld
|||||||||||--WEB-INF
|||||||||||||||||--classes
|||||||||||||||||||||||--HelloWorldServlet.class
|||||||||||||||||||||||--HelloWorldServlet.java
|||||||||||||||||--web.xml
下面分情况来讨论:
1. <form action="/H" > 且<url-pattern>/H</url-pattern>运行:能进入123.jsp 但 点击后地址栏:http://127.0.0.1:8080/H
HTTP Status 404 - /H
type Status report
message /H
description The requested resource is not available.
Apache Tomcat/8.0.0-RC1
2.<form action="/H" > 且<url-pattern>H</url-pattern> 运行:不能进入123.jsp也就是整个工程都进不去,地址栏http://127.0.0.1:8080//ForServlet/123.jsp
HTTP Status 404 -
type Status report
message
description The requested resource is not available.
Apache Tomcat/8.0.0-RC1
3.<form action="H" > 且<url-pattern>/H</url-pattern>运行成功:地址栏从:http://127.0.0.1:8080//ForServlet/123.jsp到http://127.0.0.1:8080//ForServlet/HHello World
4. <form action="H" > 且<url-pattern>H</url-pattern> 运行:不能进入123.jsp也就是整个工程都进不去,地址栏http://127.0.0.1:8080//ForServlet/123.jsp
HTTP Status 404 -
type Status report
message
description The requested resource is not available.
Apache Tomcat/8.0.0-RC1
5.<form action="/ForServlet/H" > 且<url-pattern>/H</url-pattern>运行成功:地址栏从:http://127.0.0.1:8080//ForServlet/123.jsp到http://127.0.0.1:8080//ForServlet/HHello World
6.<form action="/ForServlet/H" > 且<url-pattern>H</url-pattern>运行:不能进入123.jsp也就是整个工程都进不去,地址栏http://127.0.0.1:8080//ForServlet/123.jsp
HTTP Status 404 -
type Status report
message
description The requested resource is not available.
Apache Tomcat/8.0.0-RC1
可见只有<url-pattern>/H</url-pattern>的情况能保证整个工程至少能进入(123.jsp);在此基础上<form action="H" >或<form action="/ForServlet/H" >才能使工程完整运行HelloWorld
如果整个工程至少能进入(123.jsp)但是jsp里是<form action="/H" >则会使地址栏跳转到http://127.0.0.1:8080/H出现404-/H
可见只有<url-pattern>/H</url-pattern>的情况能保证整个工程至少能进入(123.jsp);
在此基础上<form action="H" >或<form action="/ForServlet/H" >才能使工程完整运行HelloWorld
如果整个工程至少能进入(123.jsp)但是jsp里是<form action="/H" >则会使地址栏跳转到http://127.0.0.1:8080/H出现404-/H