javaweb复习

一、Servlet:
概念:运行在服务器端的java小程序。
Servlet就是一个接口,定义了一java类被浏览器访问到(tomcat识别)的规则。将来我们自定义一个类,实现servlet接口,重写里面的方法。
执行原理:
1.当服务器接收到浏览器客户端的请求时,会解析url,获取访问的servlet的资源路径;
2.找到web.xml,看是否有对应的标签内容;
3.根据对应的标签内容找到对应的全类名;
4.tomcat会将字节码文件加载进内存,并创建其对象;
5.调用其方法。
Servlet的生命周期:
1.被创建,init()方法,只执行一次;
默认的情况是第一次访问servlet时创建,可在中内容修改为0或正整数,为服务器启动时创建。
2.提供服务,service(),执行多次;
3.被销毁,destroy(),在服务正常关闭之前。
Servlet3.0
@WebServlet(“资源路径”) 注解代替配置文件
Servlet体系结构
Servlet(接口)——》GenericServlet(抽象类)——》HttpServlet(抽象类)
二、Http
概念:超文本传输协议
特点:
1.基于tcp/ip的高级协议(三次握手,安全)
2.默认端口号80
3.基于请求/相应模式 :一次请求对应一次响应
4.无状态的:每次请求之间的数据相互独立,互不影响
5.历史版本区别:
1.0:每一次请求响应都会建立新的连接
1.1:复用用连接
当然还有其他的区别,这个是最大的一个区别。而且这两个版本,其实也就是短连接和长连接,看了一篇博文,受益匪浅,里面讲到,Http协议是没有长短连接之说的,其实本质上是说的TCP连接,因为HTTP协议说到底是应用层的协议,而TCP才是真正的传输层协议,只有负责传输的这一层才需要建立连接。拿在网上购物来说,HTTP协议是指的那个快递单,你寄件的时候填的单子就像是发了一个HTTP请求,等货物运到地方了,快递员会根据你发的请求把货物送给相应的收货人。而TCP协议就是中间运货的那个大货车,也可能是火车或者飞机,但不管是什么,它是负责运输的,因此必须要有路,不管是地上还是天上。那么这个路就是所谓的TCP连接,也就是一个双向的数据通道。

三、 Http请求的消息数据格式
1、请求行
请求方式 请求url 请求协议/版本
POST(GET) /login.form HTTP/1.1
HTTP中有7种请求方式,常用的有两种:GET\POST
GET:
1、请求的参数跟在url之后,也就是在请求行中
2、请求的url长度有限制
3、不太安全
POST:
1、请求的参数在请求体中
2、请求的url长度没有限制
3、相对安全
2、请求头
请求头名称:请求头值
常见的请求头
1.User-Agent:浏览器告诉服务器,访问的浏览器是什么。
2.Referer:http:/localhost/login.html
告诉服务器,访问来源。
作用:
1.防盗链
2.统计工作
3、请求空行
空行
4、请求体
POST就有请求体

四、Request和Response对象的原理:
1.这两个对象是服务器创建的,我们只是使它们。
2.request对象是来获取请求消息,response对象是来设置相应消息。
五、常用方法
1.获取请求参数的通用方法
a、String getParameter(String name):根据参数名称获取参数值
b、String[] getParameterValues(String name):根据参数名获取参数值的数组
c、getParameterNames():获取所有请求的参数名称
d、Map<String,String[]> getParameterMap();获取所有参数的map集合
六、request对象功能
1、解决中文乱码
req.setCharacterEncoding(“utf-8”);在首行配置。
2、请求转发:一种在服务器内部的资源跳转方式。
通过request对象获取请求转发对象,调用转发对象的forword方法。
req.getRequestDispatcher("/test2").forward(req,resp);
特点: 1.只请求了一次
2.浏览器路径不发生变化
3.只能转发到当前服务器的内部资源中

3、共享数据
域对象:一个有作用范围的对象,可以在范围内共享数据
request域:代表一次请求的范围,一般用于转发资源
4.获取ServletContent
七、BeanUtils工具类
用于封装javabean
1.javabean:标准的java类
a、类必须被public修饰
b、成员变量被private修饰
c、提供空参构造方法
d、有公共的getter\setter方法
2.常用方法:
a、setProperty()
b、getProperty()
c、populate()
八、 Http响应消息数据格式
服务器端发送给客户端的数据
数据格式:
1.响应行
协议/版本 响应状态码 状态码描述
HTTP/1.1 200 success
2.响应头
3.响应空行
4.响应体
九、Response对象
设置响应消息
**1.重定向
sendReidrect(“url”);
特点:1、地址栏发生变化
2、重定向可以访问其他站点的资源
3、重定向是两次请求,不能使用request对象来共享数据 **
2.解决字符乱码问题
约定请求头
setContentType(“text/html;charset=utf-8”);
十、servletContext对象
代表整个web应用,可以和服务器进行通信
功能:
1、获取mime类型
mime类型:在互联网通信中定义的一种文件类型
格式:大类型/小类型 (text/html)
获取方法 getMimeType()
2.域对象:共享所有用户的请求数据
3.获取文件的真实路径
十一、会话技术
1、cookie
概念:客户端会话技术,将数据保护到客户端
使用:
a.创建cookie对象,绑定数据
b.发送cookie对象 response.addCookie()
c.获取cookie,拿到数据 request.getCookie()
1.实现原理:基于服务器的response响应头set-cookie和request的请求头的cookie实现。
2、一次可不可以发送多个cookie?
可以,创建多个cookie对象,多次addcookie就可以
3.持久化存储?
setMaxAge,正数,设定事件过后,存储到内存中。
0,默认值。
负数:删除cookie信息。
4.cookie在tomcat8之前不能存中文,需要转码。
5.cookie的共享域,默认情况下,cookie不能共享,setpath方法可以设置cookie的共享范围。
6.特点和作用
a.cookie存储数据在客户端浏览器
b.浏览器对单个cookie的大小有限制(4kb),对同一个域名下的cookie数量也有限制(20个)
c.一般存储少量不太敏感的信息
d.在不登录的情况下,对用户完成识别
2、session
服务器端会话技术,在一次会话中多次请求间的共享数据,将数据保存在服务器端的对象中(HttpSession)
1.获取HttpSession对象
req.getSession()
2.使用HttpSession对象
getAttribute(),setAttribute()
原理:Session依赖于Cookie
当浏览器的cookie里没有jsessionid这个key,就会自动生成一个id,并setcooie,将jsessionid传给服务器,服务器响应就会带上这个cookie,来确保是同一个会话。
3.一般情况下,关闭浏览器后,Session就不会是同一个,如果想让它变成同一个,就需要在服务器new一个cookie,设置他的key为jsessionid,将req.getCookie中获取的cookie做value,同时给cookie设置一个时间,setMaxAge(),这样客户端关闭了也是相同的会话。
4.客户端不关闭,服务端关闭,两次获取的Session一样吗?
不一样,但是要确保数据不丢失。
Session的钝化:在服务器正常关闭之前,将Session对象序列化到硬盘上。
Session的活化:在服务器启动后,将Session文件转换为内存中的session对象。
这一点,tomcat已经帮我们做好。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值