abtious

*Servlet简介:

sun公司提供一个api叫做Servlet,实现了Servlet接口的java程序叫Servlet

sun公司实现了两个它的类:HttpServlet,GenericServlet

构建一个空的maven项目,删掉src目录,在这个项目中建立moudel;这个空工程

 

*关于maven父子工程的理解

父项目中的pom.xml文件中会有

子项目中的pom.xml文件中会有

这样做,可以在一个父工程中创建多个子工程,不用多次新建项目

子工程中可以使用父工程在pom.xml中配置的依赖,不用重复配置相同的依赖。

 

 

将子项目中的web.xml的头文件换成tomcat中给的例子中的较新的版本

 

*maven环境优化

1、 更换web.xml头文件为tomcat例子中的头文件

2、 将maven的结构搭建完整,添加java,和resources文件夹

*编写一个servlet程序

   编写一个普通类,实现Servlet接口,这里我们直接继承HttpServlet,它实现了Servlet接口

 

*编写Servlet的映射(在web.xml文件中)

  为什么需要映射:我们写的是java程序,但是要通过浏览器访问,而浏览器需要连接web服务器,

  所以我们需要在web服务中注册我们写的Servlet,还需要给它一个浏览器能够访问的路径。

 

*配置tomcat

*启动测试

 

 

 

 

 

*servlet原理

浏览器发送请求到tomcat服务器,服务器从请求request中拿到内容,执行servlet程序,执行它父类HttpServlet中service函数,

它其中根据请求类型调用我们重写的doGet()或者doPost()函数。将响应交给response, tomcat将响应信息返回给浏览器。

 

*servlet映射:

一个注册的<servlet>可以对应的<servlet-mapping>中的路径

 

1、一个servlet可以指定一个映射路径(基本情况,也可以/hello/hello)

2、一个servlet可以指定多个映射路径(多个< servlet-mapping >中名字都是一个)

3、一个servlet可以指定通用映射路径(/hello/*,)

4、/*会优先权最高,默认请求路径

5、 /*.tao这种报错,使用指定后缀,不能加项目路径即:*.tao;  

    /hello/*.tao也不行,,,但是配置*tao 可以用localhost:8080/s1/hello/hhhh.tao访问

 

 

*优先级问题

如果配置了/hello和/*

项目启动肯定进入/*对应的页面,输入/hello将进入/hello

指定了固定的映射路径优先级最高,如果找不到,就会走/*默认的请求路径

 

分类:

技术点:

相关文章: