一、servlet的生命周期
Servlet(Sever Applet),全称是Java Servlet,是用java编写的服务器程序。Servlet是指任何实现了这个Servlet接口的类。
servlet启动时,开始加载servlet生命周期开始。Servlet被服务器实例化后,容器运行其init方法,请求到达时运行其service方法,service方法自动派遣运行与请求对应的doxxx方法(doGet,doPost)等,当服务器决定将实例销毁的时候(服务器关闭)调用其destroy方法。
加载Servlet的class-------->实例化Servlet-------------->调用Servlet的init完成------------>响应请求(Servlet的service方法)
------->Servlet容器关闭时(Servlet的destory方法)
二、servlet API 中forward()与redirect()的方法区别?
forward():服务端的转向
使用forward浏览器的地址不会发生改变,
是一次请求中完成
在服务端完成,效率高
redirect():客户端的跳转与forward对应
三、JSP与Servlet的关系
Servlet和JSP最主要的不同点在于,Servlet如果要实现html的功能,必须使用Writer输出对应的html。而Jsp的情况是Java和HTML可以组合成一个扩展名为.jsp的文件。做界面展示比较方便。
jsp侧重于视图,Servlet主要用于控制逻辑。
MVC模型
所谓MVC模型就是将数据、逻辑处理、用户界面分离的一种方法。
- M(Model, 模型):用于数据处理、逻辑处理。
- V(View,视图):用于显示用户界面。
- C(Controller,控制器):根据客户端的请求控制逻辑走向和画面。
而在Java中,MVC这三个部分则分别对应于 JavaBeans、JSP和Servlet。
- M = JavaBeans:用于传递数据,拥有与数据相关的逻辑处理。
- V = JSP、html、volicity、freemaker:从Model接收数据并生成HTML
- C = Servlet、Action:接收HTTP请求并控制Model和View
JSP+Servlet+JavaBean最经典MVC模式,实际上就是Model2的实现方式,就是把视图和逻辑隔离开来。
画成图则如下所示: