Servlet forward & include

来源:互联网 发布:java调用外部程序 编辑:程序博客网 时间:2024/05/20 05:28

之前写过一篇求某范围质数J2EE及JS版本的


http://blog.csdn.net/hhooong/article/details/50375887


在这边顺便扯一扯Servlet的forward和include关系,在原代码的基础上,多点东西:

package edu.fjnu.Harry;import java.io.IOException;import java.io.PrintWriter;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;public class waiterServlet extends HttpServlet {public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {doPost(request, response);}public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {request.setCharacterEncoding("utf-8");response.setContentType("text/html;charset=utf-8");String menu = request.getParameter("menu");if("火腿肠".equals(menu)|| "泡面".equals(menu) ){System.out.println("先生您好,您所点的菜单为:"+menu+",我就这去帮你取"+menu);request.setAttribute("order", menu);request.getRequestDispatcher("/smallCooker").include(request, response);PrintWriter out = response.getWriter();String smallmenu = (String) request.getAttribute("smallmenu");out.print("include协作已经完成"+smallmenu+" 请慢用");}else{System.out.println("先生您好,您所点的菜单为:"+menu+",我这就送给厨师");request.setAttribute("order", menu);//request.removeAttribute("order");request.getRequestDispatcher("/cooker").forward(request, response);}}}



package edu.fjnu.Harry;import java.io.IOException;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;public class SmallCooker extends HttpServlet {public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {doPost(request, response);}public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {request.setCharacterEncoding("utf-8");response.setContentType("text/html;charset=utf-8");String menu = (String) request.getAttribute("order");System.out.println("小厨师收到了做"+menu+"的命令,现在已经做好了。请waiter帮忙送"+menu+"" +"到顾客手中");request.setAttribute("smallmenu", menu);}}



include其实有点类似于,之前学C++的时候,A函数里面调用B函数

B(){

}


A(){

*****

B()


}

之前跟这次的代码结合,如果顾客点的餐是泡面或是火腿肠,那么会跳到smallcooker(B函数),B函数直接返回,由waiterServlet直接送到顾客手上


走一遍代码就懂了~,include不常用,在平时开发中用的更多是forward

0 0