Servlet-02

来源:互联网 发布:网络黑名单 编辑:程序博客网 时间:2024/06/05 09:48

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");
1 0