黑马程序员技术交流社区
标题:
响应&&request
[打印本页]
作者:
卿心帝王
时间:
2019-8-30 15:36
标题:
响应&&request
响应状态码:服务器告诉浏览器本次请求和响应的状态
状态码:都是三位数
分类:
1xx:服务器接收客户端消息,但没有接收完成,等待一段时间后发送1xx状态码
2xx:成功。代表(状态码):200
3xx:重定向。代表:302,304(访问缓存){get请求会出现缓存 图片 js文件}
4xx:客户端错误: 400:坏的请求(框架)
403:权限不足
404(请求路径没有对应资源)常见问题之一
405(请求方式没有对应的doGet或doPost方法)
5xx:服务器端错误:500(服务器内部资源错误)常见问题之一(代码写错)
request的作用
1.获取请求参数
getMethod(0
getContextPath()
getRequestUri()
getRequestUrl()
getHeader()
getParameter()
getParameterValues()
getParameterMap()
setCharacterEncoding()
2.作为域对象进行数据共享(只能请求转发时使用!!!!)
setAttribute()
getAttribute()
removeAttribute()
3.进行页面的请求转发
request.getRequestDispatcher("路径").forward(request,response)
请求转发的特点
1.地址栏不发生改变
2.只能访问服务器内部资源(包括/WEB-INF)
3.只有一次请求
注意事项:
a->b a是post b是post
a->web-inf中内容
req.getRequestDispatcher("/WEB-INF/hehe.jsp").forward(req,resp);
注意:/WEB-INF/只能通过请求转发访问
BeanUtils
把服务器接收的数据自动封装到一个实体类中
1.获取浏览器传到后台请求参数
Map<String,String[]> map = request.getParameterMap();
2.创建一个空的对象
User u = new User();
3.使用BeanUtils进行封装
BeanUtils.populate(u,map)
重定向和请求转发区别:
请求转发: 一次请求 重定向 :二次请求
请求转发:地址栏不变 重定向:地址栏改变
请求转发访问服务器内部资源 重定向:访问外部和服务器内部资源(不能访问/web-inf下的资源)
请求转发:在request域中数据共享 重定向 :不能在request域中谁共享
Respones:
响应头和请求头的区别
请求头: 发送请求时浏览器携带到服务器的数据
响应头: 服务器处理完请求后,将数据回写时携带回浏览器的数据
常见的相应头
content-type 设置响应编码,设置内容mime类型
content-disposition 场景:下载
response
1.往浏览器回写数据
response.getWriter().write()
response.getOutputStream().write()
2.控制页面跳转
response.sendRedirect()
3.解决响应乱码
字符流
response.setContentType("text/html;charset=utf-8");
字节流
response.setContentType("text/html;charset=utf-8");
response.getOutputStream().write(字符串.getBytes("utf-8"))
response.setContentType("text/html;charset=utf-8")作用:
1.告诉浏览器以utf-8的形式去接收数据
2.把数据写回到浏览器的时候用utf-8的格式输出
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2