XML配置方式编写Servlet

3.0版本之前,仅仅支持XML配置文件的配置方式

1、编写Servlet类

2、在web.xml中配置该Servlet

Request和Response

Request------>获取请求数据

Response----->设置响应数据

Request继承体系

ServletRequest---->Java提供的请求对象接口

^

|

HttpServletRequest---->Java提供的对Http协议封装的请求对象接口

^

|

RequestFacade---->Tomcat定义的实现类

Request获取请求数据

1、请求行

获取请求方式,获取虚拟目录,获取URL,获取URI,获取请求参数

2、请求头

根据请求头名称,获取值

3、请求体

获取字节输入流,获取字符输入流

参数:利用相应表单获取对应的post请求方式(输入流);而get请求方式通过getQueryString()方法获取

Request对象使用通用方式获取请求参数

请求参数获取方式:

GET方式:String getQueryString();
POST方式:BufferedReading getReader();

1、Map<String,String[]> getParameterMap():获取所有参数Map集合

2、String[] getParameterValues(String name):根据名称获取参数值(数组)

3、String getParameter(String name):根据名称获取参数值(单个值)

GET和Post方法示例:

更高效----使用Servlet模板创建

在Java文件夹中创建一个Servlet类型的.java文件,会自动生成一个相关的Servlet模板

步骤如下:

右键Java文件夹,new--->Servlet---->即可生成模板

目前,我们需要的Servlet模板没有这么复杂,所以可以通过下面的步骤将模板修改为我们所需要的模板样式

步骤如下:

File--->Settings--->Editor--->File and Code Temples

再选择其中的Other

找到下面的web中的Java codetemples--->Servlet Annotated Class.java,就可以进行模板的修改啦!

Request对象请求转发

一种在服务器内部的资源跳转方式

实现方式:

req.getRequestDispatcher("资源B路径").forward(req,resp);

请求转发资源间共享数据,使用Request对象

void setAttribute(String name,Object o);//存储数据到request域中
Object getAttribute(String name);//根据key,获取值
void removeAttribute(String name);//根据key,删除该键值对

请求转发的特点

1、浏览器地址栏路径不发生变化

2、只能转发到当前服务器的内部资源

3、一次请求,可以在转发的资源间使用request共享数据

Response对象

设置响应数据功能

1、响应行

void setStatus(int sc);//设置响应状态码

2、响应头

void setHeader(String name,String value);//设置响应头键值对

3、响应体

PrintWriter()//实现字符输出流

ServletOutputStream getOutputStream()//获取字节输出流

Response完成重定向(一种资源跳转方式)

实现方式:

resp.setStatus(状态码);
resp.setHeader("location","资源B的路径");

要清楚的是,在设置资源B的路径时,需要加上前面的虚拟目录

特点:

1、浏览器地址栏发生变化

2、可以重定向到任意位置

3、两次请求,不能在多个资源使用request共享数据

Response响应字符数据(设置字符数据的响应体)

利用setHeader()方法识别html标签

如果想要输入中文,可能会出现乱码情况,所以需要进行以下操作:

重要操作!!!!!!!!!!!!

并且,流是不需要关闭的

Response响应字节数据(图片数据)

Javaweb学习第十二弹--Request和Response的更多相关文章

  1. JavaWeb学习总结(十二)——Session

    一.Session简单介绍 在WEB开发中,服务器可以为每个用户浏览器创建一个会话对象(session对象),注意:一个浏览器独占一个session对象(默认情况下).因此,在需要保存用户数据时,服务 ...

  2. JavaWeb学习总结(十二)——Session(转)

    一.Session简单介绍 在WEB开发中,服务器可以为每个用户浏览器创建一个会话对象(session对象),注意:一个浏览器独占一个session对象(默认情况下).因此,在需要保存用户数据时,服务 ...

  3. javaweb学习总结十二(JAXP对XML文档进行SAX解析)

    一:JAXP使用SAX方式解析XML文件 1:dom解析与sax解析异同点 2:sax解析特点 二:代码案例 1:xml文件 <?xml version="1.0" enco ...

  4. Python3 学习第十二弹: 补充something

    python中遇到 *keys, **keys的形式 其实 * 代表传递任意个无名字参数,这些参数通过Tuple访问 >>> def sum(*keys): ret= 0 for i ...

  5. python3.4学习笔记(十二) python正则表达式的使用,使用pyspider匹配输出带.html结尾的URL

    python3.4学习笔记(十二) python正则表达式的使用,使用pyspider匹配输出带.html结尾的URL实战例子:使用pyspider匹配输出带.html结尾的URL:@config(a ...

  6. Go语言学习笔记十二: 范围(Range)

    Go语言学习笔记十二: 范围(Range) rang这个关键字主要用来遍历数组,切片,通道或Map.在数组和切片中返回索引值,在Map中返回key. 这个特别像python的方式.不过写法上比较怪异使 ...

  7. Tensorflow深度学习之十二:基础图像处理之二

    Tensorflow深度学习之十二:基础图像处理之二 from:https://blog.csdn.net/davincil/article/details/76598474   首先放出原始图像: ...

  8. JavaWeb核心篇(2)——Request和Response

    JavaWeb核心篇(2)--Request和Response 上篇文章中提及到了Servlet,在Servlet中我们主要继承了HTTPServlet类,在HTTPServlet类中我们会接触到两个 ...

  9. Javaweb学习笔记——(二十)——————Javaweb监听器、国际化

    Javaweb监听器     三大组件         *Servlet         *Listener         *Filter Listener:监听器         1.初次相见:A ...

  10. JavaWeb学习笔记(二十二)—— 过滤器filter

    一.什么是过滤器 过滤器filter是JavaWeb三大组件之一,它与Servlet很相似!不过过滤器是用来拦截请求的,而不是处理请求的.WEB开发人员通过Filter技术,对web服务器管理的所有w ...

随机推荐

  1. windows U盘启动装机工具(Ventoy)

    Windows优盘启动装机工具 一.WePE 纯净 WePE 启动盘/ U盘重装系统工具 1.U盘重装系统工具下载地址:https://www.wepe.com.cn/download.html?td ...

  2. Jquery_002

    6.$.ajax方法 $.ajax([options]) options是一个json格式的对象,参数是通过键值对的形式存在的 常用的参数如下: async:(默认: true) 默认设置下,所有请求 ...

  3. Dubbo Debug大全

    com.alibaba.dubbo.rpc.RpcException: No provider available from registry 120.25.85.89:2181 for servic ...

  4. springboot 整合 oss

    一.阿里云配置 获取 accessKeyIdaccessSecret 创建桶 bucketName 二.demo 1.oss.config import org.springframework.bea ...

  5. 威纶通作为modbusTcp主站应用

    1.在威纶通中添加modbus Tcp,作为主机,在Tcp服务器客户端模型中作为客户端: 2.威纶通地址与modbus标准功能码的对应关系: 地址1x_single_Bit,对应02功能码(读输入线圈 ...

  6. Http 包头里面有个content-length,可以获取下载的资源包大小

    NSDictionary *headerFieldsDic = request.responseHeaders; 包大小为:[headerFieldsDic[@"Content-Length ...

  7. linux命令关机和重启命令及文件查找管道符用法linux grep

    关机和重启命令 Shutdown Reboot Halt poweroff grep和管道符 昨天的时候 leader 给我出了道问题: 找出文件夹下包含 "aaa" 同时不包含 ...

  8. 【flask】建站经验随笔

    [前端] 1.前端table标签中每行使用template中 {%for i in rows%} {% endfor %}来生成之后,如果想对每行进行一个button处理,此时如果使用jquery的$ ...

  9. Windows,easygui 安装

    在官网下载了easygui,但是根据网上的方法解压后将 easygui 文件夹(创建文件:easygui,只放easygui.py)放到Python36\Lib\site-packages下不行,有模 ...

  10. SQL Server 解析Json(单层/多层)

    一,单层Json数据取出 1.取出取出@JsonData字符串中的  __type,DocNo,OrderPriceTC,Organization_Code 字段 DECLARE @JsonData ...