'登錄案例java實現 ---- Java進階篇'

Java HTML CSS 瀏覽器 Programmer小米 2019-08-02
"

登錄案例java實現 ---- Java進階篇

"

登錄案例java實現 ---- Java進階篇

登錄案例java實現 ---- Java進階篇

目錄

一、環境搭建

二、目錄結構

三、代碼示例

3.1、fail.html頁面

3.2、Login.htm頁面

3.3、IndexServlet.java

3.4、LoginServlet.java

3.5、LogoutServlet.java

3.6、總結

"

登錄案例java實現 ---- Java進階篇

登錄案例java實現 ---- Java進階篇

目錄

一、環境搭建

二、目錄結構

三、代碼示例

3.1、fail.html頁面

3.2、Login.htm頁面

3.3、IndexServlet.java

3.4、LoginServlet.java

3.5、LogoutServlet.java

3.6、總結

登錄案例java實現 ---- Java進階篇

一、環境搭建

JDK1.8 + Tomcat1.8

二、目錄結構

三、代碼示例

3.1、fail.html頁面

<!DOCTYPE html>

<html>

<head>

<title>faill.html</title>

<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">

<meta http-equiv="description" content="this is my page">

<meta http-equiv="content-type" content="text/html; charset=UTF-8">

<!--<link rel="stylesheet" type="text/css" href="./styles.css">-->

</head>

<body>

<font color='red' size='3'>親, 你的用戶名或密碼輸入有誤!請重新輸入!</font>

<br />

<a href="/project03/login.html">返回登錄頁面</a>

</body>

</html>

3.2、Login.htm頁面

<!DOCTYPE html>

<html>

<head>

<title>Login.html</title>

<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">

<meta http-equiv="description" content="this is my page">

<meta http-equiv="content-type" content="text/html; charset=UTF-8">

<!--<link rel="stylesheet" type="text/css" href="./styles.css">-->

</head>

<body>

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

用戶名:<input type="text" name="UserName" /><br />

密 碼:<input type="password" name="UserPwd" /><br />

<input type="submit" value="登錄" />

</form>

</body>

</html>

3.3、IndexServlet.java

package cn.itcase.servlet;

import java.io.IOException;

import java.io.PrintWriter;

import javax.servlet.ServletException;

import javax.servlet.ServletResponse;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import javax.servlet.http.HttpSession;

/**

* 用戶主頁邏輯

* */

public class IndexServlet extends HttpServlet {

public void doGet(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

// 設置編碼格式

response.setContentType("text/html;charset=utf-8");// setContentType設置瀏覽器的編碼格式

// 1.信息輸出至瀏覽器

PrintWriter writer = response.getWriter();

String html = "";

/**

* 接收request域對象的數據 String loginName =

* (String)request.getAttribute("loginName",userName);

*

*/

/**

* 在用戶主頁,判斷session對象不為空且存在指定的屬性則登錄成功 才能訪問資源。從session域對象中取出會話數據

*

*

* */

// 2.得到session對象

HttpSession session = request.getSession(false);

// 2.1如果不存在session對象,登錄不成功,跳轉到登錄頁面

if (session == null) {

response.sendRedirect(request.getContextPath()

+ "/Login.html");

return;

}

// 2.2沒有在session對象域中找到相應 session唯一標識ID 則登錄不成功,跳轉到登錄頁面

String loginName = (String) session.getAttribute("loginName");

if (loginName == null) {

response.sendRedirect(request.getContextPath() + "/Login.html");

return;

}

html = "<html><body>歡迎回來," + loginName + ",<a href='"

+ request.getContextPath()

+ "/LogoutServlet'>安全退出</a></body></html>";

writer.write(html);

}

public void doPost(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

doGet(request, response);

}

}

3.4、LoginServlet.java

package cn.itcase.servlet;

import java.io.IOException;

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import javax.servlet.http.HttpSession;

