1. response的应用

2)1)web容器会传入与web容器相关的HttpServletRequest和HttpServletResponse对象的实现
2)每次浏览器请求,web容器会创建新的请求和响应对象,这二个对象的生命周期仅限于web容器内
3)对于字节方式来说,输出数字,respnse会编查ISO8859-1编码表,将码表的中的数字对应的字符取出来显示,即遇数字转字符
4)如果要输出数字,提前将数字转化成字符串
5)对于字符方式来说,可以直接输出数字
6)将中文转成字节数组时,查UTF-8码表,如果不写的话,默认查ISO8859-1码表
7)以字符方式输出中文,提前设置编码方式;以字节方式输出中文,提前设置转化编码方式
字符:
response.getOutputStream().write("中国".getBytes("UTF-8"));
字节:
response.setContentType("text/html;charset=UTF-8");
response.getWriter().write("美国");
8)HTML中的所有<meta/>标签,类似于response.setHeader(),目的是通知浏览器以特定的方式显示页面的信息
如:
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
9)重定向是客户端和服务端的共同行为,
response.sendRedirect("/day06/message.html")其中/表示webapps目录

* response细节

1)以字符或字节方式输出内容的话,只能使用其中一种
2)响应头会以叠加的方式设置,在相同的情况下,后者起决定作用
3)在没有关闭流的情况下,web容器帮你自动关闭所有从response中取得IO流
`public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {

    //getOutputStream和getWriter方法分别用于得到输出二进制数据、输出文本数据的ServletOuputStream、Printwriter对象。

    ///response.getOutputStream().write("abc".getBytes());  

    //response.getWriter().write("ABC");

    response.setContentType("text/html;charset=UTF-8");
    response.setContentType("text/html;charset=GBK");
    PrintWriter pw = response.getWriter();
    pw.write("美国");
    pw.flush();
    pw.close();
}`

* request应用

1)表示web浏览器向web服务端的请求
2)url表示访问web应用的完整路径:http://localhost:8080/day/Demo1
uri表示访问web应用的资源路径:/day/Demo1
queryString表示?开头的参数;name=jack
pathInfo:路径之外的信息,如果没有,返回null

    `

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class Rdome1 extends HttpServlet {

/**
 * http://localhost:8080/day04/Rdome1?name=liwen回车
 * 
 * */

public void doGet(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {

    //方法返回客户端发出请求时的完整URL。
    String url = request.getRequestURL().toString();

    //方法返回请求行中的资源名部分。
    String uri = request.getRequestURI();
    //方法返回请求行中的参数部分。
    String query = request.getQueryString();
    //方法返回请求URL中的额外路径信息。额外路径信息是请求URL中的位于Servlet的路径之后和查询参数之前的内容,它以“/”开头。
    String pathInfo = request.getPathInfo();

    System.out.println("url=" + url);
    System.out.println("uri=" + uri);
    System.out.println("query=" + query);
    System.out.println("pathInfo=" + pathInfo);  

}

}
`