Servlet获得Http请求,GET/POST

2025-12-21 01:47:04

Servlet获得Http请求,GET/POST

Servlet获得Http请求Http请求信息格式请求行(方法提交方式,URI,Http协议版本)GET方式提交:URI会包含查询字符串POST方式提交:URI不会包含查询字符串

方法/步骤

请求头

Host:IP地址:端口号

User-Agent:用户网页浏览器类型

Accept:请求提交的文件包含类型

Keep-Alive:保持连接时间

空行(空格)

消息体

POST提交方式特有,包含查询字符串

get与post的区别

提交数据类型

get:文本信息

post:文本信息,二进制文件

提交数据长度

get:不超过255个字符

post:无限制

提交数据可见性

get:作为URL地址的一部分,显示在浏览器地址栏

post:作为请求的消息体,不可见

提交数据缓存

get:缓存在浏览器URL历史状态中

post:不会被浏览器缓存

获得请求信息

请求头

getMethod():获得请求提交方法

getRequestURI():获得URI资源(仅端口号后面的部分内容,不包括协议名、主机名、端口号)

getRequestURL():获得URL资源

getQueryString():获得请求URL后面的查询字符串

getContextPath():获得请求URI资源上下文路径

getServletPath():获得Servlet的映射路径(如/ccb.do)

请求行

getHeader("参数"):获取请求行消息类型

User-Agent:浏览器版本

Host:访问IP地址

Keep-Alive:连接时间(生存时间)

消息体

getParameter(parameterName)获得表单参数的值

getParameterValues(parameterName)获得同名表单参数的值

文件上传

原理:将文件在表单中以二进制流方式装入提交信息传送至Web服务器

操作步骤

将表单传输方式设置为二进制流enctype="multipart/form-data"

HttpServletRequest对象调用getInputStream()获得请求输入流

Servlet解析流,通过HttpServletResponse的对象调用getOutputStream(),持久化为对应类型文件

请求转发

原理:客户端只发一次请求,服务器自动将新连接转接到用户想要的位置,最后断开连接

request.getRequestDispatcher("文件路径或URL")获得对话

转发

response.forward(ServletRequest,ServletResponse)转发完成服务器关闭连接,仅包含转接后内容

response.include(ServletRequest,ServletResponse)转发完成保持服务器连接,包含转接前和转接后内容

可使用request.setAttribute()和request.getAttribute()获得请求作用域

与请求重定向的区别

请求重定向使用HttpServletResponse的方法;内部转发使用HttpServletRequest的方法

请求重定向客户端向服务器发送了2次请求,由客户端实现; 内部转发客户端只发送1次请求,转发过程由服务器端实现

请求重定向URL地址显示的是第二次请求的地址,无法获得请求作用域;内部转发URL地址显示的是服务器URL地址,可获得请求作用域存取对象

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