MVC中的C:Servlet

无MVC

MVC 很典型的一个架构模式:

看一下在没有MVC出现之前的典型前后端处理数据库的古老方式:JSP--Service 如图:

MVC中的C:Servlet

在JSP页面:

是直接通过引入service逻辑需要的包,来进行数据传输的

MVC中的C:Servlet

有MVC

当有了MVC的思想之后,View--JSP ;Model---逻辑数据; Controller---Servlet

 MVC中的C:Servlet

Servlet: 

MVC中的C:Servlet

JSP 

MVC中的C:Servlet

web.xml配置文件 

MVC中的C:Servlet

加载过程:

 在地址中输入例如: http://localhost:8081/servlet/AddServlet,根据配置文件中的配置,会先调用addServlet,,然后通过Servlet,获取参数,调用业务逻辑层,然后接收返回的结果,跳转到需要的页面,带着数据转发过去。

在这个过程中servlet会做大量的判断、转发、重定向、获取请求的值 request.getParameter()  调用业务层代码 。就像一个控制中心,所有的请求来到它这里它做下一步去哪里的分发,和返回数据后跳转到哪个页面的处理。

最典型应用了这个架构模式的框架:Struts2

出现了Action,它实现了减轻Servlet很多工作量,对Servlet进行瘦身解耦合。

它的出现,让servlet的功能变的单一,只需要获取Action返回的跳转地址,进行转发或重定向即可。

Servlet的调用是在web.xml中配置的。在项目调用url-name设置的请求的时候,会加载servlet-name下的servlet类的方法。访问的时候调用~/addAction.action即可通过servlet调用需要的Action

这里不做详细说明,感谢阅读!