• Java后端 学习路线 笔记汇总表【黑马程序员】
  1. JavaWeb黑马旅游网-学习笔记01【准备工作】
  2. JavaWeb黑马旅游网-学习笔记02【注册功能】
  3. JavaWeb黑马旅游网-学习笔记03【登陆和退出功能】
  4. JavaWeb黑马旅游网-学习笔记04【BaseServlet抽取】
  5. JavaWeb黑马旅游网-学习笔记05【分类数据展示功能】
  6. JavaWeb黑马旅游网-学习笔记06【旅游线路分页展示分页展示】
  7. JavaWeb黑马旅游网-学习笔记07【旅游线路查询】
  8. JavaWeb黑马旅游网-学习笔记08【旅游线路详情】
  9. JavaWeb黑马旅游网-学习笔记09【旅游线路收藏】
  10. JavaWeb黑马旅游网-学习笔记10【项目代码】

目录

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="data: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对象。

实现步骤:

  1. 访问servlet,将session销毁
  2. 跳转到登录页面

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="data: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="data: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="data: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【登陆和退出功能】相关推荐

  1. JavaWeb黑马旅游网-学习笔记09【旅游线路收藏】

    Java后端 学习路线 笔记汇总表[黑马程序员] JavaWeb黑马旅游网-学习笔记01[准备工作] JavaWeb黑马旅游网-学习笔记02[注册功能] JavaWeb黑马旅游网-学习笔记03[登陆和 ...

  2. JavaWeb黑马旅游网-学习笔记08【旅游线路详情】

    Java后端 学习路线 笔记汇总表[黑马程序员] JavaWeb黑马旅游网-学习笔记01[准备工作] JavaWeb黑马旅游网-学习笔记02[注册功能] JavaWeb黑马旅游网-学习笔记03[登陆和 ...

  3. JavaWeb黑马旅游网-学习笔记06【旅游线路分页展示分页展示】

    Java后端 学习路线 笔记汇总表[黑马程序员] JavaWeb黑马旅游网-学习笔记01[准备工作] JavaWeb黑马旅游网-学习笔记02[注册功能] JavaWeb黑马旅游网-学习笔记03[登陆和 ...

  4. JavaWeb黑马旅游网-学习笔记05【分类数据展示功能】

    Java后端 学习路线 笔记汇总表[黑马程序员] JavaWeb黑马旅游网-学习笔记01[准备工作] JavaWeb黑马旅游网-学习笔记02[注册功能] JavaWeb黑马旅游网-学习笔记03[登陆和 ...

  5. JavaWeb黑马旅游网-学习笔记04【BaseServlet抽取】

    Java后端 学习路线 笔记汇总表[黑马程序员] JavaWeb黑马旅游网-学习笔记01[准备工作] JavaWeb黑马旅游网-学习笔记02[注册功能] JavaWeb黑马旅游网-学习笔记03[登陆和 ...

  6. JavaWeb黑马旅游网-学习笔记02【注册功能】

    Java后端 学习路线 笔记汇总表[黑马程序员] JavaWeb黑马旅游网-学习笔记01[准备工作] JavaWeb黑马旅游网-学习笔记02[注册功能] JavaWeb黑马旅游网-学习笔记03[登陆和 ...

  7. JavaWeb黑马旅游网-学习笔记01【准备工作】

    Java后端 学习路线 笔记汇总表[黑马程序员] JavaWeb黑马旅游网-学习笔记01[准备工作] JavaWeb黑马旅游网-学习笔记02[注册功能] JavaWeb黑马旅游网-学习笔记03[登陆和 ...

  8. JavaWeb黑马旅游网-学习笔记10【项目代码】

    Java后端 学习路线 笔记汇总表[黑马程序员] JavaWeb黑马旅游网-学习笔记01[准备工作] JavaWeb黑马旅游网-学习笔记02[注册功能] JavaWeb黑马旅游网-学习笔记03[登陆和 ...

  9. JavaWeb黑马旅游网-学习笔记07【旅游线路查询】

    Java后端 学习路线 笔记汇总表[黑马程序员] JavaWeb黑马旅游网-学习笔记01[准备工作] JavaWeb黑马旅游网-学习笔记02[注册功能] JavaWeb黑马旅游网-学习笔记03[登陆和 ...

最新文章

  1. SQL-54 查找排除当前最大、最小salary之后的员工的平均工资avg_salary。
  2. LeetCode实战:最长回文子串
  3. ASP .NET Core MVC 控制器中获取当前登录用户
  4. 一个通俗易懂的HMM例子
  5. pythonfor循环break_python 中 for 循环 if循环 break
  6. python程序设计实验配置_20181235 实验三《Python程序设计》实验报告
  7. Linux FTP服务安装与账号设置
  8. cnn 一维时序数据_多角度理解CNN网络
  9. scratch python_自动生成scratch2或scratch3作品核心代码
  10. python写出租车计费系统_基于VHDL的出租车计费器
  11. kafka常见异常问题总结:KeepErrorCode = NoNode for...
  12. java实现微博九宫格图片切分
  13. UTF-8编码的原理
  14. 华为应用市场,浏览器PC版
  15. 51单片机IIC通信协议
  16. HTML a标签之空链接
  17. 缓存服务器 MemcachedRedis
  18. 计算机以太网依赖服务或无法启动,依赖服务或组无法启动,教您这样解决依赖服务或组无法启动...
  19. 新版mysql改初始密码
  20. 网站需要高防服务器吗,什么类型的行业需要高防服务器?

热门文章

  1. phantomjs linux 中文不显示,linux 安装phantomJs 用于截图,处理中文乱码,和样式问题...
  2. java handler null_java – 在调用之前,如何确保另一个Thread的Handler不为null?
  3. 打印5列五颗星_13个Excel快捷打印技巧,让你熟练掌握打印机操作
  4. 树状数组求逆序对_区间和的个数(树状数组)
  5. python的语言是什么歌_用python对歌词进行语言分析
  6. python dict 排序原理_第一章Python数据结构和算法(字典排序)
  7. android ListView适配器之SimpleAdapter的用法
  8. 八十、 Springboot整合异步任务和定时任务
  9. kaggle(一)训练猫狗数据集
  10. SIGIR 2020 | 相似问题判定的二次匹配模型