java——Servlet的request和response

request

当tomcat解析用户的请求时会封装成ServletRequest对象;request包含了用户(浏览器)的信息和用户传过来的数据。
servlet用request来获取请求数据
继承体系:(一般使用HttpServletRequest)
在这里插入图片描述

Controller层处理用户请求时步骤一般为

  1. 乱码处理
  2. 获取数据
  3. 封装对象
  4. 逻辑处理
  5. 得到处理结果
  6. 返回结果给前端

请求数据分为3部分:

请求行:(GET /request-demo/req1?username=zhangsan HTTP/1.1 )

String getMethod():获取请求方式: GET
String getContextPath():获取虚拟目录(项目访问路径): /request-demo
StringBuffer getRequestURL(): 获取URL(统一资源定位符):http://localhost:8080/request-demo/req1
String getRequestURI():获取URI(统一资源标识符): /request-demo/req1
String getQueryString():获取请求参数(GET方式): username=zhangsan&password=123

请求头:(User-Agent: Mozilla/5.0 Chrome/91.0.4472.106)

String getHeader(String name):根据请求头名称,获取值

请求体:(username=superbaby&password=123)

ServletInputStream getInputStream():获取字节输入流
BufferedReader getReader():获取字符输入流

request获取参数

Map<String, String[ ]> getParameterMap():获取所有参数Map集合
String[ ] getParameterValues(String name) :根据名称获取参数值(数组)
String getParameter(String name):根据名称获取参数值(单个值)

request处理参数乱码

req.setCharacterEncoding(“UTF-8");

request转发

客户端发起一个请求然后服务器接收后把请求继续向后传递给目标页面
一种在服务器内部的资源跳转方式
req.getRequestDispatcher(“资源B路径”).forward(req,resp);

request转发时共享数据

void setAttribute(String name, Object o):存储数据到 request域中
Object getAttribute(String name):根据 key,获取值
void removeAttribute(String name):根据 key,删除该键值对

response

servlet使用 response对象来设置响应数据
继承体系:(一般使用httpservletresponse)
在这里插入图片描述

响应数据分为3部分:

响应行:(HTTP/1.1 200 OK )

void setStatus(int sc) :设置响应状态码

响应头:(content-type: text / html;)

void setHeader(String name, String value) :设置响应头键值对

响应体:(head> )

PrintWriter getWriter():获取字符输出流
ServletOutputStream getOutputStream():获取字节输出流

response重定向

客户端发送一个请求然后服务器接收后回送给客户端一个目标地址然后客户端接收后继续发送下一个请求前往目标页面
一种资源跳转方式
resp.setStatus(302);
resp.setHeader(“location”,“资源B的路径");
resp.sendRedirect(“资源B的路径”);

servlet三大作用域

因为会影响服务器的内存,所以能用小的不用大的:Request < Session < ServletContext
常见的使用场景:
Request:一次查询的结果。例如,Servlet 转发 JSP。
Session:存放当前会话的私有数据。例如,用户登录状态,验证码,购物车。
application(ServletContext):(tomcat启动时创建,tomcat关闭时销毁,整个web的生命周期只有一个)若需要所有的 Servlet 都能访问到,才使用这个域对象。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值