1.简介:
HttpServletRequest 是专用于HTTP协议的ServletRequest 子接口,它用于封装 HTTP 请求消息。
它在每次请求service()方法的时候,都会由容器创建一个新的对象,如图:
2.功能介绍:
2.1,接收用户请求参数:
String getParameter(String name):通过指定名称获取参数值;
String[] getParameterValues(String name):通过指定名称获取参数值数组,有可能一个名字对应多个值,例如表单中的多个复选框使用相同的name时;
Enumeration getParameterNames():获取所有参数的名字;
Map getParameterMap():获取所有参数对应的Map,其中key为参数名,value为参数值。
2.2,请求头信息解析:
2.3,获取请求头信息:
getRemoteAddr方法返回发出请求的客户机的IP地址,其格式为“192.168.0.3”这种形式的字符文本。(*)
getRemoteHost方法返回发出请求的客户机的完整主机名。
getRemotePort方法返回发出请求的客户机所使用的网络接口的端口号。
getLocalAddr方法返回WEB服务器上接收当前请求的网络接口的IP地址。
getLocalName方法返回WEB服务器上接收当前请求的网络接口的IP地址所对应的主机名。
getLocalPort方法返回WEB服务器上接收当前请求的网络接口的端口号。
getServerName方法返回当前请求所指向的主机名。
getServerPort方法返回当前请求所连接的服务器端口号。
getScheme方法返回请求的协议名,例如http、https或ftp。
getRequestURL方法返回客户端发出请求时的完整URL。
HttpServletResponse
1.简介:
Response是Servlet.service方法的一个参数,类型为javax.servlet.http.HttpServletResponse。在客户端发出每个请求时,服务器都会创建一个response对象,并传入给Servlet.service()方法。response对象是用来对客户端进行响应的,这说明在service()方法中使用response对象可以完成对客户端的响应工作。
2.功能介绍:
主要分为以下四种:
l 设置响应头信息;
l 发送状态码;
l 设置响应正文;
l 重定向;
下面分别详解这四个功能:
2.1,设置响应头信息:
可以使用response对象的setHeader()方法来设置响应头,使用该方法设置的响应头最终会发送给客户端浏览器。
比如:
response.setHeader(“content-type”, “text/html;charset=utf-8”):
设置content-type响应头,该头的作用是告诉浏览器响应内容为html类型,编码为utf-8。
而且同时会设置response的字符流编码为utf-8,即response.setCharaceterEncoding(“utf-8”);
2.2,response响应正文
response是响应对象,向客户端输出响应正文(响应体)可以使用response的响应流,repsonse一共提供了两个响应流对象:
比如:
PrintWriter out = response.getWriter():获取字符流;
ServletOutputStream out = response.getOutputStream():获取字节流;
2.3,设置状态码及其他方法
简单举几个设置响应码案例:
response.setContentType("text/html;charset=utf-8"):等同与调用response.setHeader(“content-type”, “text/html;charset=utf-8”);
response.setCharacterEncoding(“utf-8”):设置字符响应流的字符编码为utf-8;
response.setStatus(200):设置状态码;
2.4,设置重定向
说到重定向,我先说一下转发,然后你们再看对比:
2.4.1,请求转发
转发:将请求在服务器内部交给另一个组件再去执行,同时共享request中的连接。
2.4.2,重定向
重定向:就是将请求发送回浏览器。然后由浏览器再重新向服务器自动的发送一个请求。web资源受到客户端请求后,通知客户端去访问另外一个web资源
区别:
两者的区别就是转发是由服务器内部进行请求的,而重定向是浏览器请求后,返回一个状态码,浏览器自己再去请求返回的地址。
有热门推荐?
1.Java学习路线(基础,源码,项目,实战)2.2019年Java基础学习阶段最新学习视频(限时领取)3.2019年Java高级进阶学习视频(限时领取)4.最新学习资源,看者有份,快来领取吧!5.阿里资深技术专家教你如何快速成长为技术大牛!
关注Java编程指南公众号在后台回复:Java学习,我们为你整理了一份最新完整的学习线路,帮你快速成长。
点赞是最大的支持