/*ServletResponse*/

/*responese常见应用*/

  1.向客户端输出中文数据 (分别以OutputStream 和 PrintWriter输出)

  2.文件下载和中文文件的下载 ( /*ResponseDemo3*/)

  3.完成类似验证码的功能 (输出一张随机图片)

  4.用refresh控制浏览器自动刷新

  5.控制浏览器缓存(保存一定时间)

  6.实现重定向 (一般能不采用 就 不采用)(因为重定向是转到其他地址,所以重定向的地址需要比 转发 的地址 /*多上web应用名称*/)

Response的小细节:
  1.getOutputStream 和 getWriter方法分别用于得到输出二进制数据、输出文本数据的ServletOutputStream、PrintWriter对象

  2.getOutputStream 和 getWriter 这两个方法互相排斥,调用了其中的任何一个方法后,就不能再调用另外一个方法

  (转到另外的页面上,如果是通过重定向转的,就可以同时使用(因为重定向 向服务器发送了两次请求,有两个response,两次调用的是不同的))

  3.Servlet的service方法结束后,Servlet引擎将检查getWriter或getOutputStream方法返回的输出流对象是否已经调用过close方法。

   如果没有,Servlet引擎将调用close方法关闭输出流对象。

  (即程序里面可以不用去 close )

4./*Request*/

request的常用方法:

  (获得客户机信息) (URL(网络上的web应用)和URI(所有web应用)的关系 : 狗和动物)

  getRequestURL 返回客户端发出请求时的完整URL

  getRequestURI 返回请求行中的资源名部分

  getQueryString 返回请求行中的参数部分

  getRemoteAddr 返回发出请求的客户机的IP地址

  getRemoteHost 返回发出请求的客户机的完整主机名

  getRemotePort 返回客户机所使用的网络端口号

  getLocalAddr 返回web服务器的IP地址

  getLocalName 返回web服务器的主机名

  getMethod 得到客户机请求方式

  /*request获取请求头和请求数据 RequestDemo2 test.html*/

  /*通过表单搜集用户数据*/ /*主要是HTML方面的 暂时先不写了*/

  /*request乱码问题*/

    通过表单提交中文字符产生的乱码问题 : 1. get(手工) 2.post

    通过超链接提交中文字符 : 想要避免乱码问题 (手工)

/*MVC设计*/ //MVC (m model (javabaen) ; v view (jsp) ; c controller (servlet) ) 处理请求的是处理请求的 封装数据的是封装数据的 显示数据的是显示数据的

  servlet收到请求 返回数据,数据封装到javabean中,javabean中的数据存到request域中,通过转发(forword)技术将转到jsp页面,jsp页面从request域中取出数据显示

请求转发的细节: ( /*只有在客户端没有输出时,才可以调用forword方法*/)

1.forword方法用于将请求转发到 RequestDispatcher 对象封装的资源

2.如果在forword方法之前,在servlet程序写入的部分内容已经被真正传递到了客户端 (流的关闭以及多个forword跳转都可能导致),forword方法将抛出异常

3.如果在调用forword方法之前,向servlet引擎的缓冲区(response)中写入了内容,只要写入到缓冲区的内容还没有真正输出到客户端,

 forword方法就可以被正常执行,原来写入到输入缓冲区的内容将被清空

  例:String value = "aaaa";

  response.getWriter().write(value); //此时 数据还没有写入到客户机中,如果这个时候forword的话,response中的内容将被清空,转发正常执行

  request.getRequestDispatcher("/index.jsp").forward(request, response);

request实现页面包含 (用include实现页面包含(包含一些公共的页面) ,一般不使用,因为这是动态包含(一般在jsp中做静态包含更好 ))

 1 //用include实现页面包含(包含一些公共的页面) (一般在jsp中做包含 )
 2 public class RequestDemo6 extends HttpServlet {
 3
 4     public void doGet(HttpServletRequest request, HttpServletResponse response)
 5             throws ServletException, IOException {
 6
 7         request.getRequestDispatcher("/public/Head.jsp").include(request, response);
 8         String value = "body";
 9         response.getWriter().write(value);
10         request.getRequestDispatcher("/public/Foot.jsp").include(request, response);
11     }
12
13     public void doPost(HttpServletRequest request, HttpServletResponse response)
14             throws ServletException, IOException {
15         doGet(request, response);
16     }
17
18 }

web工程中各类地址的写法( /*看地址是给谁用的*/)

利用referer防盗链

