【声明:】本文是作者(蘑菇v5)原创,版权归作者 蘑菇v5所有,侵权必究。本文首发在简书。如若转发,请注明作者和来源地址!未经授权,严禁私自转载!
概念
Servelt可以完成将java程序运行到web环境中
Servlet的创建
- 写一个类让其继承
HttpServlet。 - 覆盖
doGet方法,在doGet方法中加入一些测试程序 - 配置
web.xml让该servlet可以访问
Servlet的配置
a.创建<servlet>
<servlet-name>xxxx</servlet-name> //为该servlet设定一个名称
<servlet-class>xxx.xxx.xxx</servlet-class>//servlet的类,要加入包路径
b.创建<servlet-mapping>
<servlet-name>xxxx</servlet-name>//说明servlet的name
<url-pattern>/xxx<url-pattern>//声明在浏览器中需要访问的地址
示例代码,如下图1所示:

图1
调用过程如下图2:

图2
resp响应的使用
使用doGet或者doPost方法中的resp参数可以向浏览器输出相应的数据
1、设置MIME类型
resp.setContentType("text/html");
2、通过resp获取PrintWriter的输出流,并且向浏览器写入数据
PrintWriter out = resp.getWriter();
out.println("<html>");
out.println("<body><h1>Its Work</h1></body>");
out.println("</html>");
Servlet的生命周期
对应Servlet而言,用户将请求提交给Servlet,首先会由web容器(Tomcat)截获,并且在web.xml中解析请求获取相应的Servlet,之后根据情况判断是否执行init方法(见备注),doGet和doPost会自动调用service方法,通过request对象处理完请求之后可以通过resp对象向浏览器输出相应信息。当服务器关闭时调用destory方法销毁这个servlet
备注: init方法解释
1、init方法有两个一个带参数,一个不带参数,如果两个都覆盖了(这种情况基本不会出现),会调用带参数
2、带参数的这个init方法可以获取web.xml中<init-param>中的数据,通过config.getInitParamxx("username")可以获取一下xml的Teacher这个值,init什么时候执行需要根据web.xml中servlet配置中的<load-on-startup>来确定
<init-param>
<param-name>username</param-name>
<param-value>Teacher</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
load-on-startup的值为 0或者不写load-on-startup都是在第一次调用servlet时才执行init方法,如果值>0会在启动时调用init方法