gpt4 book ai didi

html - 如何保持用户登录?

转载 作者:行者123 更新时间:2023-11-28 22:13:13 24 4
gpt4 key购买 nike

我试图让用户在登录屏幕上输入详细信息后保持登录状态。我正在使用 apache tomcat 和 MS 访问数据库。我可以使用存储在我的数据库中的用户登录。但是我不知道如何让用户在我的整个网站上保持登录状态。我一直在阅读有关 session 的信息并尝试示例代码,但我无法让它工作,我不断收到不同的错误。我设法在登录后按名称“欢迎”用户,但如果我单击我的任何其他网页,我将无法保留欢迎用户消息。

loginJsp.jsp-

<sql:setDataSource
var = "bookdB"
scope = "session"
driver = "sun.jdbc.odbc.JdbcOdbcDriver"
url = "jdbc:odbc:bookdB"
/>

<sql:query var ="NameCheck" scope = "session" dataSource = "${bookdB}">

SELECT * FROM Users
WHERE Username = ?
AND Password = ?

<sql:param value = "${param.user}" />
<sql:param value = "${param.password}" />
</sql:query>

<c:if test = "${NameCheck.rowCount == 0}">
<jsp:forward page = "loginError.html"/>
</c:if>

<c:if test = "${NameCheck.rowCount != 0}">
<jsp:forward page = "index.jsp"/>

索引.jsp

 <sql:query dataSource="${bookdB}" var="result">
SELECT * FROM Users
WHERE Username = ?
AND Password = ?

<sql:param value = "${param.user}" />
<sql:param value = "${param.password}" />
</sql:query>

<font color="orange" face="Futura Std-Light" size="4">
<c:forEach var="row" items="${result.rows}">
Welcome ${row.FirstName}!
</c:forEach>
</font>

enter image description here


非常感谢任何帮助,谢谢!

这样对吗:

<c:if test = "${NameCheck.rowCount == 0}">
HttpSession session = request.getSession();
session.setAttribute("connecte", "true");
session.setAttribute("login", "${param.user}");
<jsp:forward page = "loginError.html"/>
</c:if>

最佳答案

在您的 servlet 操作处理程序中添加:

HttpSession session = request.getSession();
session.setAttribute("connecte", "true");
session.setAttribute("login", "TOM");

在您的 JSP 中将其添加到您的页面顶部

<%
if (session.getAttribute("connecte") == null
|| !((String) session.getAttribute("connecte"))
.equals("true")) {
String redirectURL = "/path/ToYour/login.jsp;
response.sendRedirect(redirectURL);
}
%>
<h1>Hello <%= session.getAttribute("login") %></h1>

如果没问题就会显示你好汤姆

#

登录.jsp:

<!DOCTYPE html>
<html>
<head>
<meta charset="US-ASCII">
<title>Login Page</title>
</head>
<body>

<form action="LoginServlet" method="post">

Username: <input type="text" name="user">
<br>
Password: <input type="password" name="pwd">
<br>
<input type="submit" value="Login">
</form>
</body>
</html>
#

LoginServlet.java:

package com.journaldev.servlet.session;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
* Servlet implementation class LoginServlet
*/
@WebServlet("/LoginServlet")
public class LoginServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
private final String userID = "Pankaj";
private final String password = "journaldev";

protected void doPost(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {

// get request parameters for userID and password
String user = request.getParameter("user");
String pwd = request.getParameter("pwd");

if(userID.equals(user) && password.equals(pwd)){
Cookie loginCookie = new Cookie("user",user);
//setting cookie to expiry in 30 mins
loginCookie.setMaxAge(30*60);
response.addCookie(loginCookie);
response.sendRedirect("LoginSuccess.jsp");
}else{
RequestDispatcher rd = getServletContext().getRequestDispatcher("/login.html");
PrintWriter out= response.getWriter();
out.println("<font color=red>Either user name or password is wrong.</font>");
rd.include(request, response);
}

}

}
#

登录成功.jsp:

<%@ page language="java" contentType="text/html; charset=US-ASCII"
pageEncoding="US-ASCII"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>Login Success Page</title>
</head>
<body>
<%
String userName = null;
Cookie[] cookies = request.getCookies();
if(cookies !=null){
for(Cookie cookie : cookies){
if(cookie.getName().equals("user")) userName = cookie.getValue();
}
}
if(userName == null) response.sendRedirect("login.html");
%>
<h3>Hi <%=userName %>, Login successful.</h3>
<br>
<form action="LogoutServlet" method="post">
<input type="submit" value="Logout" >
</form>
</body>
</html>

关于html - 如何保持用户登录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21630409/

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