【问题标题】:Storing and retrieving values from JSP to servlet using Sessions使用 Session 将值从 JSP 存储和检索到 servlet
【发布时间】: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); 如果 reqHttpServletRequest 对象。或者你甚至在设置属性之前创建了一个会话?
  • @Omoro 嗨,我使用了以下代码“HttpSession session = request.getSession(true);”
  • @deena 为什么要在要提取 name 之前使用 true 参数创建 HttpSessiontrue 表示 initialise a session if there isn't already one set up,您通常在设置会话属性之前执行此操作,并且几乎不会在您想要获取属性时执行此操作。

标签: java jsp session session-variables


【解决方案1】:

session.getAttribute("name") 返回 null,因为您在呈现 jsp 时在会话中设置 name 属性。此时,用户名没有输入。您需要做的是在 servlet 中使用 getParameter() 获取用户名,并根据需要将其保存在会话中。

【讨论】:

  • 感谢 Priyesh 的评论。我使用 getParamter 从用户名和密码获得了值,它工作正常。现在正如您所说,我需要将这两个值存储在会话中,以便我想将用户名和密码用于其他方法。这是我获取用户名和密码的代码 "username = request.getParameter("username"); String password = request.getParameter("password");"
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-14
  • 2017-08-18
  • 1970-01-01
  • 1970-01-01
  • 2015-01-31
  • 1970-01-01
相关资源
最近更新 更多