我的 Apache tomcat 安装目录是 C:\apache-tomcat-7.0.42
在 webapps 文件夹中,我创建了 index.html 和 WEB-INF 文件夹。
索引.html
<html>
<form action="MyServlet" method="post">
<pre>
Enter A: <input type="text" name="fieldA">
Enter B: <input type="text" name="fieldA">
Add <input type="radio" name="operation" value="add">
Sub <input type="radio" name="operation" value="sub">
Add <input type="radio" name="operation" value="mul">
Div <input type="radio" name="operation" value="div">
<input type="submit" value="submit">
Result: <input type="text" name="result">
<pre>
</form>
</body>
</html>
在 WEB-INF 文件夹中,我创建了 web.xml 和名为“classes”的文件夹
web.xml
<web-app>
<servlet>
<servlet-name>MyServlet</servlet-name>
<servlet-class>MyServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>MyServlet</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
</web-app>
在 webapps/pravesh/WEB-INF/classes 文件夹中,我创建了 MyServlet.java
MyServlet.java
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.io.IOException;
import javax.servlet.ServletException;
public class MyServlet extends HttpServlet
{
public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException
{
response.setContentType("text/html");
PrintWriter out=response.getWriter();
out.println("<html><body>");
out.println("doGet");
out.println("</body></html>");
out.close();
}
}
当我输入 localhost:8080 时,我启动了正在运行的 tomcat 服务器。
问题:- 1)当我输入 localhost:8080/pravesh/index.html 时,它没有显示 html 页面。相反,它会自动提交表单并运行 MyServlet 并在页面上打印
doGet
虽然如果我删除整个 WEB-INF 文件夹,会显示 html 页面。
2)如果我将 doPost() 放在 MyServlet.java 中并将 index.html 表单的方法更改为发布,而不是 doGet(),它会显示“此 URL 不支持 HTTP 方法 GET”。