JavaWeb——response与request
一、引言
了解了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相关推荐
- java web 中有效解决中文乱码问题-pageEncoding与charset区别, response和request的setCharacterEncoding 区别
java web 中有效解决中文乱码问题-pageEncoding与charset区别, response和request的setCharacterEncoding 区别 参考文章: (1)java ...
- 浏览器返回数据量过大报‘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 ...
- Response和Request常用方法以及mmgrid插件的学习
Response和Request Response和Request容器是一一对应的,他是web容器在用户每次请求服务端的时候,创建的一对容器对象,Response容器是服务端返还给客户机的一个响应内容 ...
- Java-Web Response响应和Request请求
一.请求响应流程图 二.response概述 response是Servlet.service方法的一个参数,类型为javax.servlet.http.HttpServletResponse.在客户 ...
- Response 和 Request
1. request 对象和 response 对象均由服务器创建. 2. 服务器处理请求的流程: 服务器每次收到请求时, 都会为这个请求开辟一个新的线程; 服务器会把客户端的请求数据封装到 requ ...
- eclipseweb开发response和request接收发送数据乱码问题
第一种:request接收到的数据出现乱码: 在request接收数据前面设置如下代码 requset.setCharacterEncoding("UTF-8); reponse往页面写中文 ...
- Flask cookie API(response.set_cookie,request.cookies)
1.设置cookie cookie通过Response类来创建response对象,然后通过这个对象设置cookie class flask.Response(response=None, statu ...
- response和request
Request和Response的格式 转载 2017年08月08日 14:23:34 94 (Request和Response的格式) 一个HTTP Request(HTTP请求)的格式通常如下: ...
- java request 原理_JavaWeb response和request对象原理及实例解析
HttpServletResponse: HttpServletResponse对象服务器的响应.这个对象中封装了向客户端发送数据.发送响应头,发送响应状态码的方法. 字符编码格式: 方法一: // ...
最新文章
- 实验报告C语言实现图的深度遍历,图的深度优先遍历的C语言实现.pdf
- 怎么安装linux系统 硬盘,如何实现硬盘安装linux系统
- iPhone12机型判断
- 数据库分组选 第一条
- dockerfile mysql例子_docker-compose 实用示例
- win10上面安装win7的虚拟机怎么相互ping通
- js当前时间格式化_JS时间格式化
- 国内首家,每周到岗上班3天,携程率先推出“3+2”混合办公模式
- ios开发网络学习九:NSURLSessionDownloadTask实现大文件下载
- mysql安装教程【安装版】
- jdbc查mysql_mysql的查询及连接JDBC数据库
- DSP2812 RAM不够用的解决方法【转载】
- 2021 年最漂亮的 Linux 发行版
- 压力换算公斤单位换算_压力单位转换器_压力换算器 百分百好站
- 计算机网络上不去的原因是什么,路由器有信号却上不了网是什么原因?
- MOOS-ivp 实验十四(2)behavior简要概述
- Linux~一些基本开发工具的使用(yum,vim,gcc,gdb,makefile)
- Gavin老师Transformer直播课感悟 - Rasa项目实战之银行金融Financial Bot智能业务对话机器人业务功能微服务解析与调试(八十九)
- 把照片变成字母符号软件下载 抖音上特别说的照片变成TXT文档软件
- adb命令从手机端复制文件到PC
热门文章
- MTK:MVRAM操作
- linux停止项目,Antergos Linux 宣布已经停止维护
- 10外置面板没声音_现在电脑机箱只能用外置光驱了?看我装了个隐蔽式光驱
- linux模板机配置文件,制作Centos 7.4操作系统模板机
- 房产管理信息系统 oracle,房地产企业项目信息管理系统|案场管理系统
- java获取年份getyear_Java LocalDateTime getYear()用法及代码示例
- Qt窗口部件——QWidget
- Git学习笔记:常用命令总结
- 基于阿里云物联网平台实现的简易出入监控
- Android基础 写给新手的Android环境配置