Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从jsp中的会话获取属性_Java_Jsp - Fatal编程技术网

Java 从jsp中的会话获取属性

Java 从jsp中的会话获取属性,java,jsp,Java,Jsp,你好,我正在写一个登录注册页面。页面正在用数据库检查用户名密码,当密码正确时,用户可以访问新的jsp页面。并打印出“欢迎+用户名”。我该怎么做?我在网上搜索,找到了下面的代码。但它不起作用。当我运行时,它返回“welcome null”。我希望这个在success.jsp中 <%@page contentType="text/html" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <body bac

你好,我正在写一个登录注册页面。页面正在用数据库检查用户名密码,当密码正确时,用户可以访问新的jsp页面。并打印出“欢迎+用户名”。我该怎么做?我在网上搜索,找到了下面的代码。但它不起作用。当我运行时,它返回“welcome null”。我希望这个在success.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>
success.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>

JSP页面
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();
  %>

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


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

您可以显示将“用户名”放入会话属性的代码吗?我更新了我的代码如何在另一个jsp页面上获得此用户名值?这很奇怪。我认为代码
session.setAttribute(“username”,username)。能否尝试将
request.getSession().getAttribute(“用户名”)更改为
session.getAttribute(“用户名”)