/**

* 登錄的邏輯

* 設置編碼格式

* 根據參數名獲取參數值

* 判斷邏輯(使用session域對象)

*

*

*/

public class LoginServlet extends HttpServlet {

protected void doGet(HttpServletRequest request,

HttpServletResponse response) throws ServletException, IOException {

// 設置編碼格式

request.setCharacterEncoding("utf-8");// setCharacterEncoding設置服務器的編碼格式

// 1.根據參數名獲取參數值

String userName = request.getParameter("UserName");

String userPwd = request.getParameter("UserPwd");

// 2.登錄是否的邏輯判斷

if("eric".equals(userName) && "123456".equals(userPwd)){

/**分析使用技術:

* context域對象:不合適,可能會覆蓋數據

* request.setAttribute("loginName",userName);

*

* request域對象:不合適,整個網站必須得使用轉發技術來跳轉

* request.getRequestDispatcher("/IndexServlet").forward(request,response);

*

* session域對象:合適

* response.sendRedirect(request.getContextPath()+"/IndexServlet")

* */

//2.1 登錄成功

// 2.1.1創建session對象 用於保存數據

HttpSession session = request.getSession();

// 2.1.1把數據保存到session域中

session.setAttribute("loginName", userName); // session對象的唯一標識"loginName" 唯一標識名稱 userName

//session.setMaxInactiveInterval(1*60*60*24*30); // session對象的有效時長 可以配置全局的有效時長

//2.1.3跳轉到用戶主頁

response.sendRedirect(request.getContextPath() + "/IndexServlet"); //sendRedirect()重定向 getContextPath()請求路徑

}else{

//2.2登錄失敗 請求重定向

response.sendRedirect(request.getContextPath() + "/fail.html");

}

}

protected void doPost(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

response.setCharacterEncoding("utf-8");

doGet(request,response);

}

}

3.5、LogoutServlet.java

package cn.itcase.servlet;

import java.io.IOException;

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import javax.servlet.http.HttpSession;

/**

* 退出邏輯

* */

public class LogoutServlet extends HttpServlet {

public void doGet(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

/**

* 安全退出

* 刪除session對象中指定的loginName屬性即可

*

*/

HttpSession session = request.getSession(false);

if(session != null){

session.removeAttribute("loginName");

}

//返回登錄頁面

response.sendRedirect(request.getContextPath() + "/Login.html");

}

public void doPost(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

doGet(request,response);

}

}

3.6、總結

知道了如何實現前端頁面與後端的數據交互

疑惑:如果有多個用戶難道還一個一個的去判斷他存不存在麼?

---------------------

來源:CSDN

原文:https://blog.csdn.net/RONG_YAO/article/details/90293854

"

登錄案例java實現 ---- Java進階篇

登錄案例java實現 ---- Java進階篇

目錄

一、環境搭建

二、目錄結構

三、代碼示例

3.1、fail.html頁面

3.2、Login.htm頁面

3.3、IndexServlet.java

3.4、LoginServlet.java

3.5、LogoutServlet.java

3.6、總結

登錄案例java實現 ---- Java進階篇

一、環境搭建

JDK1.8 + Tomcat1.8

二、目錄結構

三、代碼示例

3.1、fail.html頁面

<!DOCTYPE html>

<html>

<head>

<title>faill.html</title>

<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">

<meta http-equiv="description" content="this is my page">

<meta http-equiv="content-type" content="text/html; charset=UTF-8">

<!--<link rel="stylesheet" type="text/css" href="./styles.css">-->

</head>

<body>

<font color='red' size='3'>親, 你的用戶名或密碼輸入有誤!請重新輸入!</font>

<br />

<a href="/project03/login.html">返回登錄頁面</a>

</body>

</html>

3.2、Login.htm頁面

<!DOCTYPE html>

<html>

<head>

<title>Login.html</title>

<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">

<meta http-equiv="description" content="this is my page">

