随着框架的使用越来越频繁,我们通过配置xml,添加注解等方式,越来越快速的开发,但是里面的一些本质我们也不能忘记。
了解下tomcat的main方法
服务器是干什么的?
简单概括:接收前端页面的响应,进行业务逻辑处理,然后发出响应。 其中接收响应,发送响应都是tomcat帮我们干的。在javaEE中我们开发一个程序都是通过main()方法为入口,调用其它方法。来到了javaSe我们发现我们并没有接触main()方法,程序也能正常运行。其实tomcat中是有这个main方法的,就在lib里的catalina.jar里,下面我们看看他是怎么被调用的。


我们启动Tomcat的时候,执行的是 startup.bat,打开脚本我们发现里面调用了catalina.bat

打开catalina.bat,我们发现在里面完成了环境检查、环境初始化、参数初始化、启动操作,也就是在这个里面利用JVM中的java命令执行tomcat的main方法的:

编写servlet
其实servlet只是一个运行在服务器上的程序,接收请求,响应请求都是tomcat干的,可以理解为在tomcat的main方法中调用了servlet()方法,request是方法的入参,response是方法的出参数。对我们来说只需要按照规定实现Servlet接口,然后处理业务逻辑就行了。(因为对于大神来说我们都是憨憨,不能给憨憨太难的,要把难的那部分封装好,才能给憨憨用😭)
其实开发一个servlet可以理解为两步骤:编写/发布。
编写:自定义类实现Servlet接口,实现接口中的方法,

这5个方法
发布:编写完后我们需要在web.xml中进行发布

其中的标签<servlet-name>servlet1<servlet-name> 中的value servlet1随便写,只是为了和mapping配对用的。<servlet-calss>com.chen.Servlet1</servlet-calss>这个标签里的是你编写的servlet的全类名,到时候就是通过这个全类名反射去运行你的servlet的。<url-pattern>/servlet1</url-pattern>这个意思显而易见就是url,你浏览器访问servlet就是 项目路径+/servlet1
通过上面的一顿BB就编写好我们的servlet了,这时候就可以运行服务器,进行访问了。关于实现servlet接口的5个方法我们常用的就是3个方法:
init()在servlet被访问的时候执行,初始化servlet对象,执行一次;service()方法每次访问都被执行,有request,response参数,我们在这处理业务逻辑;destory()方法在服务器关闭的时候执行,也是执行一次