学习地址:
撩课-JavaWeb系列1之基础语法-前端基础
撩课-JavaWeb系列2之XML
撩课-JavaWeb系列3之MySQL
撩课-JavaWeb系列4之JDBC
撩课-JavaWeb系列5之web服务器-idea
课程下载地址:
链接:https://pan.baidu.com/s/1qilY0kIpgnxuLELxjNIQxw 提取码:4s9t
一、response响应过程
牢记响应的流程图
在去发送一个请求时,
会找到tomcat引擎
引擎会找到对应的web应用
并且会创建request对象
和response对象
找到应用后,
会执行应用的web.xml
再去根据url-patten的内容
创建Servlet对象
并且会调用Servlet对象的service方法,
并且把创建的request对象和response对象
传入到方法当中
拿到response对象后,
自己可以往响应当中
写入一些自己给客户端的内容
通过response.getwrite().wirte("写的内容")
方法进行写入
写的内容,
是存到一个response缓冲区当中
当方法执行结束之后,
tomcat就会从response缓冲区
当中取出数据
取出你的数据同时,
它自己还会自动的往里面
添加一些服务器相关的信息进去
所以响应给浏览器时,
可以看到除了自己写的内容,
还会有一些服务器相关的信息
image.png
二、学习响应
通过response设置响应行,响应头 ,响应体
设置响应行
response.setState(Int code)
设置响应头
add代表添加新的内容
addHeader(String name,String value)
addIntHeader(String name,int value)
addDateHeader(String name,date)
set代表设置,已经存在的内容
setHeader(String name,String value)
setIntHeader(String name,int value)
setDateHeader(String name,Date value)
重定向
1.什么是重定向?
2.重定向的状态码?
3.重定向特点?
4.定时刷新重定向
什么是重定向
到服务器当中去找servlet1
servlet1当中没有这个资源,告诉你去找servlet2
再去发送一个请求到servlet2
状态码
302
特点
要访问两次服务器
第一次访问是人为的去访问
第二次是自动的访问
浏览器地址栏已经发生变化
设置重定向
设置响应码
设置响应头
封装的重写向
每次都要写状态码,和location比较麻烦
就给封装了一个方法
response.sendRedirect("/bei/servlet2")
定时刷新重定向
response.setHeader("refresh","5;url=http://www.baidu.com")
5代表5秒
url的值为5秒后要去跳转的地址
设置响应体
1.通过write方法来写
2.通过OutPutStream来写
1.通过write方法来写
response.getwrite().wirte(“要写的内容”)
默认情况下写的中文内容会乱码
把写的内容存到缓存区中使用的是ISO8859
ISO8859不支持中文,所以会乱码
在存之前设置可以设置存放的编码
response.setCharacterEncoding("UTF-8")
告知浏览器使用的是utf-8编码
response.setHeader("Content-Type", "text/html;charset=UTF-8");
上面代码只需要写第二句就行,
tomcat看到设置了为utf-8的编码,
它在存在的时候也会使用utf-8的编码
使用封装写法
response.setContentType("text/html;charset=UTF-8");
2.通过OutPutStream来写
FileInputSteam
read方法读取一个字节
read(byte[] b)
一次读取多个字节,并存放到数组b中
上面是一次一滴一滴给你,这种是一次装一水桶再给你
读取全部的数据
FileOutputSteam
write()
一次性写一个字符
write(buffer)
一个性写多个字符
write(buffer,0,len)
一次性写指定个数的字符
response注意点
getWrite()和getOutputSteam不能同时调用
image.png
博文全套 视频讲解 点击以下链接查看
https://study.163.com/course/courseMain.htm?courseId=1005981003&share=2&shareId=1028240359
网友评论