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