JAVAWeb—— ——请求和响应

JAVAWeb—— ——请求和响应

笔记来源教材和网络仅供参考,主要是为了总结学习

学习目标:
掌握HttpServletRequest对象的使用
掌握HttpServletResponse对象的使用
掌握如何解决请求和响应过程的中文乱码问题
掌握如何实现请求转发与请求重定向


Servlet最主要的作用就是处理客户端请求,并向客户做出响应。为此,针对Servlet的每次请求,Web服务器在调用servlet ()方法之前都会创建两个对象分别是HttpServletRequest和HttpServletResponse。其中,HttpServletRequest用于封装HTTP请求消息,简称request对象。HttpServletResponse用于封装HTTP响应消息,简称reponse对象。这两个对象在Servlet过程至关重要。如图在这里插入图片描述
需要注意的是,在Web服务器运行阶段,每个Servlet都只会创建一个实例。然而,每次HTTP请求,Web服务器都会调用所请求的Servlet实例的servlet(HttpServletRequest request,HttpServletResponse response)方法,重新创建一个request对象和一个response对象。

案例:
在这里插入图片描述一、浏览器通过 localhost:8080 连接服务器;
二、服务器在 webapps 目录下寻找 web01 目录,找到后进入web01 目录内寻找 WEB-INF 目录,在进入 WEB-INF 目录内寻找 web.xml 文件;
三、再进入 web.xml 文件中找到 greeting,从而找到对应的 servlet-name,再找到某个 servlet 的子类,并创建该类的实例对象;
四、再调用该对象的 service 方法,并传入 request 和 response 两个对象参数,service 方法会从 request 对象中获取到 name=zs,然后执行 service 方法中的业务逻辑语句,并把结果写入到 response 中;
五、而后 server 会从response 中获得结果传送给浏览器显示出来。


前言

HttpServletResponse对象

在Servlet API中,定义了一个HttpServletResponse接口,它继承自ServletResonse接口,专门用来封装HTTP响应消息。由于HTTP响应消息分为状态行、响应消息头、消息体三部分。因此在HttpServletResponse接口中定义了向客户端发送响应状态码、响应消息头、响应消息体的方法。

示例:

1.1发送状态码相关的方法

当Servlet向客户端回送响应消息时,需要在响应消息中设置状态码。为此在HttpServletResponse接口中,定义了两个发送状态码。

1.setStatus(int status)方法

该方法用于设置HTTP响应消息的状态码,并生成响应状态行。由于在响应状态行中的状态描述信息直接与状态码相关,而HTTP版本由服务器确定,由此,只要通过setStatus(int status) 方法设置了状态码,即可实现状态行的发送。需要注意的是,正常情况下,Web服务器会默认产生一个状态码为200的状态行。

2.sendError(int sc)方法

该方法用于发送表示错误消息的状态码,例如,404状态码表示找不到客户端请求的资源在response对象中,提供了两个重载的sendError(int sc)方法,具体如下。

public void sendError(int code) throws java.io.IOException
public void sendError(int cide, String message) throws java.io.IOException

上面重载方法中,第一个只是发送错误信息状态码,第二个方法除了发送状态码外,还可以增加一条用于提示说明的文本信息,该文本信息将出现在发送给客户端的正文内容中

1.2发送响应消息头相关的方法

在这里插入图片描述

1.3发送响应消息体相关的方法

在这里插入图片描述
但是这两个方法互斥不能同时使用,否则会发生illegalStateException异常

HttpServletResponse应用

解决中文乱码

实现网页定时刷新并跳转

实现重定向

HttpServletRequest对象

2.1获取请求行信息的方法

在这里插入图片描述

HttpServletRequest应用

在这里插入图片描述
在这里插入图片描述

解决请求参数的中文乱码问题

2.2请求转发、重定向

在这里插入图片描述

Guess you like

Origin blog.csdn.net/weixin_54405545/article/details/121216471