<meta http-equiv="content-type" content="text/html; charset=UTF-8">

<!--<link rel="stylesheet" type="text/css" href="./styles.css">-->

</head>

<body>

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

用戶名:<input type="text" name="UserName" /><br />

密 碼:<input type="password" name="UserPwd" /><br />

<input type="submit" value="登錄" />

</form>

</body>

</html>

3.3、IndexServlet.java

package cn.itcase.servlet;

import java.io.IOException;

import java.io.PrintWriter;

import javax.servlet.ServletException;

import javax.servlet.ServletResponse;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import javax.servlet.http.HttpSession;

/**

* 用戶主頁邏輯

* */

public class IndexServlet extends HttpServlet {

public void doGet(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

// 設置編碼格式

response.setContentType("text/html;charset=utf-8");// setContentType設置瀏覽器的編碼格式

// 1.信息輸出至瀏覽器

PrintWriter writer = response.getWriter();

String html = "";

/**

* 接收request域對象的數據 String loginName =

* (String)request.getAttribute("loginName",userName);

*

*/

/**

* 在用戶主頁,判斷session對象不為空且存在指定的屬性則登錄成功 才能訪問資源。從session域對象中取出會話數據

*

*

* */

// 2.得到session對象

HttpSession session = request.getSession(false);

// 2.1如果不存在session對象,登錄不成功,跳轉到登錄頁面

if (session == null) {

response.sendRedirect(request.getContextPath()

+ "/Login.html");

return;

}

// 2.2沒有在session對象域中找到相應 session唯一標識ID 則登錄不成功,跳轉到登錄頁面

String loginName = (String) session.getAttribute("loginName");

if (loginName == null) {

response.sendRedirect(request.getContextPath() + "/Login.html");

return;

}

html = "<html><body>歡迎回來," + loginName + ",<a href='"

+ request.getContextPath()

+ "/LogoutServlet'>安全退出</a></body></html>";

writer.write(html);

}

public void doPost(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

doGet(request, response);

}

}

3.4、LoginServlet.java

package cn.itcase.servlet;

import java.io.IOException;

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import javax.servlet.http.HttpSession;

/**

* 登錄的邏輯

* 設置編碼格式

* 根據參數名獲取參數值

* 判斷邏輯(使用session域對象)

*

*

*/

public class LoginServlet extends HttpServlet {

protected void doGet(HttpServletRequest request,

HttpServletResponse response) throws ServletException, IOException {

// 設置編碼格式

request.setCharacterEncoding("utf-8");// setCharacterEncoding設置服務器的編碼格式

// 1.根據參數名獲取參數值

String userName = request.getParameter("UserName");

String userPwd = request.getParameter("UserPwd");

// 2.登錄是否的邏輯判斷

if("eric".equals(userName) && "123456".equals(userPwd)){

/**分析使用技術:

* context域對象:不合適,可能會覆蓋數據

* request.setAttribute("loginName",userName);

*

* request域對象:不合適,整個網站必須得使用轉發技術來跳轉

* request.getRequestDispatcher("/IndexServlet").forward(request,response);

*

* session域對象:合適

* response.sendRedirect(request.getContextPath()+"/IndexServlet")

* */

//2.1 登錄成功

// 2.1.1創建session對象 用於保存數據

HttpSession session = request.getSession();

// 2.1.1把數據保存到session域中

session.setAttribute("loginName", userName); // session對象的唯一標識"loginName" 唯一標識名稱 userName

//session.setMaxInactiveInterval(1*60*60*24*30); // session對象的有效時長 可以配置全局的有效時長

//2.1.3跳轉到用戶主頁

response.sendRedirect(request.getContextPath() + "/IndexServlet"); //sendRedirect()重定向 getContextPath()請求路徑

}else{

//2.2登錄失敗 請求重定向

response.sendRedirect(request.getContextPath() + "/fail.html");

}

}

protected void doPost(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

response.setCharacterEncoding("utf-8");

doGet(request,response);

}

}

3.5、LogoutServlet.java

package cn.itcase.servlet;

import java.io.IOException;

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import javax.servlet.http.HttpSession;

/**

* 退出邏輯

* */

public class LogoutServlet extends HttpServlet {

public void doGet(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

/**

* 安全退出

* 刪除session對象中指定的loginName屬性即可

*

*/

HttpSession session = request.getSession(false);

if(session != null){

session.removeAttribute("loginName");

}

//返回登錄頁面

response.sendRedirect(request.getContextPath() + "/Login.html");

}

public void doPost(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

doGet(request,response);

}

}

3.6、總結

知道了如何實現前端頁面與後端的數據交互

疑惑:如果有多個用戶難道還一個一個的去判斷他存不存在麼?

---------------------

來源:CSDN

原文:https://blog.csdn.net/RONG_YAO/article/details/90293854

登錄案例java實現 ---- Java進階篇

"

登錄案例java實現 ---- Java進階篇

登錄案例java實現 ---- Java進階篇

目錄

一、環境搭建

二、目錄結構

三、代碼示例

3.1、fail.html頁面

3.2、Login.htm頁面

3.3、IndexServlet.java

3.4、LoginServlet.java

3.5、LogoutServlet.java

3.6、總結

登錄案例java實現 ---- Java進階篇

一、環境搭建

JDK1.8 + Tomcat1.8

二、目錄結構

三、代碼示例

3.1、fail.html頁面

<!DOCTYPE html>

<html>

<head>

<title>faill.html</title>

<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">

<meta http-equiv="description" content="this is my page">

<meta http-equiv="content-type" content="text/html; charset=UTF-8">

<!--<link rel="stylesheet" type="text/css" href="./styles.css">-->

</head>

<body>

<font color='red' size='3'>親, 你的用戶名或密碼輸入有誤!請重新輸入!</font>

<br />

<a href="/project03/login.html">返回登錄頁面</a>

</body>

</html>

3.2、Login.htm頁面

<!DOCTYPE html>

<html>

<head>

<title>Login.html</title>

<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">

<meta http-equiv="description" content="this is my page">

<meta http-equiv="content-type" content="text/html; charset=UTF-8">

<!--<link rel="stylesheet" type="text/css" href="./styles.css">-->

</head>

<body>

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

用戶名:<input type="text" name="UserName" /><br />

密 碼:<input type="password" name="UserPwd" /><br />

<input type="submit" value="登錄" />

</form>

</body>

</html>

3.3、IndexServlet.java

package cn.itcase.servlet;

import java.io.IOException;

import java.io.PrintWriter;

import javax.servlet.ServletException;

import javax.servlet.ServletResponse;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import javax.servlet.http.HttpSession;

/**

* 用戶主頁邏輯

* */

public class IndexServlet extends HttpServlet {

public void doGet(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

// 設置編碼格式

response.setContentType("text/html;charset=utf-8");// setContentType設置瀏覽器的編碼格式

// 1.信息輸出至瀏覽器

PrintWriter writer = response.getWriter();

String html = "";

/**

* 接收request域對象的數據 String loginName =

* (String)request.getAttribute("loginName",userName);

*

*/

/**

* 在用戶主頁,判斷session對象不為空且存在指定的屬性則登錄成功 才能訪問資源。從session域對象中取出會話數據

*

*

* */

// 2.得到session對象

HttpSession session = request.getSession(false);

// 2.1如果不存在session對象,登錄不成功,跳轉到登錄頁面

if (session == null) {

response.sendRedirect(request.getContextPath()

+ "/Login.html");

return;

}

// 2.2沒有在session對象域中找到相應 session唯一標識ID 則登錄不成功,跳轉到登錄頁面

String loginName = (String) session.getAttribute("loginName");

if (loginName == null) {

response.sendRedirect(request.getContextPath() + "/Login.html");

return;

}

html = "<html><body>歡迎回來," + loginName + ",<a href='"

+ request.getContextPath()

+ "/LogoutServlet'>安全退出</a></body></html>";

writer.write(html);

}

public void doPost(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

doGet(request, response);

}

}

3.4、LoginServlet.java

package cn.itcase.servlet;

import java.io.IOException;

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import javax.servlet.http.HttpSession;

/**

* 登錄的邏輯

* 設置編碼格式

* 根據參數名獲取參數值

* 判斷邏輯(使用session域對象)

*

*

*/

public class LoginServlet extends HttpServlet {

protected void doGet(HttpServletRequest request,

HttpServletResponse response) throws ServletException, IOException {

// 設置編碼格式

request.setCharacterEncoding("utf-8");// setCharacterEncoding設置服務器的編碼格式

// 1.根據參數名獲取參數值

String userName = request.getParameter("UserName");

String userPwd = request.getParameter("UserPwd");

// 2.登錄是否的邏輯判斷

if("eric".equals(userName) && "123456".equals(userPwd)){

/**分析使用技術:

* context域對象:不合適,可能會覆蓋數據

* request.setAttribute("loginName",userName);

*

* request域對象:不合適,整個網站必須得使用轉發技術來跳轉

* request.getRequestDispatcher("/IndexServlet").forward(request,response);

*

* session域對象:合適

* response.sendRedirect(request.getContextPath()+"/IndexServlet")

* */

//2.1 登錄成功

// 2.1.1創建session對象 用於保存數據

HttpSession session = request.getSession();

// 2.1.1把數據保存到session域中

session.setAttribute("loginName", userName); // session對象的唯一標識"loginName" 唯一標識名稱 userName

//session.setMaxInactiveInterval(1*60*60*24*30); // session對象的有效時長 可以配置全局的有效時長

//2.1.3跳轉到用戶主頁

response.sendRedirect(request.getContextPath() + "/IndexServlet"); //sendRedirect()重定向 getContextPath()請求路徑

}else{

//2.2登錄失敗 請求重定向

response.sendRedirect(request.getContextPath() + "/fail.html");

}

}

protected void doPost(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

response.setCharacterEncoding("utf-8");

doGet(request,response);

}

}

3.5、LogoutServlet.java

package cn.itcase.servlet;

import java.io.IOException;

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import javax.servlet.http.HttpSession;

/**

* 退出邏輯

* */

public class LogoutServlet extends HttpServlet {

public void doGet(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

/**

* 安全退出

* 刪除session對象中指定的loginName屬性即可

*

*/

HttpSession session = request.getSession(false);

if(session != null){

session.removeAttribute("loginName");

}

//返回登錄頁面

response.sendRedirect(request.getContextPath() + "/Login.html");

}

public void doPost(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

doGet(request,response);

}

}

3.6、總結

知道了如何實現前端頁面與後端的數據交互

疑惑:如果有多個用戶難道還一個一個的去判斷他存不存在麼?

---------------------

來源:CSDN

原文:https://blog.csdn.net/RONG_YAO/article/details/90293854

登錄案例java實現 ---- Java進階篇

登錄案例java實現 ---- Java進階篇

"

登錄案例java實現 ---- Java進階篇

登錄案例java實現 ---- Java進階篇

目錄

一、環境搭建

二、目錄結構

三、代碼示例

3.1、fail.html頁面

3.2、Login.htm頁面

3.3、IndexServlet.java

3.4、LoginServlet.java

3.5、LogoutServlet.java

3.6、總結

登錄案例java實現 ---- Java進階篇

一、環境搭建

JDK1.8 + Tomcat1.8

二、目錄結構

三、代碼示例

3.1、fail.html頁面

<!DOCTYPE html>

<html>

<head>

<title>faill.html</title>

<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">

<meta http-equiv="description" content="this is my page">

<meta http-equiv="content-type" content="text/html; charset=UTF-8">

<!--<link rel="stylesheet" type="text/css" href="./styles.css">-->

</head>

<body>

<font color='red' size='3'>親, 你的用戶名或密碼輸入有誤!請重新輸入!</font>

<br />

<a href="/project03/login.html">返回登錄頁面</a>

</body>

</html>

3.2、Login.htm頁面

<!DOCTYPE html>

<html>

<head>

<title>Login.html</title>

<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">

<meta http-equiv="description" content="this is my page">

<meta http-equiv="content-type" content="text/html; charset=UTF-8">

<!--<link rel="stylesheet" type="text/css" href="./styles.css">-->

</head>

<body>

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

用戶名:<input type="text" name="UserName" /><br />

密 碼:<input type="password" name="UserPwd" /><br />

<input type="submit" value="登錄" />

</form>

</body>

</html>

3.3、IndexServlet.java

package cn.itcase.servlet;

import java.io.IOException;

import java.io.PrintWriter;

import javax.servlet.ServletException;

import javax.servlet.ServletResponse;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import javax.servlet.http.HttpSession;

/**

* 用戶主頁邏輯

* */

public class IndexServlet extends HttpServlet {

public void doGet(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

// 設置編碼格式

response.setContentType("text/html;charset=utf-8");// setContentType設置瀏覽器的編碼格式

// 1.信息輸出至瀏覽器

PrintWriter writer = response.getWriter();

String html = "";

/**

* 接收request域對象的數據 String loginName =

* (String)request.getAttribute("loginName",userName);

*

*/

/**

* 在用戶主頁,判斷session對象不為空且存在指定的屬性則登錄成功 才能訪問資源。從session域對象中取出會話數據

*

*

* */

// 2.得到session對象

HttpSession session = request.getSession(false);

// 2.1如果不存在session對象,登錄不成功,跳轉到登錄頁面

if (session == null) {

response.sendRedirect(request.getContextPath()

+ "/Login.html");

return;

}

// 2.2沒有在session對象域中找到相應 session唯一標識ID 則登錄不成功,跳轉到登錄頁面

String loginName = (String) session.getAttribute("loginName");

if (loginName == null) {

response.sendRedirect(request.getContextPath() + "/Login.html");

return;

}

html = "<html><body>歡迎回來," + loginName + ",<a href='"

+ request.getContextPath()

+ "/LogoutServlet'>安全退出</a></body></html>";

writer.write(html);

}

public void doPost(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

doGet(request, response);

}

}

3.4、LoginServlet.java

package cn.itcase.servlet;

import java.io.IOException;

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import javax.servlet.http.HttpSession;

/**

* 登錄的邏輯

* 設置編碼格式

* 根據參數名獲取參數值

* 判斷邏輯(使用session域對象)

*

*

*/

public class LoginServlet extends HttpServlet {

protected void doGet(HttpServletRequest request,

HttpServletResponse response) throws ServletException, IOException {

// 設置編碼格式

request.setCharacterEncoding("utf-8");// setCharacterEncoding設置服務器的編碼格式

// 1.根據參數名獲取參數值

String userName = request.getParameter("UserName");

String userPwd = request.getParameter("UserPwd");

// 2.登錄是否的邏輯判斷

if("eric".equals(userName) && "123456".equals(userPwd)){

/**分析使用技術:

* context域對象:不合適,可能會覆蓋數據

* request.setAttribute("loginName",userName);

*

* request域對象:不合適,整個網站必須得使用轉發技術來跳轉

* request.getRequestDispatcher("/IndexServlet").forward(request,response);

*

* session域對象:合適

* response.sendRedirect(request.getContextPath()+"/IndexServlet")

* */

//2.1 登錄成功

// 2.1.1創建session對象 用於保存數據

HttpSession session = request.getSession();

// 2.1.1把數據保存到session域中

session.setAttribute("loginName", userName); // session對象的唯一標識"loginName" 唯一標識名稱 userName

//session.setMaxInactiveInterval(1*60*60*24*30); // session對象的有效時長 可以配置全局的有效時長

//2.1.3跳轉到用戶主頁

response.sendRedirect(request.getContextPath() + "/IndexServlet"); //sendRedirect()重定向 getContextPath()請求路徑

}else{

//2.2登錄失敗 請求重定向

response.sendRedirect(request.getContextPath() + "/fail.html");

}

}

protected void doPost(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

response.setCharacterEncoding("utf-8");

doGet(request,response);

}

}

