这是我的 login.jsp page
<form name="login" action="ValidateServlet" method="post">
<input type="hidden" name="pagename" value="login"/>
<table>
<tr>
<td><b>USERNAME:</b><input type="text" name="txtUsername"/> </td>
</tr>
<tr>
<td><b>PASSWORD:</b><input type="password" name="txtPassword"/></td>
</tr>
<tr>
<td><input type="SUBMIT" value="SIGN IN"/></td>
</tr>
<tr>
<td><a href= "/PasswordServlet">Forgot Password</a></td>
</tr>
<tr>
<td><a href= "/SignUp"> Create New user </a></td>
</tr>
</table>
</form>`
这是我的 igepservlet :
protected void doPost(HttpServletRequest request, HttpServletResponse response throws
ServletException, IOException {
RequestDispatcher rd = request.getRequestDispatcher("/WEB-INF/WebPages/Signup.jsp");
rd.forward(request, response);
}
}
这是我的web.xml
<servlet>
<servlet-name>SignupServlet</servlet-name>
<servlet-class>com.affiliate.servlet.SignupServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>SignupServlet</servlet-name>
<url-pattern>/SignUp</url-pattern>
</servlet-mapping>
login.jsp 在Webcontent/WEB-INF/WebPages/Login.jsp
中和 Ingipservlet 在JavaResources/src/com.affiliate.servlet/SignupServlet
中但是我的登录并没有重定向到Ingupservlet。我对自己的HREF和形式行动感到怀疑。在这方面请帮助我。
更改
<a href= "/SignUp"> Create New user </a>
↑
to
<a href= "SignUp"> Create New user </a>
和锚固标签中没有post
方法。您需要更改SignupServlet
protected void doGet(HttpServletRequest request, HttpServletResponse response throws
ServletException, IOException
{
RequestDispatcher rd = request.getRequestDispatcher("Signup.jsp");
rd.forward(request, response);
}
如果您想要使用a
标签的post
请求,请从标签
replace
<a href= "/PasswordServlet">Forgot Password</a>
<a href= "/SignUp"> Create New user </a>
to
<a href= "PasswordServlet">Forgot Password</a>
<a href= "SignUp"> Create New user </a>
Remove "/" before Servlet URL Pattern
更改此代码
protected void doPost(HttpServletRequest request, HttpServletResponse response throws
ServletException, IOException {
RequestDispatcher rd = request.getRequestDispatcher("/WEB-INF/WebPages/Signup.jsp");
rd.forward(request, response);
}
to
protected void doPost(HttpServletRequest request, HttpServletResponse response throws
ServletException, IOException {
getServletContext().getRequestDispatcher("WEB-INF/WebPages/Signup.jsp").forward(request, response);
}
在您的登录中。
<td><a href= "SignUp"> Create New user </a></td>
和在您的doget方法中的注册servlet
RequestDispatcher rd = request.getRequestDispatcher("/WEB-INF/webpages/Signup.jsp");
rd.forward(request, response);
因为当您从链接或HREF调用servlet时,doget方法会运行。希望这有帮助