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. IOS - Display a base64 image within a UIImageView: 显示一个base64的图片

    base64字符串(base64String)-存的是image数据NSData* data = [[NSData alloc] initWithBase64EncodedString:base64S ...

  2. HDU2516 - 取石子游戏【斐波那契博弈】

    基本描述 有一堆个数为n的石子,游戏双方轮流取石子,满足: 先手不能再第一次把所有石子取完: 之后每次可以取的石子数介于1到对手刚取的石子数的2倍之间,包括1和对手取的石子数的2倍.  取最后石子的人 ...

  3. HDU2147 - kiki's game 【巴什博弈】

    Recently kiki has nothing to do. While she is bored, an idea appears in his mind, she just playes th ...

  4. mysql 新用户添加和权限

    1进入数据库 首先,启动数据库服务, sudo service mysql start2. 添加密码 因为MySQL的root用户默认是没有密码,所以直接连接.但作为最该权限用户,没有秘密是绝对不安全 ...

  5. ubuntu--dpkg 被中断

    主要原因应该是/var/lib/dpkg/updates 文件夹里面的资料有错误,使得更新软件的程序出现错误,所以得把它们完全删除,通过sudo apt-get update这个指令会重新建立这些资料 ...

  6. POJ 1950

    直接DFS,因为实在没想到什么剪枝了... 注意一点是,10.11使用的是1011哦 #include <iostream> #include <cstdio> #includ ...

  7. memcached—向memcached中保存Java实体需注意的问题

    今天以代码实例的形式总结一下向memcached中保存Java实体需注意的问题: memcached工具类代码: package com.ghj.packageoftool; import java. ...

  8. audio_coding模块分析和audio_conference_mixer模块分析

    audio_coding 1. 主要接口      AudioCodingModuleImpl::RegisterReceiveCodec 初始化Codec      AudioCodingModul ...

  9. 2015.04.21,外语,读书笔记-《Word Power Made Easy》 11 “如何辱骂敌人” SESSION 31

    1.no reverence iconoclast([ai'kɔnәklæst]  n. 毁坏宗教神像的人, 提倡打破旧习的人)藐视传统.在青年的反叛期很容易出现iconoclasm([ai'kɔnә ...

  10. Android系统编译【转】

    本文转载自;http://blog.csdn.net/zirconsdu/article/details/8005415 Android编译系统分析 概要 由于android编译系统的复杂和使用了不熟 ...