javawebday22(request response)

/*
 *1、General--》workspace-》UTF-8
 *  任何项目(项目影响文件)都是UTF-8 编码方式 
 *2、General-》Editors-->Associations--》JSP->MyEclipse JSP Editor 运行快
 *3、搜索jsp --》编码方式改成utf-8
 *4、java--》Installed JRES--》添加
 *5*6、取出MyEclipse自带的tomcat
 *7、General--》Startup and Shutdown--》Myeclipse Derby
 *
 *如果是win7系统
 *C:\windows\Fonts -》Courier New显示 window-》General-》Apperance-》 fonts--》 basic Text FONTs
 *
 *浏览器与对象无缘(收发HTTP请求) 由服务器创建对象
 *服务器处理请求的流程
 *  服务器每次收到请求时 都会为这个请求开辟一个新的线程
 *  服务器会把客户端的请求数据封装到request对象中 request就是请求数据的载体(袋子)
 *  服务器还会创建response对象 这个对象与客户端连接在一起 可以用来向客户端发送响应(手机)
 *
 *200 ok
 *状态头
 *Content-Type:text/html;charset=utf-8
 *Content-Type:text/html;charset=gbk
 *
 *response:器类型为HttpServletResponse
 *  ServletResponse--》与协议无关的类型
 *  HttpServletResponse--》与http协议相关的类型
 *  http协议 http协议中响应的内容包含什么?    
 *      状态码200表示成功 302表示重定向 404表示客户端错(访问的资源不存在) 500表示服务器端错误
 *      sendError(int sc)-->发送错误状态码 例如 404500
 *      sendError(int sc,String msg)-->也是发送错误状态码 还可以带一个错误信息
 *      setStatus(int sc)-->发送成功的状态码 可以用来发送302
 *          发送404
 *  响应头 Content-Type、Refresh、Location等等
 *  头就是一个键值对 可能会存在一个头(一个名称、一个值) 也可能会存在一个头(一个名称,多个值)
 *      **setHeader(String,String value) 适用于单值的响应头  response.setHeader("aaa","AAA");
 *      addHeader(String name,String value) 适用于多值的响应头
 *          response.addHeader("aaa","A");
 *          response.addHeader("aaa","AA");
 *          response.addHeader("aaa","AAA");
 *      setIntHeader(String name,int value) 适用于单值的int类型的响应头
 *          response.setIntHeader("Content-Length",88); 
 *      addIntHeader(String name,int value); 适用于多值的int类型的响应头
 *      setDateHeader(String name,long value);适用于多值的int类型的响应头
 *          response.setDateHeader("expires",1000*60*60*24); //1天后过期 存储页面 毫秒为单位     
 *      addDateHeader(String name,long value); 适用于多值的毫秒类型的响应头
 *      
 *发302 设置Location头 完成重定向   
 *  定时刷新 设置Refresh头 定时重定向
 *  禁用浏览器缓存 Cache-Control、pragma、expires 适用所有的浏览器
 *  <meta>标签可以代替响应头<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
 *  response有两个流但只能一个不能同时用 不然会抛异常
 *响应体 通常是html 也可以是图片
 *  response的两个流
 *      ServletOutputStream 用来想客户端发送字节数据    ServletOutputStream = response.getOutputStram;
 *      PrintWriter 用来想客户端发送字符数据 需要设置编码 PrintWriter = writer = response.getWriter();
 *      两个流不能同时使用
 *  使用PrintWriter发送字符数据
 *  使用ServletOutputStream发送字节数据(图片)
 *重定向设置302 设置Location 其中变化的只有Location 所以java提供了一个快捷的方法来完成重定向
 *  sendRedirect(String location)方法 
 *  
 *  
 */

这里写图片描述
这里写图片描述

        /*
         *重定向
         * 1、设置Location
         * 2、发送302状态码
         */
        response.setHeader("Location", "/day04_01/DServlet");
        response.setStatus(302);
        //快捷的重定向方法
        response.sendRedirect("http://www.baidu.com");
        //请求uri 项目名 servlet路径
        response.sendRedirect("/day04_01/DServlet");

        /*
         *设置一个Refresh 表示定时刷新 
         *状态头和体都由response完成
         */
        //发送响应体
        PrintWriter pw = response.getWriter();
        pw.print("欢迎登录!3秒后自动跳转到主页");
        //设置Refresh响应头 3秒后跳转到指定页面
        response.setHeader("Refresh", "3;URL=/day04_01/DServlet");

        /*
         *禁用浏览器缓存  和meta一样
         */
        response.setHeader("Cache-Control", "no-cache");
        response.setHeader("pragma", "no-cache");
        response.setDateHeader("expires", -1);

        /*String s= "hello outputstream";
        byte[] bytes = s.getBytes();//字节流万能 字符流不一定
        response.getOutputStream().write(bytes);*/
        /*
         * 演示响应字节数据
         */
        //把一张图片读取到字节数组中
        String path = "F:/1.png";
        FileInputStream in = new FileInputStream(path);
        byte[] bytes = IOUtils.toByteArray(in);//读取输入流内容的字节到字节数组中
        response.getOutputStream().write(bytes);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 适合毕业设计、课程设计作业。这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!
提供的源码资源涵盖了python应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 适合毕业设计、课程设计作业。这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值