【问题标题】:Getting attribitue from session in jsp从jsp中的会话中获取属性
【发布时间】:2016-12-27 18:00:41
【问题描述】:

你好我正在写一个登录注册页面。页面正在用数据库检查用户名密码,当它正确时,用户可以访问新的jsp页面。它打印出“欢迎+用户名”。我怎样才能做到这一点 ?我在互联网上搜索并找到了以下代码。但它不起作用。当我运行它时,它返回“welcome null”。我想要这个在success.jsp

成功.jsp

 <%@page contentType="text/html" pageEncoding="UTF-8"%>
 <!DOCTYPE html>
 <html>
 <body background="http://www.teamarking.com/barcode/bar_background.jpg"> 


 <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>JSP Page</title>

  </head>
   <ul>
    <li><%
    out.println("<a href='music.jsp'>Music</a>");
    %>
    </li>
    <li><%
    out.println("<a href='sport.jsp'>Sport</a>");
    %></li>
     <li> <%
    out.println("<a href='stage.jsp'>Stage</a>");
    %></li>
     <li> <%
    out.println("<a href='family.jsp'>Family</a>");
    %></li>
    <li> <%
    out.println("<a href='education.jsp'>Education</a>");
    %></li>
  </ul>
  <div class="landscape">
  <%
  String username = (String) request.getSession().getAttribute("username");
    session.setAttribute("username", username);

  out.println("welcome" + username);

  out.println(
        "<a href='logout.jsp'>Log out</a>");

  out.println(
        "<a href='myreservations.jsp'>My Reservations</a>");
  %>
  </div>
  </body>
  </html>

login.jsp

  <%@ page import ="java.sql.*" %>
  <%
  String username = request.getParameter("username");
  String password = request.getParameter("password");
  Class.forName("org.apache.derby.jdbc.ClientDriver").newInstance();
  Connection con = DriverManager.getConnection("jdbc:derby://localhost:1527/users", "users", "123");
  Statement st = con.createStatement();
  ResultSet rs;
  rs = st.executeQuery("select * from users where username='" + username + "' and password='" + password + "'");
  if (rs.next()) {
    session.setAttribute("username", username);
    response.sendRedirect("success.jsp");
  } else {
    out.println("Invalid password <a href='index.jsp'>try again</a>");
  }
  st.close();
  %>

【问题讨论】:

  • 能否请您显示将“用户名”放入会话属性的代码?
  • 我更新了我的代码

标签: java jsp


【解决方案1】:

在您可以读取属性“用户名”之前,您必须设置该属性。因此,您必须使用函数 setAttribute()。

request.getSession().setAttribute("username", nameOfUser);

您必须在检查或验证用户名和密码后使用此代码。你能显示你的代码的其余部分(验证发生的部分)吗?

【讨论】:

  • 如何在另一个 jsp 页面上获取此用户名值?
  • 这很奇怪。我认为success.jsp中的代码session.setAttribute("username", username);是没有必要的。你能不能把request.getSession().getAttribute("username")改成session.getAttribute("username")
猜你喜欢
  • 2017-04-05
  • 2017-09-14
  • 1970-01-01
  • 2014-10-07
  • 1970-01-01
  • 2013-06-19
  • 2023-03-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多