【发布时间】:2014-06-27 03:43:29
【问题描述】:
我有 login.jsp 页面,我尝试将文本框中的用户名和密码通过会话传递给 servlet。 login.jsp 的代码如下:
<form name="frm" action="DisplayData" method="post" onsubmit="return Validate()" >
<table align="center">
<tr>
<td align="left">UserName:</td>
<td><input type="text" name="username" value=""></input></td>
</tr>
<tr>
<td align="left">Password:</td>
<td><input type="password" name="password" value=""></input> </td>
</tr>
</table>
<%
String name = request.getParameter("username");
String password = request.getParameter("password");
session.setAttribute("name",name);
session.setAttribute("pass", password);
%>
<table align="center">
<tr>
<input type="hidden" name="hiddenname" value="login">
<td><input align="middle" type="submit" name="Sign_in" value="Sign_in" onclick="return Validate()"></input></td>
<td><input type="button" value="Signup" onClick="javascript:window.location='Signup.jsp';"></input></td>
</tr>
</table>
</form>
我想将 login.jsp 中设置的用户名和密码检索到 servlet。我尝试使用以下代码,但它给了我空值。我在servlet中使用的java代码如下:
HttpSession session = request.getSession(true);
String name=(String)session.getAttribute("name");
System.out.println("Welcome"+name);
谁能告诉我哪里出错了。我需要将用户名存储在会话中,以便我可以将其用于该 servlet 中的多个请求
【问题讨论】:
-
我不建议您在会话中存储用户名和密码。
-
@JqueryLearner 那么 request.getParameter() 还有哪些其他方法?
-
您是否从 Servlet
HttpServletRequest对象创建了会话?例如。HttpSession session = req.getSession(false);如果req是HttpServletRequest对象。或者你甚至在设置属性之前创建了一个会话? -
@Omoro 嗨,我使用了以下代码“HttpSession session = request.getSession(true);”
-
@deena 为什么要在要提取
name之前使用true参数创建HttpSession。true表示initialise a session if there isn't already one set up,您通常在设置会话属性之前执行此操作,并且几乎不会在您想要获取属性时执行此操作。
标签: java jsp session session-variables