Servlet(Server Applet)通常称为服务端小程序或服务连接器,是服务端的程序,用于处理及响应客户的请求。Servlet是一个特殊的Java类,创建Servlet类自动继承HttpServlet。客户端通常只有GET和POST两种请求方式,Servlet为了响应这两种请求,必须重写doGet()和doPost()方法。大部分时候,Servlet对于所有的请求响应都是完全一样的,此时只需要重写service()方法即可响应客户端的所有请求。
servlet的生命周期是指servlet从加载、初始化、服务到销毁的一个过程,也就是Servlet的出生到结束。而Servlet是Java Web开发的核心。简单的说Tomcat等Java Web服务器都是以实现Servlet标准为基础进行编写的,这就决定了Servlet在Java Web开发中的地位。
对于Servlet需要了解的是,servlet是java Web应用的基础,很多框架都是封装servlet实现的,而servlet的生命周期全部由Web容器来控制,初始化、服务、销毁用户是可以自己去添加内容的,然后由Web容器进行调用。
//servlet生命周期(面试考点)
public class Controller extends HttpServlet {
//构造方法不能带参数,才能被web.xml识别
//当浏览器访问到这个项目的的时候,Tomcat才会创建controller对象
//这样的好处在于可以节省资源
//servlet 不访问就不创建对象
//当请求第一次抵达这里时,创建一个Controller对象
//当请求第二次抵达时,由于之前已经创建过对象,所以不再创建对象了
public Controller(){
System.out.println("我是一个Controller");
}
//所谓Service方法,是针对请求来说的,当一个请求到达Tomcat时
//tomcat会调用Servlet的Service方法,来确定具体执行那个do
//发几次访问就执行几次service
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
super.service(req, resp);
System.out.println("我是Service");
}
//初始化过程
//先调用init方法再调用service方法,只执行一次
@Override
public void init() throws ServletException {
super.init();
System.out.println("我是init");
}
//销毁过程
@Override
public void destroy() {
super.destroy();
}
}
WEB-INF是Java的WEB应用的安全目录。所谓安全就是客户端无法访问,只有服务端可以访问的目录。如果想在页面中直接访问其中的文件,必须通web.xml文件对要访问的文件进行相应映射才能访问。
所有的let,lite,我们都管他叫做轻量级内容。
Servlet→轻量级服务。
有关Servlet:
https://blog.csdn.net/qq_39058439/article/details/80265862
MVC分层框架:
M:模型层,主要是处理实体类对象模型,数据库连接过程等
V:视图层,主要是将模型展现给用户的过程
C:控制层,(我们主要的业务逻辑所在位置) 两个子分类:
①路由过程→获得用户发送的消息并决定用户接下来会收到什么反馈的一个层。
②业务过程→负责处理用户发来的消息,并给出处理结果的层。
一个web中完全可以没有web.xml文件,也就是说,web.xml文件并不是web工程必须的。web.xml文件是用来配置:欢迎页、servlet、filter等的。当你的web工程没用到这些时,你可以不用web.xml文件来配置你的web工程。
当我们启动一个WEB项目容器时,容器包括(JBoss,Tomcat等)。首先会去读取web.xml配置文件里的配置,当这一步骤没有出错并且完成之后,项目才能正常的被启动起来。
web.xml常用的标签元素及这些标签元素的功能:
(1)指定欢迎页面。
(2)命名与定制URL。我们可以为Servlet和JSP文件命名并定制URL,其中定制URL是依赖一命名的,命名必须在定制URL前。
①为Servlet命名:
<servlet>
<servlet-name>indexServlet</servlet-name>
<servlet-