我在Java Web项目中处于最基本的位置,并停留在登录页面上。我正在使用.jsp进行登录(对于小项目来说,这是不好的做法吗?),并且在输入用户名后,该页面应该发送到创建基本游戏的servlet,然后发送到另一个将显示的.jsp它。
但是,我试图使用RequestDispatcher从login.jsp重定向到servlet,然后从servlet重定向到显示页面(另一个.jsp),但我似乎找不到如何发送POST数据的方法。使用RequestDispatcher,并且如果我无法发送POST数据,我不知道该servlet应该如何响应(servlet仅执行GET和POST,对吧?)。
这是我的login.jsp代码:
<%@page contentType="text/html" pageEncoding="UTF-8" %>
<%@page import="login.User" %>
<%
String username = request.getParameter("username");
if (username != null)
{
session.setAttribute("username", username);
RequestDispatcher dispatcher = getServletContext().getRequestDispatcher("/WEB-INF/classes/create");
dispatcher.forward(request,response);
}
%>
<!DOCTYPE html>
<html lang="en">
<head>
<title>
Login
</title>
</head>
<body>
<h1>Home</h1>
<h3>Please enter a username to log in:</h3>
<form id="login" method="POST" action="create">
Username: <input type="text" id="username" name="username" />
<br />
<br />
<input type="submit" id="submit" name="submit" value="submit" />
<input type="button" id="clear" name="clear" value="clear" />
</form>
</body>
</html>
我的servlet有很多代码,对于我的示例来说可能是不必要的,但是如上所述,我正在使用POST方法。 servlet本身似乎也可以正常工作。
是否有一种方法(或更好的方法)可以完成我在这里试图做的事情?还是应该通过RequestDispatcher发送GET参数?还是应该使用发送到servlet的.htm登录页面?我正在尝试使用MVC原理构建项目。
无论如何,这些值始终保持在渗透状态,因此无需将调用发送到另一页,只需在重定向后读取另一页中的渗透值即可。
所以在其他JSP中,从会话中读取值。确保在登录jsp中填写会话中的所有值