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. [51nod1074] 约瑟夫问题 V2

    毫无思路,Orz了一下大佬的思路%%%. 大概就是因为k比n小的多,我们知道约瑟夫环有个公式是fn=(fn-1+k) mod n 可以改一下,改成fn+p=(fn+pk) mod (n+p) 但是这样 ...

  2. C# 常用字符串加密解密方法

    using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Sec ...

  3. 判断n是否为质数

    #include <iostream> #include <vector> #include <stdio.h> using namespace std; int ...

  4. 01.Python基础-5.函数

    1 函数的介绍 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段. 内置函数 自定义函数 2 函数的定义和调用 2.1 函数的定义和调用 定义 def 函数名([参数]): 代码块 [ ...

  5. Problem 4

    Problem 4 # Problem_4 """ A palindromic number reads the same both ways. The largest ...

  6. 轻量级Java EE开发框架设计系统应用架构

    首先来说一下Java EE 概述 其中常说的三大框架即是:ssh Spring:功能强大的组件粘合济,能够将你的所有的java功能模块用配置文件的方式组合起来(还让你感觉不到spring的存在)成为一 ...

  7. PHP学习总结(4)——PHP入门篇之PHP计算表达式

    计算表达式 不同于HTML和CSS,在php中我们可以做计算,比如我们写入echo 12*3计算机会计算出结果36.如下代码: <?php echo 12*3;?>

  8. HDU 1171 Big Event in HDU(多重背包)

    Big Event in HDU Problem Description Nowadays, we all know that Computer College is the biggest depa ...

  9. 命令模式之2 Invoker Vs. Client

    当程序中直接编写下达命令的语句如new Cmd1().execute()时.一般会将调用者与客户类合二为一. 在GUI程序中.下达命令的语句通常包括在底层框架中.或者说底层框架包括了调用者.这时程序猿 ...

  10. 【scikit-learn】交叉验证及其用于參数选择、模型选择、特征选择的样例

     内容概要¶ 训练集/測试集切割用于模型验证的缺点 K折交叉验证是怎样克服之前的不足 交叉验证怎样用于选择调节參数.选择模型.选择特征 改善交叉验证 1. 模型验证回想¶ 进行模型验证的一个重要目 ...