Servlet从了解到放弃(05)

简介: Servlet从了解到放弃(05)

VRD項目


准备工作:


创建工程 名字VRD 把jar改成war


改错 右键最长的点击最长的 , 替换工程中的web.xml 从苍老师文档服务器下载Servlet3.0 里面的web.xml 替换掉工程中自动生成的web.xml


关联Tomcat 工程上右键 Properties 找到TargetedRuntimes 打钩


把之前工程中用到的jar包坐标复制到新工程 检查奶瓶是否出现


配置文件jdbc.properties 复制到新工程


创建四个包 复制两个工具类到工程中


在终端中创建vrd数据库


create database vrd character set utf8;


use vrd;


下载code.zip 解压 把三个文件夹放到工程webapp下面, 把两个页面放到工程的resources目录下面 和jdbc.properties同级


实现登录功能


在vrd数据库中创建 user表 并且插入测试数据


create table user (id int primary key auto_increment, username varchar(20),


password varchar(20))charset=utf8;


insert into user values(null,‘admin’,‘admin’);


创建ShowLoginServlet ,留下doGet方法 ,在里面通过THUtils 把login.html页面返回给浏览器


创建LoginServlet,留下doPost方法,在方法里面先设置字符集,再获取传递过来的用户名和密码, 把用户名和密码封装到User实体类中(此时需要先创建User实体类和UserDao), 创建UserDao 并调用login方法,把封装好的user对象传递到方法中,返回值为User对象 通过User对象是否为null来判断是否登录成功,如果登录成功重定向到/HomeServlet(还没写), 如果登录失败 重定向到/ShowLoginServlet


在登录成功的时候用Session保存登录成功的User对象


实现记住用户名和密码, 在登录成功时并且判断是记住用户名和密码的时候把用户名和密码保存在cookie中并下发到浏览器


在ShowLoginServlet里面 取出Cookie中保存的用户名和密码 放到Context容器里面并显示到login.html页面中


Cookie和Session


为什么使用Cookie和Session?


浏览器和服务器之间数据传输遵循的是HTTP数据传输协议,此协议属于无状态协议(一次请求对应一次响应,服务器无法跟踪客户端的请求),通过Cookie服务器可以给客户端设置一个标识,设置完之后客户端之后的请求都会带着这个标识,从而识别客户端. 但是Cookie由于是明文保存在客户端的数据,可以被客户端伪造造成安全隐患, 这时Session的产生解决了此问题,Session基于Cookie实现,但是数据保存在了服务器端,这样保存的数据就不能被伪造从而提高了安全性


作用: Cookie和Session都是为了实现多个Servlet之间共享数据而存在的


Cookie:数据保存在客户端,类似于打孔式的会员卡,


保存时间: 默认保存在内存中浏览器关闭时就会被删除,如果设置了保存时间,数据会保存到磁盘中,时间到了后再销毁

保存数据大小: cookie保存的数据不能超过4k

只能保存字符串数据

应用场景: 长时间保存的数据

Session:数据保存在服务器,类似于银行卡


Session保存时间为半个小时, 这个时间可以修改但不建议,因为Session对象保存在服务器中会占用资源,Session不建议数据存储时间太久,而且Session的工作原理基于Cookie,在Cookie中保存了sessionId,并且是在内存中保存,浏览器关闭时sessionId就删除.

保存数据大小:没有限制

可以保存任意对象

应用场景: 记录登录状态

3. 实现首页页面显示


创建home.html页面 创建HomeServlet 留下doGet方法 方法中 显示home.html页面


在终端中创建tag表并添加数据


create table tag(id int primary key auto_increment,name varchar(10))charset=utf8;


insert into tag(name) values(‘手绘’),(‘次时代’),(‘雕刻’),(‘室内设计’),(‘产品设计’),(‘地图编辑’);


创建Tag实体类 有id和name属性 生成各种方法 , 创建TagDao ,在HomeServlet的doGet方法中创建TagDao 并调用里面的findAll方法 返回值是名为tags的List集合里面装的是Tag对象,把tags装进Context中


在home.html页面中 取出Context中的数据显示到页面中


添加搜索框并且添加各种样式


搜索框右侧超链接, 需要和是否登录建立关系 再次使用了th:if属性


目录
相关文章
|
6月前
|
Java
servlet生命周期面试题
servlet生命周期面试题
|
安全 Java 容器
你能证明Servlet线程不安全吗?
你能证明Servlet线程不安全吗?
Servlet学习(二):详述servlet的生命周期并动手试验
Servlet学习(二):详述servlet的生命周期并动手试验
125 0
Servlet学习(二):详述servlet的生命周期并动手试验
|
前端开发 Java 应用服务中间件
带你着手「Servlet」
有了前边文章为我们奠定下的网络基础,我们就可以开始学习Servlet的知识了,在部署一个Java的Servlet程序时,必须要有的开发工具是Tomcat,需要自行完成Tomcat的配置,并掌握maven仓库的配置方法,下边我们也会进行演示,这些具体的流程该如何来进行。
165 0
带你着手「Servlet」
|
API 容器
面试:请你谈谈Servlet的生命周期
面试:请你谈谈Servlet的生命周期
109 0
|
XML Java 数据格式
【JavaWeb】重新认识 Servlet 的初始化 [ 回顾 Servlet ]
了解【JavaWeb】重新认识 Servlet 的初始化 [ 回顾 Servlet ]。
162 0
【JavaWeb】重新认识 Servlet 的初始化 [ 回顾 Servlet ]
|
前端开发 JavaScript 小程序
如此详细的 Servlet 教程,不来看看么?
如此详细的 Servlet 教程,不来看看么?
113 0
如此详细的 Servlet 教程,不来看看么?
|
缓存 前端开发 JavaScript
为什么要放弃 JSP ?
以前的项目大多数都是Java程序猿又当爹又当妈,既搞前,又搞后端。 随着时代的发展,渐渐的许多大中小公司开始把前后端的界限分的越来越明确,前端工程师只负责前端的事情,后端工程师只管后端的事情。正所谓术业有专攻,一个人如果什么都会,那么每一样都很难达到精通。
|
Java 应用服务中间件 数据库
Servlet从了解到放弃(03)
Servlet从了解到放弃(03)
133 0
|
Oracle Java 关系型数据库
Servlet从了解到放弃(01)
Servlet从了解到放弃(01)
124 0