目錄
上章講了ServletRequest是處理請求的,有請求就有響應,本章將講ServletResponse響應。
一、知識點
ServletResponse: 封裝了響應信息,如果想給用戶什麼響應,具體可以使用該接口的方法實現。
通過JEE API可以知道ServletResponse有哪些方法,常用的不多就getWriter,如下:
更多是使用子接口HttpServletResponse,其中sendRedirect() 方法很重要
二、例子
2.1 例1:在web上輸出“hello”
前面幾章的例子都是在ide中顯示輸出結果的,不可能讓用戶看ide吧,所以要把結果輸出給頁面,就用到了我們的主角 ServletResponse
把上章《hualinux servlet 2.13:ServletRequest 接口及其子接口》Login.java的service()方法修改如下:
//需要導入的類
import java.io.PrintWriter;
@Override
public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
PrintWriter out = servletResponse.getWriter();
out.println("hello");
}
重啓tomcat, 在打開的瀏覽器,隨順輸入一些東西,然後點“提交”會看到頁面有hello的字樣,再也不是空白頁面了^_^
2.2 例2:指定響應格式,如word文檔
我們要查看tomcat支持哪些MIME類型,可以在根目錄的conf-->web.xml,查找
<mime-mapping>
<extensi on>doc</extensi on>
<mime-type>application/msword</mime -type>
</mime-mapping><mime-mapping>
<extension>docm</extensi on>
<mime-type>application/vnd.msword.document.macroenabled.12</mime-type>
</mime- mapping><mime- mapping>
<extensi on>docx</extensi on>
<mime-type>application/vnd.openxmlformats-officedocument.wordprocessingml.document</mime-type>
</mime mapping>
我們就用上面第1個,知道類型爲“application/msword”,指定一下就OK了
我們在T1.java類的service方法中添加如下代碼
import java.io.PrintWriter;
@Override
public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
servletResponse.setCharacterEncoding("UTF-8");
servletResponse.setContentType("application/msword");
PrintWriter out = servletResponse.getWriter();
out.println("用servletResponse指定doc類型");
}
在idea打開的瀏覽器尾部添加t1,彈出下載對話框
下載用word打開,結果如下: