Servlet
Servlet介绍
问题:servlet是什么,它有什么作用?
Servlet是运算在服务器上的一个java小程序,简单说,它就是一个java类。我们要使用servlet,需要导入javax.servlet的api.
Servlet它是一个资源,主要功能在于交互式的浏览和修改数据,它是一个动态资源
在tomcat/webapps下有一个examples工程,我们可以查看servlet示例
Servlet快速入门
目的:明白怎样创建一个servlet,怎样让这个servlet执行,并理解它是一个资源。
问题:怎样创建一个servlet?
步骤:
1.
使用myeclipse创建一个web project
2.
在src下创建一个java类。HelloworldServlet,并让这个类继承HttpServlet
3.
重写了doGet方法
4.
在本工程的web.xml文件中对servlet进行配置
Servlet详解
Servlet是一个资源,是一个java类,是运行在服务器上的。
Sun对于servlet定义,它就是一个javax.servlet.Servlet接口。
Servlet接口下有一个实现类叫GenericServlet,GenericServlet有一个子类HttpServlet.
在Servlet接口中定义了一个方法service,它的请要作用是处理来自浏览器的请求操作。
但是我们在创建Servlet时,是继承了HttpServlet,重写了一个doGet方法,问题:doGet方法与service方法有什么关系?
在service方法的重载的方法中,对请求方式进行判断,如果是GET就会调用doGet方法,如果是POST就会调用doPost方法。
总结:在Servlet接口中定义的service方法是用于处理请求的,而在其实现类HttpServlet中又进行细分,针对于POSt会执行doPost方法,如果是GET请求,执行的是doGet方法。
通过上述分析,我们知道要创建一个servlet其实可以有三种方式
1.
implements Servlet接口
2.
extends GenericServlet类
3.
extends HttpServlet类
在开发中,一般应用比较多的是使用extends HttpServlet,优点是它是与http协议相关的,简单说,它封装了http协议相关的操作。
Servlet生命周期
在javax.servlet.Servlet接口中定义了三个方法init service destroy它们就是servlet的生命周期方法
问题:什么是生命周期?
简单理解成是servlet是什么时候创建的,它是什么时候销毁的。
演示servlet生命周期:
1.
创建一个LifeServlet
2.
在web.xml文件中配置
3.
启动服务器,并访问servlet,
http://localhost/servletDemo/life
第一次访问结果:
第二次访问
以后每一次访问,只有service方法执行了。
当我们将tomcat服务器关闭
会发现destroy方法执行了。
Servlet生命周期总结:
1.
第一次访问servlet,servlet会被创建,并将servlet对象常驻内存,调用init方法进行初始化操作,init方法中执行一次。
2.
开启一个线程,调用service方法,用于处理来自浏览器端的请求,以后都是开启一个线程来处理浏览器端请求。
3.
当tomcat服务器正常关闭时,会调用destroy方法将servlet销毁。
注意:servlet是线程不安全的,也就是说,不建议在servlet中创建成员变量。
Servlet配置详解
对于servlet,我们需要在web.xml文件中对其进行配置
下面这个是声明一个servlet
<servlet>
<servlet-name>servlet名称</servlet-name>
<servlet-class>servlet类全名</servlet-class>
</servlet>
下面这个是关于servlet映射
<servlet-mapping>
<servlet-name>servlet名称</servlet-name>
<url-pattern>资源路径</url-pattern>
</servlet-mapping>
url-pattern它就是用于确定访问servlet的一个路径。
问题:对于一个servlet我们是否可以有多条路径访问?