我正在尝试实现一个简单的登录 servlet,但它无法正常工作。
我想知道的是如何使用 HTTP POST 传递参数。它已经适用于 HTTP GET,但用户名和密码可以从 URL 中看到。最好将它们隐藏在 POST 中。
<form method="post" action="home" >
<input name="username" class="form-login" title="Username" value="" size="30" maxlength="2048" />
<input name="password" type="password" class="form-login" title="Password" value="" size="30" maxlength="2048" />
<input type="submit" value="Connect">
</form>
web.xml
<servlet>
<servlet-name>home</servlet-name>
<servlet-class>controller.HomeController</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>home</servlet-name>
<url-pattern>/home</url-pattern>
</servlet-mapping>
小服务程序:
public class HomeController extends HttpServlet {
private HttpSession session;
private UserBean userBean;
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
UserBean user = new UserBean();
String userName = request.getParameter("username");
String password = request.getParameter("password");
user.setUsername(userName);
user.setPassword(password);
user = UserDAO.login(user);
dispatch(request, response, ApplicationRessource.getInstance().getHomePage());
}
protected void dispatch(HttpServletRequest request,
HttpServletResponse response, String page)
throws javax.servlet.ServletException, java.io.IOException {
RequestDispatcher dispatcher = getServletContext()
.getRequestDispatcher(page);
dispatcher.forward(request, response);
}
}
问题是 userName
和 password
字符串总是空的,这意味着参数永远不会从 POST 中获取。我做错了什么?
最佳答案
它应该可以工作,你可以通过更改表单方法来检查并尝试,你应该在 url 中看到参数。
关于Java EE : Getting parameters from POST for a login form,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11036651/