#2020云栖大会#阿里云海量offer来啦!投简历、赢阿里云限量礼品及阿里云ACA认证免费考试资格!>>>
Servlet
IT那个小笔记
什么是Servlet
Servlet的使用
Servlet生命周期
配置文件
什么是Servlet
Servlet 运行在服务端的Java程序,是sun公司提供一套规范(接口)
用来处理客户端请求、响应给浏览器的动态资源
servlet的实质就是java代码,通过java的API动态的向客户端输出内容
以后写的程序就不在是在本地执行了。而是编译成字节码,放到服务器上来去执行。
编写程序时, 不需要有main函数了。因为写完后,就把编写的程序编译成字节码,放到服务器上面。当前发送就一个请求的时候,服务器就会按照一定规则调用编写的代码
Servlet的使用
1.创建一个web工程
2.src中新建class文件
3.进入该class实现一个Servlet接口,实现它未实现的方法
4.在web.xml当中进行配置
Servlet的生命周期
init( ),service( ),destroy( )是Servlet生命周期的方法。代表了Servlet从“出生”到“工作”再到“死亡 ”的过程。Servlet容器(例如TomCat)会根据下面的规则来调用这三个方法:
init( )
当Servlet第一次被请求时,Servlet容器就会开始调用这个方法来初始化一个Servlet对象出来,但是这个方法在后续请求中不会在被Servlet容器调用,之后会直接用之前第一次缓存好的对象。我们可以利用init( )方法来执行相应的初始化工作。调用这个方法时,Servlet容器会传入一个ServletConfig对象进来从而对Servlet对象进行初始化。
service( )
每当请求Servlet时,Servlet容器就会调用这个方法。每次请求都会调用。第一次请求时,Servlet容器会先调用init( )方法初始化一个Servlet对象出来,然后会调用它的service( )方法进行工作,但在后续的请求中,Servlet容器只会调用service方法了。
destory( )
当要销毁Servlet时,Servlet容器就会调用这个方法,在卸载应用程序或者关闭Servlet容器时,就会发生这种情况,一般在这个方法中会写一些清除代码。
配置文件
首先是web.xml一个web应用就会有一个web.xml。它包含着整个应用的配置信息
请求通过server.xml找到web应用之后的处理就在此web应用的web.xml中
每添加一个servlet就会添加这样一对,servlet标签中的<servlet-name>是自定义当前servlet的标识名,<servlet-class>是当前servlet文件的位置全限定名,servlet-mapping标签是一个映射通过它来找到servlet。<servlet>
<description></description>
<servlet-name>Test</servlet-name>
<servlet-class>com.hao.servlet.Test</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Test</servlet-name>
<url-pattern>/tttt</url-pattern>
</servlet-mapping>
http://localhost:8080/myweb/tttt
通过这样一个请求就会找到<url-pattern>相匹配的<servlet-mapping>知道名字是Test,再去多对的<servlet>中去找到名字是Test的<servlet>然后就通过它的<servlet-class>访问到文件
还有ServletConfig对象
此对象可以访问获取配置文件的信息 在init方法中Tomcat就会自动传入一个ServletConfig对象config
/* 获取当前servlet配置的标识名 */
config.getServletName();
/* 配置文件可以给servlet添加一些键值对,在程序中通过config来访问 */
<servlet>
<description></description>
<display-name>Test</display-name>
<servlet-name>Test</servlet-name>
<servlet-class>com.hao.servlet.Test</servlet-class>
<init-param>
<param-name>参数名</param-name>
<param-value>参数值</param-value>
</init-param>
</servlet>
config.getInitParameter("参数名");
/* 除此之外还可以获得ServletContext */
ServletContext sc = config.getServletContext();
![f439b2605c9702e0bc0057d87fd5d3fc635.png](https://i-blog.csdnimg.cn/blog_migrate/2623fbe51edf1e16e2e6764fc4786a72.png)
![49c11ae0743ce234b875c007d9664b3581c.gif](https://i-blog.csdnimg.cn/blog_migrate/f296c2b7934403613279dbe9aad2e331.gif)
勤学如春起之苗,不见其增,只有所长。辍学如磨刀之石,不见其增,日有所亏
![3a4bc41332b0290217520174c15a267c4f6.jpg](https://i-blog.csdnimg.cn/blog_migrate/8063c3bb552316c33171273d3d79e38e.jpeg)
![4b6b5ad1c2bab1498d02a46b8f12b39a537.png](https://i-blog.csdnimg.cn/blog_migrate/0cb344e34edbbf4048868e4bc6fa116e.png)
本文分享自微信公众号 - IT那个小笔记(qq1839646816)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。