gpt4 book ai didi

java - 登录-注销 session 无法正常工作

转载 作者:行者123 更新时间:2023-11-29 11:29:32 26 4
gpt4 key购买 nike

使用不正确的密码时,它会显示失败的消息,但使用正确的消息时,它应该显示带有注销按钮的欢迎消息,而不是显示空白页面。有人可以检查一下问题是什么吗?

index.jsp

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Login Page</title>
</head>
<body>
<form action="dashboard" method="POST">
<input type="text" name="emailLogin" placeholder="enter your email address" size="50" />
<br>
<br>
<input type="password" name="passLogin" placeholder="enter your password" size="50" />
<br>
<br>
<input type="submit" value="login" name="login" />
</form>
</body>
</html>

仪表板.jsp

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@page import="java.sql.*"%>
<!DOCTYPE html>
<%

session = request.getSession(false);
if(session.getAttribute("userEmail")!=null)
{
Connection con=null;
PreparedStatement ps;
ResultSet rs;
String query;

try
{
Class.forName("com.mysql.jdbc.Driver");
}catch(Exception e)
{
System.out.println(e);
}

con = DriverManager.getConnection("jdbc:mysql://localhost:3306/userpass", "root", "root");
query="select * from userinfo where email=?";
ps = con.prepareStatement(query);
ps.setString(1, session.getAttribute("email").toString());
rs = ps.executeQuery();
if(rs.next())
{
out.println("welcome, "+rs.getString("name")+"!!");
out.println("<br>session created for you....");

//creating logout button

out.println("<form action=\"logout.jsp\" method=\"post\">");
out.println("<input type=\"submit\" name=\"logout\"value=\"Logout\">");
out.println("</form>");
}


}


if("POST".equalsIgnoreCase(request.getMethod()));
{
if(request.getParameter("login")!=null)
{
if(request.getParameter("login").equals("login"))
{
String email = request.getParameter("emailLogin");
String password = request.getParameter("passLogin");

Connection con=null;
PreparedStatement ps;
ResultSet rs;
String query;

try
{
Class.forName("com.mysql.jdbc.Driver");
}catch(Exception e){System.out.println(e);}

try
{
con = DriverManager.getConnection("jdbc:mysql://localhost:3306/login", "root", "root");
query="select * from userinfo where email=? and password=?";
ps = con.prepareStatement(query);
ps.setString(1, email);
ps.setString(2, password);
rs = ps.executeQuery();

if(rs.next())
{
//login sucessfull!
//creating session..
session = request.getSession();
session.setAttribute("email", email);
response.sendRedirect("dashboard.jsp");
}else
{
out.println("failed");
}

}catch(SQLException e)
{
System.out.println(e);
}

}


}
}

%>


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

</body>
</html>

注销.jsp

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<%
session.invalidate();
session = request.getSession();
response.sendRedirect("index.jsp");


%>

最佳答案

这是一个简单的语法错误,属性 userEmail 和 email 之间不匹配

关于java - 登录-注销 session 无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37651119/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com