Java Web 学习笔记 10 HTTP协议、session、Bootstrap框架

一、HTTP协议

1)HTTP 是什么 ?
HTTP超文本传输协议 (HTTP-Hyper text transfer protocol),是一个属于应用层的面向对象的协议。它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展。它定义了浏览器和服务器之间进行数据交换时的数据格式:请求和响应的数据格式。
2)浏览器与服务器之间的通信过程要经历四个步骤:

在这里插入图片描述
说明:本次响应完成后,就关闭连接。下次再想请求时候,就建立另外的一个连接。多个连接间没有任何的关系。所以Http协议,又称为无状态的协议。
(GET/POST请求)
GET请求没有请求体 GET最大传输4K大小的数据
POST请求:如果form表单提交的方式为post,则表单项的数据以请求体的形式发送给服务器,没有大小限制
3)响应格式
(1)响应状态行:包括协议版本、响应状态码、响应状态信息
HTTP/1.1 200 OK协议版本号 响应状态码 响应状态说明
(2)响应消息头:响应头。封装了与当前响应相关的信息
(3)响应体。用来在浏览器窗口中显示的内容。例如:html中的内容。
最常见的响应状态码

代码表示说明
200成功服务器已成功处理了请求。通常,这表示服务器提供了请求的网页
302重定向代表让浏览器重新请求另一个资源
404找不到找不到请求的资源,但有时请求路径正确也返回404往往是由于Web应用有配置方面的问题,例如按照配置文件中指定的组件的全类名找不到指定的类
500错误服务器内部错误,例如服务器端程序运行时抛出异常

二、session

1、Session 概述

Session也是一个域对象,可以在自身的属性域中保存数据,在一定范围内共享。

2、Session的工作机制

1)并不是浏览器一访问服务器就创建Session对象,而是只有在服务器端调用request.getSession()方法时,Tomcat服务器才会“创建”Session对象。2)request.getSession()方法
(1)请求中没有携带任何有关Session的标识,往往就是浏览器第一次访问的时候。
(2)请求中没有携带任何有关Session的标识:Tomcat会创建一个Session对象,并创建一个特殊的Cookie,这个特殊Cookie的name属性是JSESSIONID,值是一个唯一值,而且是随机生成的。将这个JSESSIONID Cookie作为关联这个Session对象的标识写回浏览器。
(3)请求中携带了JSESSIONID时,Tomcat会在已经创建好的Session对象的集合中,查找匹配的Session对象。实现多个请求识别浏览器的身份的目的。
①能找到:返回找到的Session对象
②找不到:创建一个新的Session对象返回.通常由于服务器超时释放。
即:我们是通过JSESSIONID的值找到的session对象。
3)isNew()返回boolean标识当前Session对象是新创建的,还是原有的
4)getId()返回当前Session对象的JSESSIONID值

3、Session的时效管理

Session代表浏览器和服务器之间的一次会话,本来应该在会话开始时创建,会话结束时释放。但是浏览器关闭时,服务器根本检测不到,那就只能由服务器自己设置一个时间了。
[1]自然超时
<1>Tomcat配置文件中web.xml中有默认的超时时间的配置

<!-- 单位是分钟 --><session-config>	
	<session-timeout>30</session-timeout>
</session-config>

Session对象默认的有效时间是30分钟,指的并不是Session对象从创建开始30分钟后过期,而是从最后一次访问开始,30分钟后失效。
<2>调用Session对象的方法手动设置超时时间
session.setMaxInactiveInterval(10)。以秒为单位
[2]手动调用invalidate()方法直接失效

4、项目阶段

登录成功,记录浏览器信息
1)显示登录用户

//将用户信息保存到Session对象中,到JSP页面中就可以通过Session隐含对象将数据读取出来
HttpSession session = request.getSession();
session.setAttribute("loginUser", userName);

2)退出操作

String method = request.getParameter("method");   
	if("logout".equals(method)){    
		HttpSession session = request.getSession();
		session.invalidate();   
		response.sendRedirect(request.getContextPath()+"/index.jsp");    
		return;
	}

三、Bootstrap框架及其使用

下载:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
下载安装包,解压添加至eclipse即可使用:

在这里插入图片描述

©️2020 CSDN 皮肤主题: 1024 设计师:上身试试 返回首页