您的位置:首页 > 其它

初学者创建与运行Servlet以及Servlet的生命周期

2017-06-20 15:21 253 查看
A:新建一个WEB工程

1.创建一个普通的项目:如day13-servlet

2.在项目下面创建一个普通文件夹:如webapps

3.在webapps文件夹里面创建一个WEB-INF文件夹

4.在WEB-INF文件夹里面创建lib文件夹,该文件夹用来装相应的jar包

5.在WEB-INF文件夹里面创建classes文件夹,该文件夹用来存放字节码文件

6.在WEB-INF文件夹里面创建web.xml文件(web.xml是copy来的)

7.配置字节码文件输出到classes文件夹

8.配置tomcat中的server.xml到项目的webapps目录(关联tomcat服务器)

B:创建Servlet

1.导入相应的jar包:tomcat-lib-servlet-api.jar

2.创建一个普通的Java类,实现Servlet接口

3.在对应的service(服务)方法中写上我们的java代码

C:将我们创建好的Servlet交给Servlet容器去管理

1.在web.xml中写相应的配置(这个文件是约定好的)

配置代码如下:

<!--

servlet标签:讲Servlet交给tomcat去管理

Servlet标签:用来配置一个Servlet的类

servlet-name标签:为我们的Servlet取名

servlet-class:中间放Servlet的全限定名称

如何检验全限定名称对错?鼠标选中“全限定名称”按ctrl可以跳转(选择)。则表示正确

-->

<servlet>
<servlet-name>hello</servlet-name>
<servlet-class>cn.itsource.servlet.TestServlet</servlet-class>
</servlet>


<!--

暴露一个地址,放外部可以访问到我们配置的Servlet

servlet-mapping:Servlet的映射

servlet-name:根据这个名称找到相应的真实Servlet,必须同上面的servlet-name名称一致

url-pattern:表示暴露给外部的地址。注意:地址前面必须加“/”

-->

<servlet-mapping>
<servlet-name>hello</servlet-name>
<url-pattern>/hello</url-pattern>
</servlet-mapping>


2.在server.xml中写相应的配置

<Context docBase="D:\Workspace\day13-tomcatservlet\webapps" path="servlet" />

D:\Workspace\day13-tomcatservlet\webapps 这个文件路径是如下图:

D:运行Servlet

1.启动服务器

2.打开浏览器进行访问

注:初学者创建运行Servlet的常见错误。

1 配置的时候docBase里面不要有中文,空格,特殊符号

2 url-pattern 必需要加上一个 /

3 servlet-class中的全限定名一定要正确

4 一定要配置classes

5 servlet中一定要有一个公共无参的构造器(不用自己写,本身就存在)

Servlet的生命周期

在一个Servlet有几个方法:

getServletConfig() :得到Servlet的配置信息

getServletInfo() :得到Servlet的信息(作者,名字)

下面三个被称为生命周期方法:

init(ServletConfig config):初始化

service(ServletRequest req, ServletResponse resp):服务(运行)

destroy() : 销毁(做一些扫尾工作,请大家不要在这里写代码)

1 服务器运行的时候,Servlet是不会创建的,它会去检查xml中的语法,但是不会去创建相应的Servlet

2 当我们第一次访问的时候:会创建对象->执行初始化方法->运行service方法

3 当我们再次访问同一个Servlet的时候,只执行service方法,创建与初始化方法只会执行一次

4 当服务器关闭的时候,执行销毁方法(正常关闭的时候)

Servlet生命周期的运行流程

构造器 -> 初始化[init]->【运行[service]多次循环运行】->销毁(正常关闭)



                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  servlet web