Servlet学习笔记(HttpServletRequest对象)
2016-07-20 21:48
253 查看
HttpServletRequest
对象表示浏览器的请求(http请求), 当web 服务器得到该请求后,会把请求信息封装成一个HttpServletRequest 对象。该对象有以下一些重要的方法:
(1)getRequestURL方法返回客户端发出请求时的完整URL。
(2)getRequestURI方法返回请求行中的资源名部分。
(3)getQueryString 方法返回请求行中的参数部分(参数名+值)。
该函数可以获取请求部分的数据 比如:
http://localhost/web名?username=abc&pwd=123
request.getQueryString();
就会得到 username=abc&pwd=123
(4)getRemoteAddr方法返回发出请求的客户机的IP地址
(5)getRemoteHost方法返回发出请求的客户机的完整主机名
(6)getRemotePort方法返回客户机所使用的网络端口号
客户机的端口号是随机选择的,web服务器的端口号是一定的
关于请求转发
requeset.getRequestDispatcher(资源地址).forward(request,response); /*资源地址:不需要项目名。因为它只是在WEB服务器内部转发。*/
Request中的Attribute在“一次请求”中有效。
一次请求:没有返回到浏览器,就为一次请求。
请求转发时序图:
使用 forward 不能转发到 该web应用外的 url
因为 forward 是发生在web服务器,所以 Servlet1 和 Servlet 2使用的是用一个request 和response.
使用sendRedirect() 方法不能通过request.setAttribute() 把 属性传递给下一个Servlet
sendRedirect()和request.getRequestDispatcher().forward(request,response)的区别
(1)sendRedirect() 为重定向 forward() 为转向(2)实际发生的位置不一样,sendRedirect 发生 浏览器,forward 发生 web服务器
(3)用法不一样:
/*forward用法*/ request.getRequestDispatcher(“/资源URI”).forward(request,response) /*sendRedirect用法*/ response.sendRedirect(“/web应用/资源URI”);
(4)能够去URL 范围不一样
sendRedirect 可以去 外边URL
forward 只能去当前的WEB应用的资源
关于“一次请求”
只要没有停止,也没有回到浏览器重定向,就算一次,如下图所示:如果转发多次,我们的浏览器地址栏,保留的是第一次 转向的那个Servlet Url(因为转发发生在web服务器,并没有将访问资源重定向,所以浏览器的地址栏并没有改变)
相关文章推荐
- Java Servlet生成JSON格式数据并用jQuery显示的方法
- jsp和servlet中实现页面跳转的方式实例总结
- java servlet结合mysql搭建java web开发环境
- Servlet与JSP间的两种传值情况
- JSP、Servlet中get请求和post请求的区别总结
- jsp和servlet的区别探讨
- Struts2访问servlet分享
- java中Servlet处理乱码的方法
- Servlet 过滤器详细介绍
- JSP+Servlet+JavaBean实现登录网页实例详解
- servlet中session简介和使用例子
- 在Jsp Servlet中页面重新定向总汇
- JSP使用Servlet作为控制器实现MVC模式实例详解
- JSP使用Servlet过滤器进行身份验证的方法
- Servlet动态网页技术详解
- jsp和servlet操作mysql中文乱码问题的解决办法
- 基于jsp+servlet实现的简单博客系统实例(附源码)
- js调用后台servlet方法实例
- 利用JQuery和Servlet实现跨域提交请求示例分享