一.Servlet
首先要明白一点,servlet需要容器的支持才能够运行,如Tomcat、jetty
达到servlet的请求,需要ServletRequest对象和ServletResponse对象去处理
servlet在服务器中的运行:1.加载到内存->2.初始化(init()) - > 3.调用(service(){doGet/doPost}) - 4.销毁(destroy())。其中(1)(2)(4)在 Servlet的整个生命周期中只会被执行一次
如果在web.xml中对servlet配置了load-on-startup,那么就是在容器加载时就将Servlet初始化,否则是接受第一次请求时再加载
在web.xml文件中, Servlet可以通过元素和元素指定通过url的方式访问这些Servlet
servlet工作原理:
二.JSP
JSP(JavaServlet Page)其实就是servlet。是从Servlet继承而来。只不过它在Servlet当中又添加/修改了一些方法,作了新的封装
工作原理:
流程图解释:
浏览器请求JSP页面,服务器用JSP 引擎将其解析成Servlet类的Java源代码文件,也就是*_jsp.java,再由Java编译器编译成一个字节码文件,也就是*_jsp.class,并装载到 jvm解释执行。剩下的就等同于 Servlet的处理过程了
*_jsp.java文件就是servlet.java文件,包括 _jspInit()、_jspDestroy()、_jspService(request,response)三个方法,类比于servlet中init()、destroy()、service(request,response)三个方法
三.各自扮演的角色
现在JSP用来做页面视图的展现,servlet用于逻辑控制。在MVC 架构模式中,就 JSP 和 Servlet而言,C通常由 Servlet充当,V通常由 JSP来充当