JavaWeb黑马旅游网-学习笔记03【登陆和退出功能】
生活随笔
收集整理的這篇文章主要介紹了
JavaWeb黑马旅游网-学习笔记03【登陆和退出功能】
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
- Java后端 學習路線 筆記匯總表【黑馬程序員】
目錄
18-登錄功能_分析
19-登錄功能_實現_Servlet
LoginServlet.java
20-登錄功能_實現_Service&Dao
UserServiceImpl.java
UserDaoImpl.java
21-登錄功能_實現_前臺頁面
login.html
22-登錄功能_姓名提示
header.html代碼
FindUserServlet代碼
23-退出功能
header.html
ExitServlet.java
18-登錄功能_分析
登錄功能19-登錄功能_實現_Servlet
LoginServlet.java
package cn.itcast.travel.web.servlet;import cn.itcast.travel.domain.ResultInfo; import cn.itcast.travel.domain.User; import cn.itcast.travel.service.UserService; import cn.itcast.travel.service.impl.UserServiceImpl; import com.fasterxml.jackson.databind.ObjectMapper; import org.apache.commons.beanutils.BeanUtils;import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.lang.reflect.InvocationTargetException; import java.util.Map;@WebServlet("/loginServlet") public class LoginServlet extends HttpServlet {protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {//1.獲取用戶名和密碼數據Map<String, String[]> map = request.getParameterMap();//2.封裝User對象User user = new User();try {BeanUtils.populate(user, map);} catch (IllegalAccessException e) {e.printStackTrace();} catch (InvocationTargetException e) {e.printStackTrace();}//3.調用Service查詢UserService service = new UserServiceImpl();User u = service.login(user);ResultInfo info = new ResultInfo();//4.判斷用戶對象是否為nullif (u == null) {//用戶名密碼或錯誤info.setFlag(false);info.setErrorMsg("用戶名密碼或錯誤!");}//5.判斷用戶是否激活if (u != null && !"Y".equals(u.getStatus())) {//用戶尚未激活info.setFlag(false);info.setErrorMsg("您尚未激活,請激活!");}//6.判斷是否登錄成功if (u != null && "Y".equals(u.getStatus())) {request.getSession().setAttribute("user", u);//登錄成功標記//登錄成功info.setFlag(true);}//響應數據ObjectMapper mapper = new ObjectMapper();response.setContentType("application/json;charset=utf-8");mapper.writeValue(response.getOutputStream(), info);}protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {this.doPost(request, response);} }20-登錄功能_實現_Service&Dao
UserServiceImpl.java
UserDaoImpl.java
21-登錄功能_實現_前臺頁面
login.html
<!DOCTYPE html> <html> <head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1"><title>黑馬旅游網-登錄</title><link rel="stylesheet" type="text/css" href="css/common.css"><link rel="stylesheet" type="text/css" href="css/login.css"><!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries --><!-- WARNING: Respond.js doesn't work if you view the page via file:// --><!--[if lt IE 9]><script src="https://cdn.bootcss.com/html5shiv/3.7.3/html5shiv.min.js"></script><script src="https://cdn.bootcss.com/respond.js/1.4.2/respond.min.js"></script><![endif]--><!--導入angularJS文件--><!--<script src="js/angular.min.js"></script>--><!--導入jquery--><script src="js/jquery-3.3.1.js"></script><script>$(function () {//1.給登錄按鈕綁定單擊事件$("#btn_sub").click(function () {//2.發送ajax請求,提交表單數據$.post("user/login", $("#loginForm").serialize(), function (data) {//data : {flag:false,errorMsg:''}if (data.flag) {//登錄成功location.href = "index.html";} else {//登錄失敗$("#errorMsg").html(data.errorMsg);}});});});//3.處理響應結果</script> </head> <body><!--引入頭部--><div id="header"></div><!-- 頭部 end --><section id="login_wrap"><div class="fullscreen-bg" style="background: url(images/login_bg.png);height: 532px;"></div><div class="login-box"><div class="title"><img src="images/login_logo.png" alt=""><span>歡迎登錄黑馬旅游賬戶</span></div><div class="login_inner"><!--登錄錯誤提示消息--><div id="errorMsg" class="alert alert-danger"></div><form id="loginForm" action="" method="post" accept-charset="utf-8"><input type="hidden" name="action" value="login"/><input name="username" type="text" placeholder="請輸入賬號" autocomplete="off"><input name="password" type="text" placeholder="請輸入密碼" autocomplete="off"><div class="verify"><input name="check" type="text" placeholder="請輸入驗證碼" autocomplete="off"><span><img src="checkCode" alt="" onclick="changeCheckCode(this)"></span><script type="text/javascript">//圖片點擊事件function changeCheckCode(img) {img.src = "checkCode?" + new Date().getTime();}</script></div><div class="submit_btn"><button type="button" id="btn_sub">登錄</button><div class="auto_login"><input type="checkbox" name="" class="checkbox"><span>自動登錄</span></div></div></form><div class="reg">沒有賬戶?<a href="javascript:;">立即注冊</a></div></div></div></section><!--引入尾部--><div id="footer"></div><!-- jQuery (necessary for Bootstrap's JavaScript plugins) --><script src="js/jquery-1.11.0.min.js"></script><!-- Include all compiled plugins (below), or include individual files as needed --><script src="js/bootstrap.min.js"></script><!--導入布局js,共享header和footer--><script type="text/javascript" src="js/include.js"></script> </body> </html>22-登錄功能_姓名提示
index頁面中 用戶姓名的提示信息功能
header.html代碼
FindUserServlet代碼
package cn.itcast.travel.web.servlet;import com.fasterxml.jackson.databind.ObjectMapper;import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException;@WebServlet("/findUserServlet") public class FindUserServlet extends HttpServlet {protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {//從session中獲取登錄用戶Object user = request.getSession().getAttribute("user");//將user寫回客戶端ObjectMapper mapper = new ObjectMapper();response.setContentType("application/json;charset=utf-8");mapper.writeValue(response.getOutputStream(), user);}protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {this.doPost(request, response);} }23-退出功能
什么叫做登錄了?session中有user對象。
實現步驟:
header.html
<!-- 頭部 start --> <script>$(function () {//查詢用戶信息$.get("user/findOne", {}, function (data) {//{uid:1,name:'李四'}var msg = "歡迎回來," + data.name;$("#span_username").html(msg);});//查詢分類數據$.get("category/findAll", {}, function (data) {//[{cid:1,cname:國內游},{},{}]var lis = '<li class="nav-active"><a href="index.html">首頁</a></li>';//遍歷數組,拼接字符串(<li>)for (var i = 0; i < data.length; i++) {var li = '<li><a href="route_list.html?cid=' + data[i].cid + '">' + data[i].cname + '</a></li>';lis += li;}//拼接收藏排行榜的li,<li><a href="favoriterank.html">收藏排行榜</a></li>lis += '<li><a href="favoriterank.html">收藏排行榜</a></li>';//將lis字符串,設置到ul的html內容中$("#category").html(lis);});}); </script> <header id="header"><div class="top_banner"><img src="images/top_banner.jpg" alt=""></div><div class="shortcut"><!-- 未登錄狀態 --><div class="login_out"><a href="login.html">登錄</a><a href="register.html">注冊</a></div><!-- 登錄狀態 --><div class="login"><span id="span_username"></span><a href="myfavorite.html" class="collection">我的收藏</a><a href="javascript:location.href='exitServlet';">退出</a></div></div><div class="header_wrap"><div class="topbar"><div class="logo"><a href="/"><img src="images/logo.jpg" alt=""></a></div><div class="search"><input name="" type="text" placeholder="請輸入路線名稱" class="search_input" autocomplete="off"><a href="javascript:;" class="search-button">搜索</a></div><div class="hottel"><div class="hot_pic"><img src="images/hot_tel.jpg" alt=""></div><div class="hot_tel"><p class="hot_time">客服熱線(9:00-6:00)</p><p class="hot_num">400-618-9090</p></div></div></div></div> </header> <!-- 頭部 end --> <!-- 首頁導航 --> <div class="navitem"><ul id="category" class="nav"><!-- <li class="nav-active"><a href="index.html">首頁</a></li><li><a href="route_list.html">門票</a></li><li><a href="route_list.html">酒店</a></li><li><a href="route_list.html">香港車票</a></li><li><a href="route_list.html">出境游</a></li><li><a href="route_list.html">國內游</a></li><li><a href="route_list.html">港澳游</a></li><li><a href="route_list.html">抱團定制</a></li><li><a href="route_list.html">全球自由行</a></li><li><a href="favoriterank.html">收藏排行榜</a></li>--></ul> </div>ExitServlet.java
package cn.itcast.travel.web.servlet;import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException;@WebServlet("/exitServlet") public class ExitServlet extends HttpServlet {protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {//1.銷毀sessionrequest.getSession().invalidate();//2.跳轉登錄頁面response.sendRedirect(request.getContextPath() + "/login.html");}protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {this.doPost(request, response);} }什么是真正的快樂?就是從你內心深處散發出來的你本來就有的東西。就像顏回穿著破爛的衣服,一簞食,一瓢飲,住在簡陋的房子里,別人不能忍受這種貧困,顏回卻自得其樂。
總結
以上是生活随笔為你收集整理的JavaWeb黑马旅游网-学习笔记03【登陆和退出功能】的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 微信公众号Java开发-笔记02【开发接
- 下一篇: Python基础day05【函数(函数传