gpt4 book ai didi

java - 我不明白 web.xml 在使用 servlet 时如何工作/应该工作

转载 作者:行者123 更新时间:2023-12-02 06:19:38 24 4
gpt4 key购买 nike

我有一个简单的程序:

  • 登录

  • 流程

  • 结果

作为 servlet 和过滤器:

  • AuthentifFilter

这是我的 .xml:

<?xml version="1.0" encoding="UTF-8"?>

<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
version="2.4">

<display-name>PDPJ Servlet Application</display-name>

<description>
Not in english so skipping this
</description>

<listener>
<listener-class>listeners.InitServlet</listener-class>
</listener>

<servlet>
<servlet-name>LoginServlet</servlet-name>
<servlet-class>servlet.LoginServlet</servlet-class>
</servlet>

<servlet-mapping>
<servlet-name>LoginServlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>

<servlet>
<servlet-name>ProcessingServlet</servlet-name>
<servlet-class>servlet.ProcessingServlet</servlet-class>
</servlet>

<servlet-mapping>
<servlet-name>ProcessingServlet</servlet-name>
<url-pattern>/PDPJ_-_Servlet_-_V4/process/</url-pattern>
</servlet-mapping>

<servlet>
<servlet-name>ResultsServlet</servlet-name>
<servlet-class>servlet.ResultsServlet</servlet-class>
</servlet>

<servlet-mapping>
<servlet-name>ResultsServlet</servlet-name>
<url-pattern>/process/results</url-pattern>
</servlet-mapping>

<session-config>
<session-timeout>1200</session-timeout>
</session-config>

<filter>
<filter-name>AuthFilter</filter-name> <!-- mandatory -->
<filter-class>filter.AuthentificationFilter</filter-class> <!-- mandatory -->

</filter>

<filter-mapping>
<filter-name>AuthFilter</filter-name>
<url-pattern>/PDPJ_-_Servlet_-_V4/process/*</url-pattern>
<dispatcher>REQUEST</dispatcher>

</filter-mapping>

</web-app>

现在,处理 Servlet 的 URL 为“/PDPJ_-Servlet-_V4/process/”,以前只是“/process/”。

事实是,登录后,网址应如下所示 http://localhost:8080/PDPJ_-_Servlet_-_V4/process/?username=admin&password=admin 并且适用于手动输入,但是如果我只是单击提交按钮,网址就会变成 http://localhost:8080/process/?username=admin&password=admin 我只是不明白。

表格如下:

PrintWriter pw = resp.getWriter();
pw.println("<html><head></head><body>");

pw.println("<form action=\"/process/\"> " +
"Username:<input type=\"text\" name=\"username\"/><br/> " +
"Password:<input type=\"password\" name=\"password\"/><br/> " +
"<input type=\"submit\" value=\"login\"> " +
"</form> ");
pw.println("</body></html>");

有人可以指出我缺少什么吗?

编辑另外,.xml 是否应该包含/PDPJ_-Servlet-_V4/或者我可以告诉它我想要一个“相对路径”或类似的东西?

最佳答案

将其设置为表单中的该 URL(见下文)。前导斜杠使其成为绝对。

<小时/>

用 Java 生成 HTML 几乎永远都不正确;使用 JSP 或类似的 View 层。

关于java - 我不明白 web.xml 在使用 servlet 时如何工作/应该工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21125892/

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