1.在doGet()的respon 中添加响应头,3秒刷新,并跳转到其他页面
response.setContentType("text/html;charset=utf-8");
// 添加响应头=> Refresh
response.addHeader("Refresh", "3;url=http://localhost:8080");
// 让页面有倒计时的效果
response.getWriter().write("您将在<span id='one'>3</span>秒后跳转!" +
"<script type='text/javaScript' >" +
"var span = document.getElementById('one');" +
"var i =3;" +
"function fun(){" +
"i--;" +
"if(i>=0){" +
"span.innerHTML = i;" +
"}" +
"}" +
"window.setInterval(fun,1000);" +
"</script>");
注意:在java代码中书写 script 太麻烦,太尴尬了;
2.防止中文乱码
- 字节流的处理
//控制解码码表
response.setHeader("Content-Type", "text/html;charset=GBK");
//控制编码码表
response.getOutputStream().write("尽头".getBytes("GBK"));
- 字符流的处理
1.
//设置解码码表
response.setHeader("Content-Type", "text/html;charset=utf-8");
//设置编码mabiao
response.setCharacterEncoding("gbk");
2.
response.setContentType("text/html;charset=utf-8");
response.getWriter().write("典当");
结论:
1.的两行,可以用2.的 一行来代替
response.setContentType(); 设置解码格式, 同时自动设置编码码表
建议:
1 输出中文建议使用字符流
2 解决字符流乱码 使用setContentType放可以同时设置编码解码两端的码表.
3 注意: 码表的设置一定放到输出之前
4 注意: 字符流与字节流不能同时使用
3. WEB-INF下 的文件的 查看 和下载
- 查看图片的操作案例:(和听音乐代码差不多)
public class FServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// 1.得到输入流
InputStream is = getServletContext().getResourceAsStream(
"/WEB-INF/aa.jpg");
// 2.得到输出流
OutputStream so = response.getOutputStream();
// 3.对接
byte[] buffer = new byte[1024];
int len = 0;
while ((len = is.read(buffer)) != -1) {
so.write(buffer, 0, len);
so.flush();
}
so.close();
is.close();
}
}
- 下载文件(zip,exe,mp3,mp4……..)
public class GServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// 设置响应正文类型
String type = getServletContext().getMimeType("sss.zip");
response.setContentType(type);
// 设置相应头,提示用户保存下载名称
response.setHeader("Content-Disposition",
"attachment;filename=apache-tomcat-7.0.42-src.zip");
InputStream is = getServletContext().getResourceAsStream(
"WEB-INF/apache-tomcat-7.0.42-src.zip");
OutputStream os = response.getOutputStream();
byte[] buffer = new byte[1024];
int len = 0;
while ((len = is.read(buffer)) != -1) {
os.write(buffer, 0, len);
os.flush();
}
os.close();
is.close();
}
}
注意:
1.设置响应正文类型,
String type = getServletContext().getMimeType("sss.zip");
response.setContentType(type);
2.提示用户下载保存名称
response.setHeader("Content-Disposition",
"attachment;filename=apache-tomcat-7.0.42-src.zip");