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

(其实就是一个java类,只不过不用再new了)。servlet 通常通过 HTTP(超文本传输协议)接收和响应来自

 

一、实现javax.servlet.Servlet接口

写一个java类,实现servlet接口

java 如何创建 HttpServletResponse_java

java 如何创建 HttpServletResponse_开发工具_02

java 如何创建 HttpServletResponse_xml_03

java 如何创建 HttpServletResponse_开发工具_04

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

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

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

 

java 如何创建 HttpServletResponse_tomcat_05

java 如何创建 HttpServletResponse_java_06

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

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

java 如何创建 HttpServletResponse_xml_07

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

 

java 如何创建 HttpServletResponse_web.xml_08

应用部署到服务器(tomcat)

 

java 如何创建 HttpServletResponse_tomcat_09

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

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

java 如何创建 HttpServletResponse_tomcat_10

执行过程如下:

java 如何创建 HttpServletResponse_java_11

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

 

 

二、继承javax.servet.GenericServlet类

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

 

java 如何创建 HttpServletResponse_xml_12

java 如何创建 HttpServletResponse_web.xml_13

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

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

 

java 如何创建 HttpServletResponse_xml_14

然后在web.xml下输入

java 如何创建 HttpServletResponse_xml_15

然后重新部署tomcat

java 如何创建 HttpServletResponse_开发工具_16

然后在浏览器中输入:

http://localhost:8080/day07/demo2 

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

按住ctrl键然后点击下图

 

java 如何创建 HttpServletResponse_tomcat_17

然后点击下图

 

java 如何创建 HttpServletResponse_开发工具_18

 

然后点击下图

java 如何创建 HttpServletResponse_java_19

然后倒入tomcat源码

 

java 如何创建 HttpServletResponse_开发工具_20

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

 

java 如何创建 HttpServletResponse_tomcat_21

 

 

 

三、继承javax.servlet.http.HttpServlet类

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

新建应用程序然后导包

java 如何创建 HttpServletResponse_web.xml_22

java 如何创建 HttpServletResponse_xml_23

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

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

 

java 如何创建 HttpServletResponse_开发工具_24

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

java 如何创建 HttpServletResponse_web.xml_25

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

java 如何创建 HttpServletResponse_xml_26

在web.xml文件输入

java 如何创建 HttpServletResponse_tomcat_27

然后重新加载

java 如何创建 HttpServletResponse_java_28

浏览器中访问

http://localhost:8080/day07/demo3

就会在 Myeclipse 出现

java 如何创建 HttpServletResponse_开发工具_29

原理:

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

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

曾祖父         爷爷                    爸爸                    孙子

 

 

 

 

 

 

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

java 如何创建 HttpServletResponse_tomcat_30

java 如何创建 HttpServletResponse_java_31

java 如何创建 HttpServletResponse_xml_32

然后就会自动生成惹

java 如何创建 HttpServletResponse_web.xml_33

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

 

 

 

 

 

 

servet映射细节

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

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

java 如何创建 HttpServletResponse_xml_34

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

java 如何创建 HttpServletResponse_java_35

 

 

上图的箭头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.52\conf 下的web.xml在97行和360行可知只要在浏览器中输入

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