Servlet 三种创建方式

servlet 是运行在 Web 服务器(tomcat)中的小型 Java 程序(即:服务器端的小应用程序

(其实就是一个java类,只不过不用再new)servlet 通常通过 HTTP(超文本传输协议)接收和响应来自 Web 客户端的请求

一、实现javax.servlet.Servlet接口

写一个java类,实现servlet接口

输入impl 然后alt+/可以自动补齐 。

鼠标放在Servlet上可以自动出现要包含的包名。

下图鼠标放在1的位置然后选择2这样就会出现要实现的方法。

 

然后如下图修改web.xml文件

注意:下图中的1是项目的全路径,如果你在建web project项目时填的是com.it.servlet那么下面应该填的是com.it.servlet .Demo1  下图中的2不要忘了/

全路径复制方法入下图:(这样就可以复制出com.it.servlet.Demo1

 

应用部署到服务器(tomcat

 

启动服务器,输入 http://localhost:8080/day8/demo1

浏览器啥都没有,因为我们啥都没写。。。。。原理如下:

执行过程如下:

 tomcat接受浏览器信息,然后找到相应的web projectday07,然后根据web.xml找到servletDemo1(就是我们写的类),并实例化servletDemo1。 然后tomcat调用servlet中的init()方法 Service()方法等

 二、继承javax.servet.GenericServlet

只要重写service方法就行了——适配器模式

 

然后输入下面的程序:(技巧 alt+ / 自动补齐GenericServlet  注意大小写

然后鼠标放到servlet_demo2处自动补齐service方法

 

然后在web.xml下输入

然后重新部署tomcat

然后在浏览器中输入:

http://localhost:8080/day07/demo2 

(就会在myeclipse下框中输出servletDemo2 )

按住ctrl键然后点击下图

 

然后点击下图

 

然后点击下图

然后倒入tomcat源码

 

下图,点击1显示出来的就是GenericServlet类的所有方法,带三角号(箭头2)的是继承servlet的,不带三角号(箭头3)的是自己实现的方法。

 

三、继承javax.servlet.http.HttpServlet

(模板方法设计模式)看源码可知其实就是多态  【开发中常用】

新建应用程序然后导包

插入Override函数(重写函数):

1空白处点击右键,然后选择Source->Override/Implement Methods...如下图:

 

然后如下图选择doget()方法  dopost()方法

然后重写这两个方法如下图

在web.xml文件输入

然后重新加载

浏览器中访问

http://localhost:8080/day07/demo3

就会在 Myeclipse 出现

原理:

Tomcat会创建一个demo3对象,但是demo3是继承httpservlet类的,而浏览器在访问服务器时,Tomcat会调用service方法,但是httpservlet类里重写了GenericServlet类的service方法,所以会调用httpservlet类中的service方法这个方法中调用了doget方法。所以我们要实现doget方法(按住ctrl键,然后鼠标点击相关的类名和函数名可以查找看一下源码)

Servlet --> GenericServlet --> HttpServlet  (继承HttpServlet)

曾祖父         爷爷                    爸爸                    孙子

更简单的创建    【自动生成web.xml 中的内容

然后就会自动生成惹

输入http://localhost:8080/day9/servlet/demo4 即可访问

servet映射细节

在Web.xml添加下图箭头1,那么在浏览器中输入:

http://localhost:8080/day9/demo666 访问的也是demo4中的内容·

web.xml如下图添加的内容作用:

上图的箭头1  *.do 代表任意字符串.do 都能访问demo4

浏览器输入:

http://localhost:8080/day9/demo.do

上图的箭头2   /*    代表任意字符串都能访问demo4

浏览器输入:

http://localhost:8080/day9/de

 

上图的箭头3   /action/*    /action开头的请求都可以访问demo4

浏览器输入:

http://localhost:8080/day9/action/dew

 

 

匹配规则:

优先级:从高到低

绝对匹配(就是名字完全匹配)-->  /开头匹配 --> 后缀名方式匹配

 

打开 F:apache-tomcat-7.0.52conf 下的web.xml97行和360行可知只要在浏览器中输入

http://localhost:8080/day9/ 默认打开的资源都是servlet 

原文地址:https://www.cnblogs.com/expedition/p/11211253.html