gpt4 book ai didi

java - Http doPost() 不起作用

转载 作者:太空宇宙 更新时间:2023-11-04 06:21:10 26 4
gpt4 key购买 nike

我正在尝试使用 http doPost() 构建一个简单的登录 servlet。

Login.html 是:

<form action="P3" method="post">
Username :-
<input type="text" name="usnm"><p>
Password :-
<input type="password" name="pswd"><p>
<input type="submit" value="Login">
</form>

我的servlet代码是:Server.java:

public void doPost(HttpServletRequest req,HttpServletResponse res)throws IOException,ServletException
{
try
{
res.setContentType("text/html");

String un=req.getParameter("usnm");
String pw=req.getParameter("pswd");

if(un.equals("abc") && pw.equals("123"))
res.sendRedirect("welcome.html");
else
res.sendRedirect("nologin.html");
}
catch(Exception e)
{
System.out.println(e.getMessage());
}
}

如果登录成功,则显示welcome.html,否则显示nologin.html。

我将其添加到我的 web.xml 中:

<servlet>
<servlet-name>z</servlet-name>
<servlet-class>Server</servlet-class>
</servlet>

<servlet-mapping>
<servlet-name>z</servlet-name>
<url-pattern>/P3</url-pattern>
</servlet-mapping>

当我尝试在单击“登录”后执行 Login.html 时,出现错误:在/C:/Users/OWNER/Desktop/apache-tomcat-7.0.37/webapps/vaishnavee/P3 处找不到该文件。

请提出一些解决方案以使其发挥作用。

最佳答案

您可能直接从硬盘而不是 tomcat 服务器显示表单。您可能会在浏览器的地址字段中看到以下内容:file://C:/Users/OWNER/Desktop/apache-tomcat-7.0.37/webapps/vaishnavee/Login.html,而不是 http://..../Login.html

表单的操作与表单本身的来源相关。因此,如果表单本身直接来自驱动器 C: 而不是 tomcat,那么浏览器将根据您在地址字段中看到的相同 URL 计算操作的完整 URL,但将 Login.html 替换为 P3。当然,您没有该名称的文件,因此无法将表单传递给它。

您应该:

  1. 显示来自网络服务器的表单(可以是http://localhost/Login.html,但您必须使用为您的服务器配置的任何 URL)
  2. 将表单操作更改为包含 P3 的完整服务器地址。

第一种方法是首选方法,因为在部署应用程序或分发应用程序时,无法直接从 C: 驱动器提供表单。

关于java - Http doPost() 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27403127/

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