也许这是一个简单的问题,但是我对JAVA还是很陌生,我不明白为什么我的简单登录表单不起作用。这是我的项目结构的屏幕截图:
在我的index.jsp中,我具有以下形式:
<form action="/LoginServlet" method="post" enctype="multipart/form-data" class="form-horizontal">
<div class="form-group">
<label>E-Mail Adresse</label>
<input class="au-input au-input--full" type="email" name="un" placeholder="E-Mail">
</div>
<div class="form-group">
<label>Passwort</label>
<input class="au-input au-input--full" type="password" name="pw" placeholder="Passwort">
</div>
<div class="login-checkbox">
<label>
<input type="checkbox" name="remember">Merken
</label>
<label>
<a href="#">Passwort vergessen?</a>
</label>
</div>
<button class="au-btn au-btn--block au-btn--green m-b-20" type="submit">Anmelden</button>
</form>
在src文件夹中的我的LoginServlet.java看起来像这样:
package controller;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
/** * Servlet implementation class LoginServlet */
@WebServlet("/LoginServlet")
public class LoginServlet extends HttpServlet {
/**
*
*/
private static final long serialVersionUID = 1L;
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, java.io.IOException {
try {
UserBean user = new UserBean();
user.setUserName(request.getParameter("un"));
user.setPassword(request.getParameter("pw"));
user = UserDAO.login(user);
if (user.isValid()) {
HttpSession session = request.getSession(true);
session.setAttribute("currentSessionUser",user);
response.sendRedirect("/index.jsp"); //logged-in page
} else
response.sendRedirect("/index.jsp"); //error page
}
catch (Throwable theException) {
System.out.println(theException);
}
}
}
如您所见,我有一个带有action="/LoginServlet"
的表格。在我的LoginServlet.java中,我正在使用@WebServlet("/LoginServlet")
,但是一旦提交表单,就会收到HTTP Status 404 – Not Found消息。
我真的不明白为什么吗?有人知道我在做什么错吗?我想念什么?任何帮助将不胜感激。
答案 0 :(得分:1)
<form action="LoginServlet" method="post" enctype="multipart/form-data" class="form-horizontal">
只需更新您的action =“ LoginServlet”删除/,如果不起作用,请尝试从窗体中删除enctype =“ multipart / form-data”
请确保WebContent文件夹中的index.jsp不在Web-INF中
答案 1 :(得分:0)
<form action="/LoginServlet" method="post" enctype="multipart/form-data" class="form-horizontal">
您的表单使用method =“ post”,因此您需要在LoginServlet上覆盖doPost方法