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
	}


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