package com.cdsxt.action;
import java.io.IOException;
import java.util.Enumeration;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class RequestServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
this.doPost(request, response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//request 作为作用域使用
//作用域的理解: 可以简单的理解成是一个Map<String,Object>
//往作用域中存值
request.setAttribute("a", "aaa");
request.setAttribute("b", "bbb");
/*//取值
String a=(String) request.getAttribute("a");
String b=(String) request.getAttribute("b");
//请求转发
//request.getRequestDispacher(地址).forward(请求对象,响应对象)
/*
特点:
1)整个过程一次请求
2)地址栏不会发生变化
3)不能访问外部资源
4)效率高
5)绝对路径 绝对路径的/代表的是根目录之后的根
6)请求转发之后的代码会继续执行 所以习惯性在后面添加一个return 语句
*/
//相对路径
// request.getRequestDispatcher("requestServlet2").forward(request, response);
//绝对路径
// request.getRequestDispatcher("/requestServlet2").forward(request, response);
// request.getRequestDispatcher("http://www.baidu.com").forward(request, response);
// return;
//重定向
//response.sendRedirect(地址);
/*
特点:
1)整个过程两次请求
2)地址栏会发生变化
3)能访问外部资源 response.sendRedirect("http://www.baidu.com");
4)效率偏低
5)绝对路径 绝对路径的/代表的是端口号之后的根
6)习惯性在后面添加一个return 语句
*/
// response.sendRedirect("requestServlet2");
// response.sendRedirect("http://www.baidu.com");
// response.sendRedirect("/RequestWeb2/requestServlet2");
//推荐绝对路径写法
response.sendRedirect(request.getContextPath()+"/requestServlet2");
return;
//模拟重定向
// response.setStatus(302);//设置状态码
// response.setHeader("location", "requestServlet2");
}
}
请求转发:

重定向:
