简介:
Web服务器收到客户端的http请求,会针对每一次请求,分别创建一个用于代表请求的request对象、和代表响应的response对象。 request和response对象即然代表请求和响应,那我们要获取客户机提交过来的数据,只需要找request对象就行了。要向容器输出数据,只需要找response对象就行了。
HttpServletResponse对象代表服务器的响应。这个对象中封装了向客户端发送数据、发送响应头,发送响应状态码的方法。
Response常见应用:
向客户端输出中文数据 用PrintWriter(字符流)发送数据:
示例:response.getWriter().write(“中国” );有没有乱码? 原因:以默认编码发送数据 ISO-8859-1(没有中国二字编码),此时会发生乱码 解决办法: 通过设置响应头告知客户端编码方式:
response.setHeader("content-type", "text/html;charset=UTF-8");//告知浏览器数据类型及编码
response.setCharacterEncoding("UTF-8");//告诉服务器应用使用UTF-8解析文本注意:不要忘记告诉客户端的编码方式。 由于经常改动编码,response提供了一种更简单的方式 response. setContentType(“text/html;charset=UTF-8”);其作用相当于以上两条代码。
发送http头,控制浏览器定时刷新网页 1、输出一个随机数,控制浏览器每2S刷新一次 2、利用Refresh刷新到其他组件。模拟注册页面,注册处理交由一个Servlet,在Servlet处理完成后,显示注册成功并转向主页。(meta也可实现)
通过response实现请求重定向。 请求重定向指:一个web资源收到客户端请求后,通知客户端去访问另外一个web资源,这称之为请求重定向。 地址栏会变,并发送2次请求,增加服务器负担 实现方式 response.sendRedirect() 同样是发送一个请求给服务器端资源,这个服务器资源会首先给客户端一个响应,客户端再根据这个响应当中所包含的地址,再次向服务器端发送一个请求,也就是说客户端跳转是两次请求,两次响应;
Request常用方法:
获得客户机请求参数(客户端提交的数据)
getParameter(name)方法
getParameterValues(String name)方法
1.各种表单输入项数据的获取 text、password、radio、checkbox、 file、select、textarea、 hidden、 image、button给js编程用 2. 2.请求参数的中文乱码问题 浏览器是什么编码就以什么编码传送数据 解决:告诉服务器要使用什么编码request.setCharacterEncoding(“UTF-8”);//POST有效 只针对post提交
new String(username.getBytes(“ISO-8859-1”),“UTF-8”);//GET方式 超链接:<a href=“/JavaWeb/RequestDemo2?name=中国”>cn</a>//GET方式 更改Tomcat的配置解决URL编码问题:<Connector URIEncoding=“UTF-8”/>
3.request对象实现请求转发:请求转发指一个web资源收到客户端请求后,通知服务器去调用另外一个web资源进行处理。 request对象提供了一个getRequestDispatcher方法,该方法返回一个RequestDispatcher对象,调用这个对象的forward方法可以实现请求转发。 request对象同时也是一个域对象,开发人员通过request对象在实现转发时,把数据通过request对象带给其它web资源处理。 setAttribute方法 getAttribute方法 removeAttribute方法
request和response的区别
request(转发):服务器端跳转;地址栏不发生变化(地址栏是初次发出的请求的地址)
response(重定向):客户端跳转;地址栏发生变化(地址栏为最后发出请求的地址)
request:转发web项目的根目录 response:重定向任何资源
request:/转发web项目的根目录 response:/重定向web应用的根目录