【发布时间】:2014-02-03 05:47:37
【问题描述】:
我有一个简单的程序:
登录
流程
结果
作为 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/”。
问题是,在我登录后,url 应该看起来像这样http://localhost:8080/PDPJ_-_Servlet_-_V4/process/?username=admin&password=admin,它适用于手动输入,但是如果我只是单击提交按钮,url 就会变成 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>");
有人能指出我缺少什么吗?
EDIT另外,.xml 是否应该包含 /PDPJ_-Servlet-_V4/ 或者我可以告诉它我想要一个“相对路径”或类似的东西吗?
【问题讨论】: