servlet相关知识点

时间:2023-02-25 22:45:28

一、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的实现方式,就是把视图和逻辑隔离开来。

画成图则如下所示:
servlet相关知识点