一、引言

了解了servlet基本原理,其中内置对象response与request了解是必须的,终点学习下==

主要包括get和post方法中的使用

先直观的看一下response和request:get请求没有请求体,post请求有请求体,这里举例为post请求

二、response

不说了,直接上代码,应该比较好了解

package xcy.com;import java.io.FileInputStream;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;import org.apache.commons.io.IOUtils;/*** Servlet implementation class MyResponse*/
@WebServlet("/MyResponse")
public class MyResponse extends HttpServlet {private static final long serialVersionUID = 1L;/*** @see HttpServlet#HttpServlet()*/public MyResponse() {super();// TODO Auto-generated constructor stub}/*** @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)*/protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {// TODO Auto-generated method stub
/*      //设置响应码response.sendError(404,"找不到");*//*//重定向两种方法response.setHeader("location", "/second/Resource");response.setStatus(302);response.sendRedirect("/second/Resource");*//*     //定时刷新response.setHeader("refresh", "5;URL=/second/index.jsp");
*/  /*      //设置取消缓存response.setHeader("Cache-Control", "no-cache");response.setHeader("pragma", "no-cache");response.setHeader("expires", "-1");*//*       //字节流传输String s="hahaha";byte[] bs=s.getBytes();response.getOutputStream().write(bs);*///获取图片流String path="C:/Users/xcy/Desktop/a.jpg";FileInputStream fi=new FileInputStream(path);byte[]bt=IOUtils.toByteArray(fi);response.getOutputStream().write(bt);}/*** @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)*/protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {// TODO Auto-generated method stubdoGet(request, response);}}

三、request

同上面一样,先上代码,把基本的方法了解==

package xcy.com;import java.io.IOException;
import java.util.Map;import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;/*** Servlet implementation class MyRequest*/
@WebServlet("/MyRequest")
public class MyRequest extends HttpServlet {/*** @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)*/protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {// TODO Auto-generated method stub/*//获取ipString ip=request.getRemoteAddr();response.getWriter().print(ip+"<hr/>");*//*      //获取请求方法String method=request.getMethod();response.getWriter().print(method);*//*      //获取客户端信息String useragent=request.getHeader("user-agent");response.getWriter().print(useragent);*//*     //获取请求urlString url=request.getRequestURL().toString();response.getWriter().print(url);*//*        //获取refererString refer=request.getHeader("referer");response.getWriter().print(refer);*/String name=request.getParameter("name");
/*      byte[]bytes=name.getBytes("iso-8859-1");name=new String(bytes,"utf-8");response.setHeader("content-type", "text/html;charset=utf-8");*/response.setHeader("content-type", "text/html;charset=utf-8");response.getWriter().print(name);Map<String, String[]> map= request.getParameterMap();response.getWriter().print(name);}/*** @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)*/protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {// TODO Auto-generated method stubrequest.setCharacterEncoding("utf-8");String name=request.getParameter("name");response.setHeader("content-type", "text/html;charset=utf-8");//response.setHeader("content-type", "text/html;charset=utf-8");response.getWriter().print(name);}}

然后重点讲解一下请求转发与请求包含;

1、请求转发与包含是一个request请求,而重定向是两个请求,request公用;

2、请求转发和请求包含是两个servlet;

3、请求转发留请求头不留请求体,而请求包含留请求头留请求体;

servlet1

 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {// TODO Auto-generated method stubresponse.setHeader("name", "xcy");response.getWriter().println("1");
/*      //请求转发request.getRequestDispatcher("/zhuanfa2").forward(request, response);*///请求包含request.getRequestDispatcher("/zhuanfa2").include(request, response);}

servlet2

 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {// TODO Auto-generated method stubresponse.getWriter().println("2");}

请求转发输出的是:2;

请求包含输出的是:12;

四、总结

  • request与response直观感受;
  • response常用方法;
  • request常用方法;
  • 重点介绍request请求转发与请求包含;

JavaWeb——response与request相关推荐

  1. java web 中有效解决中文乱码问题-pageEncoding与charset区别, response和request的setCharacterEncoding 区别

    java web 中有效解决中文乱码问题-pageEncoding与charset区别, response和request的setCharacterEncoding 区别 参考文章: (1)java ...

  2. 浏览器返回数据量过大报‘failed to load response data: Request content was evicted from inspector cache’

    主要参考:failed to load response data request content was evicted from inspector cache 现象: 解决方法: copy as ...

  3. Response和Request常用方法以及mmgrid插件的学习

    Response和Request Response和Request容器是一一对应的,他是web容器在用户每次请求服务端的时候,创建的一对容器对象,Response容器是服务端返还给客户机的一个响应内容 ...

  4. Java-Web Response响应和Request请求

    一.请求响应流程图 二.response概述 response是Servlet.service方法的一个参数,类型为javax.servlet.http.HttpServletResponse.在客户 ...

  5. Response 和 Request

    1. request 对象和 response 对象均由服务器创建. 2. 服务器处理请求的流程: 服务器每次收到请求时, 都会为这个请求开辟一个新的线程; 服务器会把客户端的请求数据封装到 requ ...

  6. eclipseweb开发response和request接收发送数据乱码问题

    第一种:request接收到的数据出现乱码: 在request接收数据前面设置如下代码 requset.setCharacterEncoding("UTF-8); reponse往页面写中文 ...

  7. Flask cookie API(response.set_cookie,request.cookies)

    1.设置cookie cookie通过Response类来创建response对象,然后通过这个对象设置cookie class flask.Response(response=None, statu ...

  8. response和request

    Request和Response的格式 转载 2017年08月08日 14:23:34 94 (Request和Response的格式) 一个HTTP Request(HTTP请求)的格式通常如下: ...

  9. java request 原理_JavaWeb response和request对象原理及实例解析

    HttpServletResponse: HttpServletResponse对象服务器的响应.这个对象中封装了向客户端发送数据.发送响应头,发送响应状态码的方法. 字符编码格式: 方法一: // ...

最新文章

  1. 实验报告C语言实现图的深度遍历,图的深度优先遍历的C语言实现.pdf
  2. 怎么安装linux系统 硬盘,如何实现硬盘安装linux系统
  3. iPhone12机型判断
  4. 数据库分组选 第一条
  5. dockerfile mysql例子_docker-compose 实用示例
  6. win10上面安装win7的虚拟机怎么相互ping通
  7. js当前时间格式化_JS时间格式化
  8. 国内首家,每周到岗上班3天,携程率先推出“3+2”混合办公模式
  9. ios开发网络学习九:NSURLSessionDownloadTask实现大文件下载
  10. mysql安装教程【安装版】
  11. jdbc查mysql_mysql的查询及连接JDBC数据库
  12. DSP2812 RAM不够用的解决方法【转载】
  13. 2021 年最漂亮的 Linux 发行版
  14. 压力换算公斤单位换算_压力单位转换器_压力换算器 百分百好站
  15. 计算机网络上不去的原因是什么,路由器有信号却上不了网是什么原因?
  16. MOOS-ivp 实验十四(2)behavior简要概述
  17. Linux~一些基本开发工具的使用(yum,vim,gcc,gdb,makefile)
  18. Gavin老师Transformer直播课感悟 - Rasa项目实战之银行金融Financial Bot智能业务对话机器人业务功能微服务解析与调试(八十九)
  19. 把照片变成字母符号软件下载 抖音上特别说的照片变成TXT文档软件
  20. adb命令从手机端复制文件到PC

热门文章

  1. MTK:MVRAM操作
  2. linux停止项目,Antergos Linux 宣布已经停止维护
  3. 10外置面板没声音_现在电脑机箱只能用外置光驱了?看我装了个隐蔽式光驱
  4. linux模板机配置文件,制作Centos 7.4操作系统模板机
  5. 房产管理信息系统 oracle,房地产企业项目信息管理系统|案场管理系统
  6. java获取年份getyear_Java LocalDateTime getYear()用法及代码示例
  7. Qt窗口部件——QWidget
  8. Git学习笔记:常用命令总结
  9. 基于阿里云物联网平台实现的简易出入监控
  10. Android基础 写给新手的Android环境配置