| 
 | 
 
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册  
 
x
 
服务器处理请求流程: 
        服务器每次收到请求时,都会为这个请求开辟一个新的线程 
        服务器会把客户端的请求数据封装到request对象中,request就是请求数据的载体 
        服务器还会创建response对象,这个对象与客户端连接在一起,他可以用来向客户端发送响应 
         
接口 HttpServletResponse 
Response 
        其类型为HttpServletResponse 
        区别: 
                ServletResponse---与协议无关的类型 
                HttpServletResponse----与http协议相关的类型 
         
        Http协议: 
        200 ok 
        Content-type:text/html;charset=utf-8 
        … 
        <html> 
        Fafas 
        Fasfas 
        Assfa 
        af 
        </html> 
        200表示成功  302表示重定向 404客户端错误,访问资源不存在  500服务器端错误 
         
        成员方法: 
        状态码: 
                        sendError(int sc)----发送错误状态代码,例如404 500 
                        sendError(int sc,String msg)----发送错误状态码,还可以带一个错误信息 
                        setStatus(int sc)---- 发送成功的状态码,也可以发送302 
                可以用doget()中参数HttpServletResponse直接调用 
         
        响应头:Context-type、  Refresh、 Location等等 
                        头就是一个键值对,存在一个头多个值 
                        setHeader(String name,String value) :适用于单值的响应头 
                        addHeader(String name,String value):适用于多值的响应头 
                        getHeader(String name): 获取具有给定名称的响应头的值 
                         
                        setIntHeader(String name,int value): 适用于单值的Int类型的响应头 
                        addIntHeader(String name,int value):适用于多值的int类型的响应头 
                         
                        setDateHeader(String name,long value):适用于单值的毫秒类型的响应头 
                        addDateHeader(String name,long value):适用于多值的毫秒类型的响应头 
         
        重定向:302 
                        发送302,且必须设置Location(重定向地址) 
                        response.setHeader("Location", "/day10/CServlet"); 
                        response.setStatus(302); 
         
        定时刷新: 
                        URL=day10/Eservlet 
                         day10是项目名  Eservlet是类路径 加在一起为URI 
                        /* 
                                         * 下面是用来发送响应体 
                                         */ 
                                        PrintWriter writer=response.getWriter(); 
                                        writer.print("欢迎XXX登陆~5秒后开始跳转~"); 
                                         
                                        /* 
                                         * 设置名为Refresh响应头 
                                         */ 
                                        response.setHeader("Refresh", "5;URL=/day10/EServlet"); 
                         
        禁用浏览器缓存: 
                        Cache-Control    pragma  expires这三个头适用于所有HTTP协议版本 
                        response.setHeader("Cache-Control", "no-cache"); 缓存控制,不缓存 
                                        response.setHeader("pragma", "no-cache");  
                                        response.setDateHeader("expires", -1);缓存失效日期 
                                        response.getWriter().print("Hello world"); 
        <meta>标签可以代替响应头<meta http-equiv="content-type"  content="text/html;charset=utf-8"> 
         
        响应体: 
                        通常是html,也可以是图片,显示一些文字 
                Response的两个流: 
                        ServletOutputStream类中getOutputStream()  用来向客户端发送字节数据 
                        PrintWriter类中的getWriter() 用来向客户端发送字符数据 需要设置编码 
                        两个流不能同时使用   如果同时使用两个流,必然出现错误 
                          
                        字节流是万能的,可以把字符流转成字节流 
                        String s="HEllo outputStream"; 
                                        byte[] bytes=s.getBytes(); 
                                        response.getOutputStream().write(bytes); 
                        使用IO流发图片 导入第三方类库  commons-io-14 
                        String path="D:/111/1.jpg"; 
                                        FileInputStream in=new FileInputStream(path); 
                                        byte[] bytess=IOUtils.toByteArray(in);//读取输入流的字节到字节数组中 
                                        response.getOutputStream().write(bytess); 
        快捷重定向方法 
                        response.sendRedirect("http://www.baidu.com"); 
 |   
 
评分
- 
查看全部评分
 
 
 
 
 
 |