请求和常用对象

本文深入探讨HTTP请求的各种方式,包括直接地址栏输入、超链接、form表单、AJAX等,并详细解释了请求转发与重定向的区别。此外,还介绍了HttpServletRequest与HttpServletResponse对象的使用,涵盖了获取请求信息、解决乱码问题、数据响应及状态码设置等关键操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

请求方式
1、地址栏输入 http//ip:port/path
2、超链接 尚学堂
3.form表单
4、ajax ajax(),get(),post().getJSON() 异步无刷新当前页面
5、请求转发 通过服务器内部将请求进行一次转发,可以请求到其他资源(后面讲)
6、重定向 服务器通过给定一个新资源的地址,响应会客户端后,客户端自动再次发送一个请求到新资源的地址处。(后面讲)
HttpServletRequest 对象
主要作用:接收客户端发过来的请求信息,
是ServletRequest的唯一子接口,唯一个子接口不将两个合并是因为现在主协议是HTTP但以后可能出现更多的协议
常用形式
常用方法
getRequestURL() 获取HTTP开始到?之间的完整URL
getRequestURI() 获取项目名到?之间的部分
getQueryString( ) 获取?到结尾的参数部分
getMethod() 获取客户端请求方式
getProtocol() 获取HTTP版本号
getContextPath() 获取站点名
获取请求头
getHeader(String) 获取单个请求头
EnumerationgetHeaderNames() 获取所有请求头的集合 枚举 集合
获取客户端请求参数
getParameter(name) 获取指定名称的参数
getParameterVaues(String name) 获取指定名称参数的所有值(多选项)
getParameterNames() 获取一个包含请求消息中所有参数名的Enumeration对象 (枚举)
getParameterMap() 返回一个保存了请求消息中的所有参数名称和值的Map对象
请求解决乱码
rep.setCharacterEncoding(“UTF-8”); 只针对post请求有效,必须在接受所有的数据之前设定
new String(rep.getParameter(name).getBytes(“ISO-8859-1”)); 通用,但只能一个一个转 Tomcat 8之后get不能用
Tomcat 7和7之前get和post都乱码 8和8之后get不再乱码
请求转发
是服务器的行为
从始至终只有一个请求发出
URL地址不会改变
request.getRequestDispatcher().forward()
request作为域对象
只在一次请求中有效
request.setAttribute():设置域对象内容
request.getAttribute(String name):获取域对象内容
resquest.removeAttribute(String name):删除域对象内容
HttpServletResponse 对象
Web服务器收到的客户端HTTP请求,每次请求会分别创建一个resquest对象一个response对象
HttpServletResponse主要功能用于服务器对客服端的请求进行响应将Web服务器处理后的结果返回给客户端
service()方法中形参接受的是HttpServletResponse接口 的实例化对象,对象中封装了向客户端发送数据、发送响应头。发送响应状态码的方法
常用方法
addHeader(String name,String value) 添加指定的键值到响应头信息中
containsHeader(String name) 判断响应的头部是否被设置
encodeURL(String URL) 编码指定的URL
sendError(int sc) 使用指定状态发送一个错误到客服端
setHeader(String name,String value) 设置指定响应头的值
setStatus(int sc) 给当前响应设置状态
setContenType(String ContentType) 设置响应的MIME状态
getWriter() 获取输出字符流
getOutputStream() 获取输出的字节流
数据响应
getWriter()字符流只响应字符流getOutputStream()获取字节流响应一切数据,响应回的数据被客户端浏览器解析。两者不能同时使用
PrintWriter out=resp.getWriter(); out.write(“

Hello World

”);
ServletOutputStream out = resp.getOutputStream(); out.write(

Hello World

.getBytes());
解决乱码
resp.setContentType(“text/html;charset=UTF-8”)
刷新和页面自动跳转
response.setHeader(“refresh”,“3;URL=ok.html”);
HTML中:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值