ServletResponse是一个接口,HttpServletResponse是其子接口 @Override public void service(ServletRequest request, ServletResponse response) throws ServletException, IOException { /* * ServletResponse是一个接口,用于向Client输出响应 * 1、若向客户端发送Binary Data,character Data,则使用ServletResponse中的getOutputStream()进行输出 * 2、若单独向客户端发送character Data,则使用ServletResponse的getWriter()方法 */ /* * 设置响应的字符集characterEncoding,必须在获取PrintWriter对象前设置 */ response.setCharacterEncoding("UTF-8");/*如果没有这个,则会出现中文乱码问题, 这句话跟下边response.setContentType("text/html;charset=UTF-8");中指定的字符集是等同的,二选一*/ /* * 设置响应response内容的MIME类型(ContentType) */ //response.setContentType("text/plain");//若这条语句生效,则输出全部是text文本,不会输出表单 response.setContentType("text/html;charset=UTF-8"); /* * 设置响应内容的长度setContentLength */ response.setContentLength(10000); /* * 测试上述第2点,PrintWriter比SevletOutputStream强大得多得多得多 */ PrintWriter printWriter = response.getWriter(); printWriter.println("I am a servletResponse");//输出I am a servletResponse /* * 输出一个form表单 */ printWriter.print("<!DOCTYPE HTML>"); printWriter.print("<html>"); printWriter.print("<head>"); printWriter.print("<meta charset=‘UTF-8‘>"); printWriter.print("</head>"); printWriter.print("<body>"); printWriter.print("<form action=‘request‘ method=‘post‘>"); printWriter.print("user: <input type=‘text‘ name=‘user‘/>"); printWriter.print("password: <input type=‘password‘ name=‘password‘ />"); printWriter.print("<input type=‘submit‘ value=‘submit‘/>"); printWriter.print("</form>"); printWriter.print("</body>"); printWriter.print("</html>"); /* * 输出一个中文试试会不会出现乱码? */ printWriter.println("你好!");/*出现了乱码,如果在获取PrintWriter对象前设置响应字符集, 就不会出现乱码(如上),默认是ISO-8859-1*/ /* * 获取响应response的字符集和MIME类型 */ printWriter.println("\r\n字符集:"+response.getCharacterEncoding()+" "+"MIME类型:"+response.getContentType()); printWriter.write("我在学习呢!");//输出“我在学习呢!”write()和print()没有多大差别 printWriter.println(123); /* * 测试上述第1点 * 1、PrintWriter 和 ServletOutputStream 是不能同时存在的! * 2、测试ServletOutputStream时把前面的PrintWriter给注释掉了 */ //ServletOutputStream requestOutputStream = response.getOutputStream(); //requestOutputStream.print("I am a servletOutputStream");//I am a servletOutputStream }
时间: 2024-10-11 04:49:52