IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> 博客项目总结 -> 正文阅读

[Java知识库]博客项目总结


一、登录

前端输入用户名和密码点击登录,向服务器发送请求,Tomcat将将根据解析成一个HTTPServletRequest对象,根据请求信息定位到一个具体的Servlet,在Servlet层利用getParameter来获取前端数据(用户名和密码),获取到之后在数据库中查找此用户是否存在,然后判断它的密码是否正确,都正确了才能登陆成功,在dao层(数据库访问对象)中实现将用户名和密码传入dao层,根据sql语句在数据库查询,如果不存在或者密码错误都将登陆失败

二、如何维持登录

登录成功后,后端就会收到登录请求,就会自动创建一个session会话,用session里的setAttribute来保存登录用户信息,sessionId为key,HTTPSession为value,然后session会向浏览器返回一个set-cookie,浏览器就将里面的内容保存到本地,在下次访问浏览器时,会在请求头自动带上之前保存的cookie,利用HttpServletRequset的方法getSission()来获取当前会话,达到维持登录的状态

三、博客列表页

1.博客列表页的显示

登录进去后,然后在数据库查询都有哪些博客,显示在博客列表页,然后检查当前页面是不是已登录(用于注销后的情况),判断session存不存在,如果存在,先利用getSession获得当前会话,利用session中的getAttribute方法来获取指定对象,如果存在就说明已登录,如果比存在,说明未登录,只有已登录状态,才能发表和删除博客,不然只能看博客

2.博客列表页的构造

博客列表页的构造是利用Thymeleaf模板渲染来完成的,使用Thymeleaf模板渲染需要用到模板引擎TemplateEngine,先利用WebContext将要替换的数据收集起来传给引擎(TemplateEngine),然后利用WebContext中的setVariable设置键值对,对应前端的模板数据(特殊符号th:each="${替换数据}")进行替换,然后需要替换的数据就都存在WebContext中,最后利用TempaleEngine中的processs方法来进行渲染(某个页面),这样就把前后端的数据结合到了一起,达成动态效果

四、发表博客,

与之前一样,首先先检查是不是登录状态,如果已登录,利用getParameter获取前端数据,有主题和正文,然后将这篇博客插入数据库的博客表中,最后加一个sendRedirect重定向到博客列表页(只有主题和摘要)

五、查看博客(详细内容)

前端是由点击这个博客的主题来向后端传送数据的,还是利用getParameter来获取这篇博客对应编号,然后在数据库查找,如果博客存在,也是利用模板渲染将这篇博客详细信息返回给前端。

六、删除博客

先检查是否登录状态,前端点击删除,向后端传一个博客Id和当前用户Id,检查此篇博客作者是不是当前登录用户,如果是,删除数据库数据,如果不是,返回错误信息sendError,跳转到博客列表页

七、注销

如果是未登录状态,点击注销,检查当前会话是否存在,如果不存在,返回错误信息,存在,直接将当前用户从会话删除利用session中的removeAttribute删除会话中的用户,直接重定向到博客列表页,如果不登录就只能单纯的看博客了

八、注册

和前面一样,从前端获取数据,然后在数据库查询此用户名是否存在,如果存在,返回错误信息,如果不存在,就在数据库添加此用户信息,注册成功

九、模板设计

实现模板文件

通过Thymeleaf提供的特殊符号th:each="${}" 其中each表示循环变量,th:each会遍历${} ,每取出一个元素,就创建一个标签

项目中考点

一、Tomcat是什么?

Tomcat是一个应用程序,核心工作是处理Http请求和响应(怎么处理–通过操作系统内核中的网络协议栈)
Tomcat在收到请求时,把这个请求解析成一个HTTPServletRequest对象,Tomcat根据请求信息会定位到一个具体的Servlet以及哪个方法,然后在这个Servlet层进行后端处理

二、前端和后端怎么建立联系的?

在后端Servlet,外层有一个注解@WebServlet里面的参数是一个相对路径,Tomcat收到请求中带的这个路径就会触发这个类的方法

三、post方法和get方法有什么区别?

相同:没有实质区别 ,GET 和 POST 只是 HTTP 协议中两种请求方式,
无论 GET 还是 POST,用的都是同一个传输层协议,所以在传输上,没有区别
不同:Get方法会将提交的数据放在URL中,即以明文的方式传递参数数,所以不安全
Post方法会将提交的数据放在请求体中,所以是安全的
Get方法传递的数据量较小,最大不超过2KB,URL长度受限
Post方法传递的数据量较大,一般不受限制,大小取决于服务器
GET请求可以直接在地址栏输入url,但POST请求只能通过表单

四、PrapareStatement和statement有什么区别?

·PreparedStatement接口继承Statement
创建时的区别
·PreparedStatement有预编译的过程,已经绑定sql,之后无论执行多少遍,都不会再去进行编译,而 statement 不同,如果执行多变,则相应的就要编译多少遍sql,所以从这点看,preStatement 的效率会比 Statement要高一些。
安全性问题
preStatement是预编译的,所以可以有效的防止 SQL注入等问题。所以 preStatement 的安全性 比 Statement 高

五、HttpServlet和Servlet的关系

HttpServlet是Servlet接口的一个实现类,主要负责的是http请求处理,覆写get,post或其他方法

六、Servlet是什么?有什么作用?

Servlet是运行在web服务器或应用服务器上的程序,作为客户端和服务器上的数据库或应用程序的中间层
作用:用于交互式的浏览和修改数据,生成动态web内容

七、Servlet生命周期?

调用init()初始化(只在第一次创建Servlet时调用一次)
调用service()处理客户端请求
调用destroy()方法终止(只在生命周期结束时调用一次)
最后由JVM的垃圾回收器进行垃圾回收

八、cookie

1.cookie是什么?
cookies是存储在客户端计算机上的文本文件,并保留了用户的各种跟踪信息

2.cookie工作原理
客户端向服务器发起登录请求,服务器脚本向浏览器发送一组Cookies,浏览器将Cookies中的信息保存到本地,当下一次浏览器向服务器发送请求,浏览器会把Cookies保存的信息发给服务器,服务器借此来识别用户

3.cookis的作用
记录用户ID
记录用户密码
记录用户浏览信息

4.cookie的构成
Set-cookie头包含一个名称值对,一个GMT日期,一个路径和一个域(名称和值会被URL编码)
servlet操作cookie常见方法 getName getValue setPath getPath等

九、session

1.session是什么?
session是存储在服务器上的文本文件,并保留了用户的各种跟踪信息

servlet操作session的常见方法 getSession getAttribute setAttribute removeAttribute 等

2.判断会话存在的依据
SessionId,如果没有,创建sessionId,放入哈希表,同时把sessionId通过set-cookie返回给浏览器,客户端的后续请求,浏览器都会自动携带该Id,达到状态保持的效果

十、cookie和session的区别?

1.cookie一文本文件格式存储在浏览器中,而session存储在服务端
2.每次发起HTTP请求,都要携带cookie信息,一般大小都有限制,以防止增加网络压力,一般不超过4k
3.客户可以轻松访问cookie但无法轻松访问session,因为cookie对客户端是可见的,session在服务器上,对客户端是透明的,所以session方案更安全,
4.cookie中只保存字符串(键值对),session中能够存储任何类型数据

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2021-08-22 13:25:07  更:2021-08-22 13:25:40 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 8:51:38-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码