请求转发(forward):一种在服务器内部的资源跳转方式
实现方式:
req.getRequestDispatcher(“资源B路径”).forward(req,resp);
请求转发资源间共享数据:使用Request对象
void setAttribute(String name,Object o):存储数据到request域中
Object getAttribute(String name):根据key,获取值
void removeAttribute(String name):根据 key,删除该键值对
请求转发特点:
浏览器地址栏路径不发生变化
只能转发到当前服务器的内部资源
一次请求,可以在转发的资源间使用request共享数据

重定向(Redirect):一种资源跳转方式
实现方式:
resp.setStatus(302);
resp.setHeader(“location”,“资源B的路径”);
//简化写法
resp.sendRedirect(“资源B的路径”);
重定向特点:
浏览器地址栏路径发生变化
可以重定向到任意位置的资源(服务器内部、外部均可)
两次请求,不能在多个资源使用request共享数据

浏览器使用:需要加虚拟目录(项目访问路径)服务端使用:不需要加虚拟目录

响应数据分为3部分:
1.响应行: HTTP/1.1 200 OK
void setStatus(int sc):设置响应状态码
2.响应头: Content-Type:text/html
void setHeader(String name,String value):设置响应头键值对
3.响应体: head>
PrintWriter getWriter():获取字符输出流
使用:
1.通过Response对象获取字符输出流
PrintWriter writer =resp.getWriter()
2.写数据
writer.write(“aaa”);注意:
该流不需要关闭,随着响应结束,response对象销毁,由服务器关闭
中文数据乱码:原因通过Response获取的字符输出流默认编码:ISO-8859-1
resp.setContentType(“text/html;charset=utf-8”);

ServletOutputStream getOutputStream():获取字节输出流
1.通过Response对象获取字节输出流
ServletOutputStream outputStream =resp.getOutputStream();
2.写数据
outputStream.write(字节数据);
IOUtils工具类使用
1.导入坐标

<dependency>
<groupld>commons-io</groupld><artifactid>commons-io</artifactld><version>2.6</version></dependency>```
2.使用
IOUtils.copy(输入流,输出流);

Servlet 04相关推荐

  1. Servlet和HTTP请求协议-学习笔记01【Servlet_快速入门-生命周期方法、Servlet_3.0注解配置、IDEA与tomcat相关配置】

    Java后端 学习路线 笔记汇总表[黑马程序员] Servlet和HTTP请求协议-学习笔记01[Servlet_快速入门-生命周期方法.Servlet_3.0注解配置.IDEA与tomcat相关配置 ...

  2. 视频专辑:Servlet视频教程

    为什么80%的码农都做不了架构师?>>>    专辑:Servlet视频教程 简介:郭宏志 Servlet视频教程 1   郭宏志 Servlet 01 WEB工程结构 2013-1 ...

  3. 自己动手写Tomcat

    今天看到有人写了个简单的tomcat,让我想起多年以前自己也写了个demo,兴奋了好意振.贴出来分享下.有些简陋...   自定义服务器及浏览器.rar 转: 最近研究一方socket编程,由于想动手 ...

  4. Ubuntu 20.04下使用IDEA配置tomcat10,及servlet导包后javax.servelet一直报错的解决方法

    Ubuntu 20.04下使用IDEA配置tomcat10,servlet导包后javax.servelet一直报错的解决方法 ​ 前期有关tomcat的安装就不多详谈,网上教程一大把,就不多赘述了. ...

  5. 动态网站开发讲课笔记04:Servlet基础

    文章目录 零.本节学习目标 一.Servlet基础 (一)Servlet概述 1.Servlet是什么 2.Servlet容器 3.Servlet应用程序的体系结构 (二)Servlet的特点 1.功 ...

  6. Servlet总结04——注意Servlet单实例的线程安全性

    Servlet容器采用了单实例多线程的方式(Servlet容器默认的设置),这样可以减少创建实例的开销,提高效率. 但是在多线程方面也埋下了不少隐患,需要开发者格外小心. (一)变量的安全性 错误实例 ...

  7. Struts07---访问servlet的API

    01.创建登录界面 <%@ page language="java" import="java.util.*" pageEncoding="UT ...

  8. Servlet Cookie处理

    Servlet Cookie处理 Servlet Cookie 处理 Cookie 是存储在客户端计算机上的文本文件,并保留了各种跟踪信息.Java Servlet 显然支持 HTTP Cookie. ...

  9. jsp+servlet+mysql增删改查

    用的IntelliJ IDEA开发的,jdk1.8 1 首先是项目结构,如下图所示 2看各层的代码 首先是web.xml <?xml version="1.0" encodi ...

最新文章

  1. sobel算子原理以及运用
  2. Flink CDC 2.0 正式发布,详解核心改进
  3. 分数DRL:在OptaPlanner中更快,更轻松
  4. go语言和python结合_Go+Python双语言混合开发-第1章 【阶段一:Go语言基础】
  5. ashx文件的几种使用
  6. arcgis如何打开tif_实例|ArcGiS导出的dxf,在CASS中如何变身?
  7. Idea创建一个springboot多模块项目
  8. java面试下_Java面试宝典(下)
  9. gx works2 存储器空间或桌面堆栈不足_2020福清市gx螺旋输送机价格厂家发货-衡泰...
  10. Redis设计与实现-集群
  11. oracle没有网卡驱动,联想台式机网卡驱动,手把手教你联想台式机网卡驱动
  12. Excel对于筛选后单元格进行“复制”与“粘贴”
  13. Laravel 数据库迁移
  14. ORA-00932: 数据类型不一致: 应为 NUMBER, 但却获得NUMBER
  15. 关于前端PDF显示和盖章(vue)
  16. 为了直播焊接,我准备了这些装备
  17. 一个人写公众号能赚多少钱?我的副业之路
  18. 树莓派4B最新系统bullseye更换国内源方法
  19. 应用交付为什么会受到用户青睐
  20. [编译原理]-----第三章 词法分析

热门文章

  1. 【功能安全】【AutoSAR】安全通信机制:E2E保护
  2. 入手评测 华为擎云 L410怎么样
  3. IBM V7000存储服务器配置
  4. python脱离环境运行_脱离Python环境运行的问题所使用的工具介绍
  5. html/template
  6. webERP 于2011年6月12日发布 4.04.4 版
  7. 高红梅 第二章 第二节 性别焦虑、两性关系与个人身份认同的困境
  8. Latex自动化学报模板学习和问题解决总结
  9. Http中post/get请求参数接收
  10. Java基础新手上路篇