目录
上章讲了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打开,结果如下: