request和response

HttpServletRequest

请求转发

HttpServletResponse

请求重定向

 

  1. 请求流程

每次请求service(),都会由容器创建一个新的对象。

首先用户向Servlet发出请求,然后由tomcat服务器创建request和response两个对象,然后将两个新对象传递给servlet,然后servlet用response返回响应,浏览器解析response响应。

  1. Servlet对象的比较

① request和response在每一次访问时都被创建,由tomcat服务器创建

② servlet只会被创建一次

③ ServletConfig会为每一个servlet创建一个Config对象,且由servlet维护。ServletConfig属于成员变量

④ ServletContext对象,是这个web项目就有一个此变量,属于全局变量,整个项目都可以被访问到

  1. HTTPServletRequest

是ServletRequest的子接口,用于封装HTTP请求消息。

  1. Request功能

① 功能

l 接收用户的参数

l 接收用户的所有请求头信息

l 转发、包含

l 作为域对象也可以存放数据

② 方法

² getParameter(String)方法:根据名字获取一个参数,返回值类型为String

² getParameterValues(String)方法:根据名字获取一组相关数据,返回类型为String[]

  1. 请求转发

① 转发:是将请求在服务器内部叫个另一个组件再去执行,同时共享request中的数据,其特点有:

l 地址栏不会发生改变

l 在最终servlet中,request对象和中转的request对象是同一个对象,数据不会发生改变

l 请求转发:“/”代表当前web应用根目录即http://localhost:8080/Servlet1115

② 请求域属性

存储在ServletRequest对象中的属性称之为请求域属性,属于同一个请求的多个处理模块之间可以通过请求域属性来传递对象数据。

相关方法有:

l setAttribute()方法

l getAttribute()方法

l removeAttribute()方法

  1. HTTPServletResponse

是ServletResponse接口的子接口,专门用于http协议,用于封装http响应消息

  1. Response功能

① 功能

l 设置响应内容:给用户输出html数据

l 设置响应头

l 重定向

② 方法

用于字符流输出,方法:resp.getWriter()

PrintWriter out = response.getWriter();

out.write("名称:" + name);

  1. 重定向

n 指的是一个web资源受到客户端请求后,通知客户端取访问另一个web资源(例如百度)

n “/”代表当前web应用站点http://localhost:8080

n 浏览器会向服务器发送两次请求,即有两个request/response

n 浏览器地址会发生变化

n 不会共享request中的数据

n 执行重定向的代码为302

  1. 重定向与转发的区别

①请求转发只转发到当前web应用下,请求重定向转发到另一个web站点;

②请求转发只发送了一次请求,重定向发送了两次请求。请求转发的地址栏还是初次请求的地址栏,重定向的地址栏是第二次请求的地址栏,与之同理,重定向的request不是同一次request;

  1. 获取参数时出现乱码问题

n 解决方法一

n 解决方法二

Java web课程学习之Request和Response的更多相关文章

  1. Java web课程学习之JSP

    JSP     jsp隐式对象:JSP隐式对象是JSP容器为每个页面提供的Java对象,开发者可以直接使用它们而不用显式声明.JSP隐式对象也被称为预定义变量. jsp脚本片段 l jsp脚本片段是指 ...

  2. Java web课程学习之Servlet

    Servlet简介   (1) Servlet本质上就是一个Java类,只不过运行在Servlet容器中 (2) Servlet的功能: ① 创建并返回客户请求的动态HTML页面 ② 创建可嵌入到现有 ...

  3. Java web课程学习之会话(Session)

    Session会话   l web应用中的会话是指一个客户端浏览器与web服务器之间连续发生一系列请求和响应过程 l web应用的会话状态是指web服务器与浏览器在会话过程中产生的状态信息,借助会话状 ...

  4. 【Java Web开发学习】跨域请求

    [Java Web开发学习]跨域请求 ================================================= 1.使用jsonp ===================== ...

  5. 【Java Web开发学习】Spring MVC添加自定义Servlet、Filter、Listener

    [Java Web开发学习]Spring MVC添加自定义Servlet.Filter.Listener 转载:https://www.cnblogs.com/yangchongxing/p/9968 ...

  6. 【Java Web开发学习】Spring MVC 拦截器HandlerInterceptor

    [Java Web开发学习]Spring MVC 拦截器HandlerInterceptor 转载:https://www.cnblogs.com/yangchongxing/p/9324119.ht ...

  7. 【Java Web开发学习】Servlet、Filter、Listener

    [Java Web开发学习]Servlet 转发:https://www.cnblogs.com/yangchongxing/p/9274739.html 1.Servlet package cn.y ...

  8. 【Java Web开发学习】Spring MVC异常统一处理

    [Java Web开发学习]Spring MVC异常统一处理 文采有限,若有错误,欢迎留言指正. 转载:https://www.cnblogs.com/yangchongxing/p/9271900. ...

  9. 【Java Web开发学习】Spring MVC文件上传

    [Java Web开发学习]Spring MVC文件上传 转载:https://www.cnblogs.com/yangchongxing/p/9290489.html 文件上传有两种实现方式,都比较 ...

随机推荐

  1. ELO kernels 记录

    these kernel for discuss how to handle outliers in target values. 一:Ashish Gupta: 在16年6月到18年8月,激活卡的人 ...

  2. nyoj303-序号交换

    序号互换 时间限制:1000 ms  |  内存限制:65535 KB 难度:2 描述 Dr.Kong设计了一个聪明的机器人卡多,卡多会对电子表格中的单元格坐标快速计算出来.单元格的行坐标是由数字编号 ...

  3. 服务器重启后启动Docker命令

    启动步骤: 1.启动Docker 守护进程 systemctl daemon-reload 2.Docker启动命令: systemctl start docker 3.查看docker服务是否启动 ...

  4. spring data JPA使用quartz定时器的具体实现

    第一步.在pom.xml中的配置 <!--quartz--> <dependency> <groupId>org.quartz-scheduler</grou ...

  5. 基本SQL查询

    当在数据库的表中存入数据后,就可以查询这些已经存入的数据.下面学习基本SQL查询 本节要点: l  如何使用select语句 Select语句的语法 SELECT语句中的运算 使用DISTINCT和U ...

  6. Apache负载均衡与Tomcat集群配置学习(Windows环境)

    本文主要参考自http://www.iteye.com/topic/985404?dhcc,经由实际操作配置操并记录而成. 由于最近的一个Java开发项目用到了Tomcat中间件作为web服务器,刚开 ...

  7. Qt Quick 之 QML 与 C++ 混合编程具体解释

    Qt Quick 技术的引入.使得你能够高速构建 UI ,具有动画.各种绚丽效果的 UI 都不在话下.但它不是万能的.也有非常多局限性,原来 Qt 的一些技术,比方低阶的网络编程如 QTcpSocke ...

  8. Cocos2dx之使用UI库结合cocostudio

    使用cocostudio的UI编辑器编辑好UI界面,导出UI文件,直接在cocos2dx中使用.通过tag或者name来获取到UI控件 1.编辑ui界面,直接用模板然后拖几个控件过去 2.cocos2 ...

  9. web后台知识点整理

    五.JEE 适用于创建server端的大型的软件服务系统 1. JEE : JAVA  PLATFORM  ENTERPRISE  DEDITON 2.是一个规范集.技术集.框架集(API集) 一种技 ...

  10. POJ 题目3461 Oulipo(KMP)

    Oulipo Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 26479   Accepted: 10550 Descript ...