鱼C论坛

 找回密码
 立即注册
查看: 2098|回复: 1

[学习笔记] Jsp&Servlet07

[复制链接]
发表于 2017-7-18 10:45:39 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

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

评分

参与人数 1鱼币 +2 收起 理由
小甲鱼 + 2

查看全部评分

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2017-7-18 10:46:39 | 显示全部楼层
fighting~~!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-19 13:33

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表