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); }
}
`