package lzh.servlettest;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
*
* 测试Servlet转发
* 转发:当前请求未完成,服务器调用另一个程序继续完成整个请求。
* @author lzh
*
*/
@WebServlet(asyncSupported = true, urlPatterns = { "/RequestDispatherServlet" })
public class RequestDispatherServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// 设置响应浏览器的字符编码,可以支持中文
response.setContentType("text/html;charset=UTF-8");
// step1: 获得请求调度器
// 参数:
// 当前页面:http://localhost:8080/day06/RequestDispatherServlet
// 目标页面:http://localhost:8080/day06/TestRequestServlet
RequestDispatcher dispatcher = request.getRequestDispatcher("TestRequestServlet");
//需要将数据发送到浏览器
PrintWriter out = response.getWriter();
System.out.println("01:测试语句,服务器后台执行转发前");
out.print("02:测试语句,页面转发前");
// step2: 利用forward方法来执行转发操作,
dispatcher.forward(request, response); //将会执行下一个页面
out.print("05:测试语句,页面转发后");
System.out.println("06:测试语句,服务器后台执行转发后");
}
}
package lzh.servlettest;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet(asyncSupported = true, urlPatterns = { "/TestRequestServlet" })
public class TestRequestServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// 设置响应浏览器的字符编码,可以支持中文
response.setContentType("text/html;charset=UTF-8");
//输出内容
System.out.println("03:转发页面测试,转发调用中。。。。。。");
PrintWriter out = response.getWriter(); // 必须与调用的servlet使用的流相同
out.print("04:测试语句,页面转发调用中。。。。。。");
}
}