gpt4 book ai didi

java - 我不明白为什么不执行 post 方法的原因

转载 作者:行者123 更新时间:2023-11-28 22:29:54 26 4
gpt4 key购买 nike

public class ExtractProduct extends HttpServlet   
{
private static final long serialVersionUID = 1L;


public ExtractProduct() {
super();
}


protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println("bye");
}


protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println("hiiiii");
}

}

JSP 页面:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<form name="displayProduct" method='post' action='ExtractProduct.do' >
<input type="submit" value="submit"></input>
</form>
</body>
</html>

web.xml 文件:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app id="WebApp_ID">
<display-name>adsfa</display-name>

<servlet>
<servlet-name>ExtractProduct</servlet-name>
<display-name>ExtractProduct</display-name>
<description></description>
<servlet-class>
controller.ExtractProduct</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>ExtractProduct</servlet-name>
<url-pattern>/ExtractProduct.do</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>

当我单击提交按钮时,url 模式已更改并将其重定向到 Extractproduct.do 但“hii”未打印到控制台。任何人都可以帮助我。我不明白没有执行 post 方法的原因。

然后我尝试创建新的 servlet,当我尝试运行 servlet 时,它向我显示错误:HTTP 状态 500内部服务器错误。尽管我所有的旧 servelet 程序都能正常运行。

最佳答案

我不确定,但我相信你必须设置它们@Override

@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println("bye");
}

@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println("hiiiii");
}

即使您不这样做,也会使用 HttpServlet 中的默认方法。

关于java - 我不明白为什么不执行 post 方法的原因,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24878911/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com