目录
前端设计模式介绍
前端设计模式其实和前端没啥关系,这个“前端”就是一个Servlet,可以将这个servlet理解为一个网关(gateway),所有对服务器的请求都会被这个servlet处理。
这个servlet(front servlet)在处理请求的时候,会分析用户的请求URL,根据不同的URL,调用不同的方法处理,或者转发给对应的servlet去处理。
另外,这个servlet还有另外一个名字——dispatcher servlet(调度servlet),因为他的工作方式就是:调度不同方法或者servlet来处理请求。
举个特别简单的例子:
package cn.ganlixin.servlet; import java.io.IOException; 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("/*") // 拦截所有请求 public class DispatcherServlet extends HttpServlet { @Override protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("utf-8"); String action = request.getParameter("action"); if ("demo".equals(action)) { demo(request, response); } else if ("test".equals(action)) { test(request, response); } else { response.sendError(404); } } private void demo(HttpServletRequest request, HttpServletResponse response) throws IOException { response.getWriter().println("this is demo action"); } private void test(HttpServletRequest request, HttpServletResponse response) throws IOException { response.getWriter().println("this is test action"); } }
访问该项目的任意servlet,请求都会被这个DispatcherServlet拦截,然后根据请求中的action的值来调用不同的方法去处理,当然,也可以改一种方式,将请求转发给其他servlet进行处理。