3.5、LogoutServlet.java

package cn.itcase.servlet;

import java.io.IOException;

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import javax.servlet.http.HttpSession;

/**

* 退出邏輯

* */

public class LogoutServlet extends HttpServlet {

public void doGet(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

/**

* 安全退出

* 刪除session對象中指定的loginName屬性即可

*

*/

HttpSession session = request.getSession(false);

if(session != null){

session.removeAttribute("loginName");

}

//返回登錄頁面

response.sendRedirect(request.getContextPath() + "/Login.html");

}

public void doPost(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

doGet(request,response);

}

}

3.6、總結

知道了如何實現前端頁面與後端的數據交互

疑惑:如果有多個用戶難道還一個一個的去判斷他存不存在麼?

---------------------

來源:CSDN

原文:https://blog.csdn.net/RONG_YAO/article/details/90293854

登錄案例java實現 ---- Java進階篇

登錄案例java實現 ---- Java進階篇

登錄案例java實現 ---- Java進階篇

"

登錄案例java實現 ---- Java進階篇

登錄案例java實現 ---- Java進階篇

目錄

一、環境搭建

二、目錄結構

三、代碼示例

3.1、fail.html頁面

3.2、Login.htm頁面

3.3、IndexServlet.java

3.4、LoginServlet.java

3.5、LogoutServlet.java

3.6、總結

登錄案例java實現 ---- Java進階篇

一、環境搭建

JDK1.8 + Tomcat1.8

二、目錄結構

三、代碼示例

3.1、fail.html頁面

<!DOCTYPE html>

<html>

<head>

<title>faill.html</title>

<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">

<meta http-equiv="description" content="this is my page">

<meta http-equiv="content-type" content="text/html; charset=UTF-8">

<!--<link rel="stylesheet" type="text/css" href="./styles.css">-->

</head>

<body>

<font color='red' size='3'>親, 你的用戶名或密碼輸入有誤!請重新輸入!</font>

<br />

<a href="/project03/login.html">返回登錄頁面</a>

</body>

</html>

3.2、Login.htm頁面

<!DOCTYPE html>

<html>

<head>

<title>Login.html</title>

<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">

<meta http-equiv="description" content="this is my page">

<meta http-equiv="content-type" content="text/html; charset=UTF-8">

<!--<link rel="stylesheet" type="text/css" href="./styles.css">-->

</head>

<body>

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

用戶名:<input type="text" name="UserName" /><br />

密 碼:<input type="password" name="UserPwd" /><br />

<input type="submit" value="登錄" />

</form>

</body>

</html>

3.3、IndexServlet.java

package cn.itcase.servlet;

import java.io.IOException;

import java.io.PrintWriter;

import javax.servlet.ServletException;

import javax.servlet.ServletResponse;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import javax.servlet.http.HttpSession;

/**

* 用戶主頁邏輯

* */

