package com.atguigu.servlet;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* Servlet implementation class Hservlet
*/
public class HServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
/*响应报文的结构:
* 响应首行
* 响应头
* 空行
* 响应体
*
* HttpServletResponse
* 代表:代表服务器发送给浏览器的响应报文
* 获取:该对象由服务器创建,最终作为参数传递到doGet或doPost方法中,我们可以在这两个方法中直接使用
* 功能:
* 【1】:向浏览器输出一个页面或片段
* 【2】:可以发起请求的重定向
*
*
*
*
*/
//【1】向浏览器输出一个页面或者是页面片段
//获取一个字符输出流
PrintWriter out = response.getWriter();
//通过流向浏览器响应一段信息
out.print("<h1>Hello</h1>");
//【2】:可以发起请求的重定向
/*
* 重定向指的是当服务器收到一个请求后,返回给浏览器一个特殊的响应
* 这个特殊的响应告诉浏览器再去另一个地址发送请求
* 这个特殊的响应的响应状态吗是302,还有一个特殊的头Location,Location指向一个新地址
* 当浏览器收到302这个响应状态吗,他会向Location所指向的地址再次发送请求
*
* 重定向的特点:
* 【1】:重定向时浏览器发送了两次请求
* 【2】:重定向时发生在浏览器端的
* 【3】:重定向时浏览器的地址发生改变
* 【4】:浏览器可以感知重定向的发生
*
*
*/
response.sendRedirect("target.html");}
}