*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
指定了固定的映射路径优先级最高,如果找不到,就会走/*默认的请求路径