//利用referer防盗链
public class RequestDemo7 extends HttpServlet {public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {String referer = request.getHeader("referer");if(referer == null || !referer.startsWith("localhost")) {    //如果页面时直接访问,没有经过跳转||或者不是以localhost开头response.sendRedirect("/day06/index.jsp");return;}String data = "日记";response.getWriter().write(data);}public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {doGet(request, response);}}

转载于:https://www.cnblogs.com/xuzekun/p/7356872.html

5.Servlet 对象(request-response)相关推荐

  1. 【Servlet】Request/Response/Cookie/Session中常用方法

    #1.Request package com.tcb.servlet;import java.io.IOException; import javax.servlet.ServletException ...

  2. request 对象和 response 对象

    Web服务器收到客户端的http请求,会针对每一次请求,分别创建一个用于代表请求的request对象.和代表响应的response对象 HttpServletResponse HttpServletR ...

  3. request,response,session,application,out对象的常用调用的函数

    1.request对象 客户端的请求信息被封装在request对象中,通过它才能了解到客户的需求,然后做出响应.它是HttpServletRequest类的实例. 序号 方 法 说 明 1 objec ...

  4. 重温Servlet学习笔记--response对象

    在用户浏览网页时,服务器对于客户端浏览器做出的响应被封装成一个HttpServletResponse对象,要对浏览器操作只需要操作这个response对象即可.response的功能分类及介绍: 响应 ...

  5. request对象与response对象

    一.request对象 1.通过request对象可以获得客户端输入的信息.request对象包含了从客户端传来的请求信息. 请求的参数是一个请求的组成部分,它们被作为字符串从客户端传送到JSP/Se ...

  6. 【Servlet篇】Response对象详细解读

    文章目录 Response 继承体系 Response 设置响应数据 设置响应行数据 设置响应头数据 设置响应体数据 Response 重定向 Response 响应字符数据 Response 响应字 ...

  7. Java Web 项目入门指南(http、Servlet、Request、Response、ServletContext、会话技术[cookie、session]、Filter、Listener)

    概述 web 服务器.项目.资源概述 web 服务器:可以被浏览器访问到的服务器 常见的 web 服务器: tomcat:中小型的服务器软件,免费开源,支持 JSP 和 Servlet apache ...

  8. javaWeb中 servlet 、request 、response

    1.Servlet (1)Servlet是JavaEE的一个动态web资源开发技 术,就是在服务器上运行的小程序,这个小程序是由服务器调用的,服务器为了能调用这个小程序,就要求这样的程序必须实现一个S ...

  9. Javaweb-Servlet总结(概述、接口使用、配置、获取请求方式、路径操作、Request对象、Response对象)

    文章目录 Servlet概述 Servlet核心接口和类 三种自定义Servlet接口的方法 1.实现Servlet接口 2.继承GenericServlet抽象类 3.继承HttpServlet抽象 ...

  10. request对象和response对象

    一.请求响应流程图 服务器处理请求的流程: (1)服务器每次收到请求时,都会为这个请求开辟一个新的线程.   (2)服务器会把客户端的请求数据封装到request对象中,request就是请求数据的载 ...

最新文章

  1. J2EE (六) 详解 java 中文乱码
  2. intelliJ idea运行新的test功能时,报错:class not found ..... empty test suite
  3. Python Django 多对多表设计
  4. 在Google Cloud platform上创建Kubernetes cluster并使用
  5. mysql异地增量备份工具_利用 xtrabackup 工具实现增量备份 mysql(附脚本)
  6. Scala 类和对象
  7. FastRoute - 快速请求路由
  8. python 爬取上海体育彩票文章标题、时间、内容
  9. object c小代码——日期篇
  10. vue对于ntko的应用经验
  11. 无线射频识别技术与条形码的比较
  12. Abbexa CDAN1 siRNA使用说明书
  13. 现场调试——win7 X64安装VS2017闪退之kb4474419 终极办法
  14. 燕山大学软件测试,工程技术研究期刊版面费_软件测试期刊_燕山大学学报版面费...
  15. flannel 介绍(UTP、VXLAN、Host Gateway模式详解)
  16. 深度学习 Ai 换脸
  17. 浅谈实时对战网络游戏的同步机制
  18. 【java】微信文章抓取
  19. 【Hack The Box】linux练习-- Tabby
  20. LDA主题模型的原理及使用教程

热门文章

  1. 递归应用:八皇后问题
  2. Java50道经典习题-程序18 乒乓球赛
  3. Java修炼之道--I/O
  4. 【BZOJ 1449】 1449: [JSOI2009]球队收益 (最小费用流)
  5. C#开发微信门户及应用(32)--微信支付接入和API封装使用
  6. sql 基础--mysql 5
  7. 多项新政催生本年度购房最佳“窗口期”
  8. 怎么解决web service circular reference 问题
  9. 求周期字符串的最小子串
  10. 数据分析与数据化运营的关键知识点,全在这里了