如何有效地利用转发功能来扩大信息传播范围?
- 内容介绍
- 文章标签
- 相关推荐
本文共计548个文字,预计阅读时间需要3分钟。
Forward处理流程:
1.清除Response存储的响应数据缓冲区。
2.如果目标资源为Servlet或JSP,则调用其service()方法,将该方法产生的响应结果发送到客户端端。
forword处理流程:
1清空Response存放响应正文数据的缓冲区。
2如果目标资源为Servlet或JSP,就调用它们的service()方法,把该方法产生的响应结果发送到客户端;如果目标资源文件系统中的静态HTML文档,就读取文档中的数据把它发送到客户端。
forword处理特点:
1由于forword()方法先清空用于存放响应正文的缓冲区,因此源Servlet生成的响应结果不会被发送到客户端,只有目标资源生成的响应结果才会被发送到客户端。
2如果源Servlet在进行请求转发之前,已经提交了响应结(flushBuffer(),close()方法),那么forward()方法抛出IllegalStateException。为了避免该异常,不应该在源Servlet中提交响应结果。
测试代码
servlet1 请求转发至servlet2
Servlet1
Servlet2
package com.msb.test;import javax.servlet.ServletException;import javax.servlet.annotation.WebServlet;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import java.io.IOException;import java.io.PrintWriter;/** * @Author: Ma HaiYang * @Description: MircoMessage:Mark_7001 */@WebServlet(urlPatterns = "/servlet2.do")public class Servlet2 extends HttpServlet { @Override protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { System.out.println("servlet2 service invoked"); // 接收参数 String money = req.getParameter("money"); System.out.println("money:"+money); // 作出响应 (在forWord模式下) resp.setCharacterEncoding("UTF-8"); resp.setContentType("text/html;charset=UTF-8"); PrintWriter writer = resp.getWriter(); writer.println("支付宝到账:"+money+"元"); }}本文共计548个文字,预计阅读时间需要3分钟。
Forward处理流程:
1.清除Response存储的响应数据缓冲区。
2.如果目标资源为Servlet或JSP,则调用其service()方法,将该方法产生的响应结果发送到客户端端。
forword处理流程:
1清空Response存放响应正文数据的缓冲区。
2如果目标资源为Servlet或JSP,就调用它们的service()方法,把该方法产生的响应结果发送到客户端;如果目标资源文件系统中的静态HTML文档,就读取文档中的数据把它发送到客户端。
forword处理特点:
1由于forword()方法先清空用于存放响应正文的缓冲区,因此源Servlet生成的响应结果不会被发送到客户端,只有目标资源生成的响应结果才会被发送到客户端。
2如果源Servlet在进行请求转发之前,已经提交了响应结(flushBuffer(),close()方法),那么forward()方法抛出IllegalStateException。为了避免该异常,不应该在源Servlet中提交响应结果。
测试代码
servlet1 请求转发至servlet2
Servlet1
Servlet2
package com.msb.test;import javax.servlet.ServletException;import javax.servlet.annotation.WebServlet;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import java.io.IOException;import java.io.PrintWriter;/** * @Author: Ma HaiYang * @Description: MircoMessage:Mark_7001 */@WebServlet(urlPatterns = "/servlet2.do")public class Servlet2 extends HttpServlet { @Override protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { System.out.println("servlet2 service invoked"); // 接收参数 String money = req.getParameter("money"); System.out.println("money:"+money); // 作出响应 (在forWord模式下) resp.setCharacterEncoding("UTF-8"); resp.setContentType("text/html;charset=UTF-8"); PrintWriter writer = resp.getWriter(); writer.println("支付宝到账:"+money+"元"); }}
