Java_Web------ServletResponset实现

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
	}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章