将Web-Inf中的JSP重定向到Javaresources中的Servlet通过HREF IN



这是我的 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方法会运行。希望这有帮助

最新更新