我有login.jsp页面,我尝试用户名和文本框中的密码通过会话传递给servlet。代码o 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。我尝试使用以下代码,但它给了我null值。我在servlet中使用的java代码如下:
HttpSession session = request.getSession(true);
String name=(String)session.getAttribute("name");
System.out.println("Welcome"+name);
有人能告诉我在哪里弄错了。我需要在会话中存储用户名,以便我可以在该servlet
中使用它来处理多个请求答案 0 :(得分:1)
您从session.getAttribute("name")
返回null,因为您在呈现jsp时在会话中设置 name 属性。目前,未输入用户名。您需要做的是使用servlet中的getParameter()
获取用户名,并根据需要将其保存在会话中。