servlet (2) HttpServletRequest 和HttpServletResponse
2016-12-26 09:54
417 查看
一:HttpServletRequest
request对象是请求对象。请求一次就创建一个request对象,并且存储了请求的信息。所以在表单提交中,我们可以通过request对象获取用户提交的所有信息。详见下文。常用方法:
request.getContextPath() 获取根路径。
request.getParameter("name") 根据name获取value值
request.getParameterNames("name") 根据name获取一组值,如多选框
request.getRequestURL(); 获取请求的url
request.getRequestDispatcher("路径").forward(request,response) 转发是一次请求
request.getCookie();获取请求中的cookie
request.getSession(true)获取session。 默认参数为true表示如果没有获取到,则重新创建并返回;false如果没有获取到,返回null
前面说过servletcontext也可以传递数据,只不过servletcontext对象是wep项目的上下文环境,可以多个servlet之间传递数据,也可以跨用户传递数据,更能跨请求传递数据;而request对象则没有那么大功能,它不能跨请求传递数据,也不能跨用户传递数据,只能跨servlet传递数据
二:HttpServletResponse
response对象是相应对象。 可以说根request对象是一对,有请求就要有相应。常用方法
response.setContentType("text/html;charset=gb18030");设置相应编码,解决中文乱码问题
response.getWriter(); 获取响应流,用户打印在浏览器界面上
response.sendRedirect("路径) 重定向。重定向根转发的区别是:重定向是两次请求,转发是一次请求。
response.addCookie(cookie) 相应cookie到浏览器客户端
三:转发和重定向
1:转发是request对象实现:request.getRequestDispatcher("路径").forward(request,response)重定向是request对象实现的: response.sendRedirect("路径)
2:转发是一次请求,重定向是两次请求。所谓一次请求是从浏览器开始请求,服务器响应,到结束响应。
转发只能在一个web项目内跳转。转发过程中浏览器标题栏上面始终显示开始的地址。
重定向能在不同项目间跳转,从这个项目的一个界面可以跳转到另一个项目的一个界面,所以重定向的路径是有项目名称的,而转发路径不用带项目名称。由于重定向是两次请求所以浏览器标题栏上面的地址会改变。
3:转发的用处:传递数据,由于转发过程中传递了request,response对象,所以达到数据传递的作用;页面刷新问题,由于转发过程中浏览器的URL地址是开始时的,如果重新加载该页面的话,操作又会被重新调用。
重定向:不同web项目之间的跳转;解决重复重复刷新界面问题。
相关文章推荐
- HttpServletRequest与HttpServletResponse
- HttpServletResponse和HttpServletRequest常见应用
- HttpServletRequest & HttpServletResponse 中 Body 的获取
- HttpServletRequest和HttpServletResponse详解
- JAVAWEB开发之HttpServletResponse和HttpServletRequest详解(下)(各种乱码、验证码、重定向和转发)
- HttpServletRequestWrapper,HttpServletResponseWrapper在过滤器Filter中的使用
- HttpServletResponse.sendRedirect()方法/RequestDispatcher.forward()方法
- HttpServletRequest和HttpServletResponse详解
- HttpServletResponse.sendRedirect()方法/RequestDispatcher.forward()方法
- httpServletRequest.setCharacterEncoding 、httpServletResponse.setCharacterEncoding
- HttpServletRequest&&HttpServletResponse参数的接收和响应
- HttpServletRequest与HttpServletResponse
- (9)HttpServletResponse和HttpServletRequest对象
- HttpServletResponse.sendRedirect方法和RequestDispatcher.forward方法 血的教训
- 【Servlet】HttpServletRequest和HttpServletResponse
- HttpServletRequest 和 HttpServletResponse 对象
- Filter处理HttpServletRequest & HttpServletResponse 笔记
- HttpServletRequest和HttpServletResponse的方法总结
- HttpServletRequest与HttpServletResponse概要
- struts2学习笔记---获得HttpServletResponse或HttpServletRequest对象的几种方法