public class IndexServlet extends HttpServlet {

public void doGet(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

// 設置編碼格式

response.setContentType("text/html;charset=utf-8");// setContentType設置瀏覽器的編碼格式

// 1.信息輸出至瀏覽器

PrintWriter writer = response.getWriter();

String html = "";

/**

* 接收request域對象的數據 String loginName =

* (String)request.getAttribute("loginName",userName);

*

*/

/**

* 在用戶主頁,判斷session對象不為空且存在指定的屬性則登錄成功 才能訪問資源。從session域對象中取出會話數據

*

*

* */

// 2.得到session對象

HttpSession session = request.getSession(false);

// 2.1如果不存在session對象,登錄不成功,跳轉到登錄頁面

if (session == null) {

response.sendRedirect(request.getContextPath()

+ "/Login.html");

return;

}

// 2.2沒有在session對象域中找到相應 session唯一標識ID 則登錄不成功,跳轉到登錄頁面

String loginName = (String) session.getAttribute("loginName");

if (loginName == null) {

response.sendRedirect(request.getContextPath() + "/Login.html");

return;

}

html = "<html><body>歡迎回來," + loginName + ",<a href='"

+ request.getContextPath()

+ "/LogoutServlet'>安全退出</a></body></html>";

writer.write(html);

}

public void doPost(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

doGet(request, response);

}

}

3.4、LoginServlet.java

package cn.itcase.servlet;

import java.io.IOException;

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import javax.servlet.http.HttpSession;

/**

* 登錄的邏輯

* 設置編碼格式

* 根據參數名獲取參數值

* 判斷邏輯(使用session域對象)

*

*

*/

public class LoginServlet extends HttpServlet {

protected void doGet(HttpServletRequest request,

HttpServletResponse response) throws ServletException, IOException {

// 設置編碼格式

request.setCharacterEncoding("utf-8");// setCharacterEncoding設置服務器的編碼格式

// 1.根據參數名獲取參數值

String userName = request.getParameter("UserName");

String userPwd = request.getParameter("UserPwd");

// 2.登錄是否的邏輯判斷

if("eric".equals(userName) && "123456".equals(userPwd)){

/**分析使用技術:

* context域對象:不合適,可能會覆蓋數據

* request.setAttribute("loginName",userName);

*

* request域對象:不合適,整個網站必須得使用轉發技術來跳轉

* request.getRequestDispatcher("/IndexServlet").forward(request,response);

*

* session域對象:合適

* response.sendRedirect(request.getContextPath()+"/IndexServlet")

* */

//2.1 登錄成功

// 2.1.1創建session對象 用於保存數據

HttpSession session = request.getSession();

// 2.1.1把數據保存到session域中

session.setAttribute("loginName", userName); // session對象的唯一標識"loginName" 唯一標識名稱 userName

//session.setMaxInactiveInterval(1*60*60*24*30); // session對象的有效時長 可以配置全局的有效時長

//2.1.3跳轉到用戶主頁

response.sendRedirect(request.getContextPath() + "/IndexServlet"); //sendRedirect()重定向 getContextPath()請求路徑

}else{

//2.2登錄失敗 請求重定向

response.sendRedirect(request.getContextPath() + "/fail.html");

}

}

protected void doPost(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

response.setCharacterEncoding("utf-8");

doGet(request,response);

}

}

3.5、LogoutServlet.java

package cn.itcase.servlet;

import java.io.IOException;

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import javax.servlet.http.HttpSession;

/**

* 退出邏輯

* */

public class LogoutServlet extends HttpServlet {

public void doGet(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

/**

* 安全退出

* 刪除session對象中指定的loginName屬性即可

*

*/

HttpSession session = request.getSession(false);

if(session != null){

session.removeAttribute("loginName");

}

//返回登錄頁面

response.sendRedirect(request.getContextPath() + "/Login.html");

}

public void doPost(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

doGet(request,response);

}

}

3.6、總結

知道了如何實現前端頁面與後端的數據交互

疑惑:如果有多個用戶難道還一個一個的去判斷他存不存在麼?

---------------------

來源:CSDN

原文:https://blog.csdn.net/RONG_YAO/article/details/90293854

登錄案例java實現 ---- Java進階篇

登錄案例java實現 ---- Java進階篇

登錄案例java實現 ---- Java進階篇

登錄案例java實現 ---- Java進階篇

"

相關推薦

推薦中...