web.xml文件:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" id="WebApp_ID" version="4.0">
<servlet>
<servlet-name>adding</servlet-name>
<servlet-class>com.nokia.web.servlet.practice.AddServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>adding</servlet-name>
<url-pattern>/add</url-pattern>
</servlet-mapping>
</web-app>
index.html文件:
<!DOCTYPE html>
<html>
<body>
Hello World
<form action="add" method="post">
Enter 1st number : <input type="text" name="num1">
Enter 2nd number : <input type="text" name="num2">
<input type="submit">
</form>
</body>
</html>
AddServlet.java文件:
package com.nokia.web.servlet.practice;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.http.*;
public class AddServlet extends HttpServlet{
/**
*
*/
private static final long serialVersionUID = 1L;
public void doPost(HttpServletRequest req, HttpServletResponse res) throws IOException {
int i = Integer.parseInt(req.getParameter("num1"));
int j = Integer.parseInt(req.getParameter("num2"));
PrintWriter out = res.getWriter();
out.println(" post sum = "+ (i+j));
}
}
而错误是
HTTP Status 405 – Method Not Allowed
Type Status Report
Message HTTP method GET is not supported by this URL
Description The method received in the request-line is known by the origin server but not supported by the target resource.
请提出一些如何使其发挥作用的建议。 .................................................. .................................................. .................................................. ................................
如果要提交URL localhost:8085 / WebProjectYutb / add?num1 = 11&num2 = 11提交后意味着它正在使用GET方法,因为POST方法不会在URL上显示参数。由于您没有实现GET方法,因此您正在接收HTTP状态405 - 方法不允许。
您可以通过覆盖doGet方法并将请求转发到doPost来解决问题,如下所示:
package com.nokia.web.servlet.practice;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class AddServlet extends HttpServlet {
private static final long serialVersionUID = 7041461467204399253L;
public AddServlet() {
}
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
doPost(req, resp);
}
@Override
public void doPost(HttpServletRequest req, HttpServletResponse res) throws IOException {
int i = Integer.parseInt(req.getParameter("num1"));
int j = Integer.parseInt(req.getParameter("num2"));
PrintWriter out = res.getWriter();
out.println(" post sum = " + (i + j));
}
}