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. SQL Server UPDATE语句的用法详解

    SQL Server UPDATE语句用于更新数据,下面就为您详细介绍SQL Server UPDATE语句语法方面的知识,希望可以让您对SQL Server UPDATE语句有更多的了解. 现实应用 ...

  2. Spring环境搭建及简单demo

    1. Spring框架简介(以下这段话可用于面试求职) Spring为JavaEE开发提供了一个轻量级的解决方案,主要表现为, IOC(或者叫做DI)的核心机制,提供了bean工厂(Spring容器) ...

  3. Spring学习总结(18)——Spring整合Mysql数据库一主多从、多主多从配置

    一.新建jdbc.properties配置文件 master.jdbc.driverClassName=com.mysql.jdbc.Driver master.jdbc.url=jdbc:mysql ...

  4. BA-深化设计流程

    本文分三个层次描述了常规BA系统深化设计应包含了步骤和文件,第一个.第二个为转载别人的步骤,第三个为本人写的步骤. 深化系统大体步骤: 1.认真阅读招标文件,明确招标方需求. 2.仔细查阅图纸,确定被 ...

  5. 关于心理的二十五种倾向(查理·芒格)-2

    5)避免不一致倾向避免不一致倾向实际上就是人天生就害怕改变.相同是由于人类大脑的生理机制决定的.由于这样的倾向能够带来节省运算空间和能量的优点.这样的抗改变模式的形成,可能的原因例如以下:A) 迅速作 ...

  6. 嵌入式linux和pc机的linux对照

    linux本身具备的非常大长处就是稳定,内核精悍,执行时须要的资源少.嵌入式linux和普通linux并无本质差别. 在嵌入式系统上执行linux的一个缺点就是其核心架构没有又一次设计过,而是直接从桌 ...

  7. 微软ASP.NET网站部署指南(9):部署数据库更新

    1.  综述 无论什么时候,程序都有可能像代码更新一样更新数据库.本章节你将进行数据库改动,測试.然后部署到測试环境和生产环境. 提醒:假设依据本章节所做的操作出现错误信息或一些功能不正常的话,请务必 ...

  8. jenkins下载

    前置条件:需要有java环境的jdk 一.安装使用 下载地址:https://jenkins-ci.org/content/thank-you-downloading-windows-installe ...

  9. unity3d Pathfinding插件使用

    Overview The central script of the A* Pathfinding Project is the script 'astarpath.cs', it acts as a ...

  10. CSDN的技术问题

    说CSDN是国内最大最好的技术论坛.预计不会有人反对,可是...CSDN的人,如管理员懂技术吗? 假设您长期在CSDN混.您就会发现他们相当懂得......强奸技术!