代码地址: https://github.com/Zhuyaqiang/javaweb-study
目录
6 Servlet
两个Servlet接口: HttpServlet, GenericServlet
6.1 Servlet简介
-
Sun提供Servlet接口, 开发Servlet程序两步骤:
- 编写一个类, 实现Servlet接口
- 把开发好的Java类部署到web服务器中
实现了Servlet接口的JavaWeb程序叫做Ser
6.2 HelloServlet
-
Maven环境优化
- 修改web.xm为最新的
- 将maven的结构搭建完整
-
编写一个Serverlet程序
- 编写一个普通类
- 实现Servlet接口, 继承HttpServlet, 重写doGet/doPost方法
-
在
web.xml
文件中编写Servlet的映射为什么需要映射: 写的是JAVA程序, 但是要通过浏览器访问, 而浏览器需要链接Web服务器, 所以需要在Web服务中注册Servlet, 还需要给他一个浏览器能够访问的路径
-
配置Tomcat
6.3Servlet原理
Servlet是由Web服务器调用, Web服务器在收到浏览器请求之后:
6.4 Mapping
-
一个Servlet可以指定一个映射路径
<servlet-mapping> <servlet-name>hello</servlet-name> <url-pattern>/hello</url-pattern> </servlet-mapping>
-
一个Servlet可以指定多个映射路径
-
一个Servlet可以指定通用映射路径
<servlet-mapping> <servlet-name>hello</servlet-name> <url-pattern>/hello/*</url-pattern> </servlet-mapping>
-
默认请求路径
<servlet-mapping> <servlet-name>hello</servlet-name> <url-pattern>/*</url-pattern> </servlet-mapping>
-
各种前缀或后缀(注意: *前面不能加项目映射的路径)
<servlet-mapping> <servlet-name>hello</servlet-name> <url-pattern>*.com</url-pattern> </servlet-mapping>
-
优先级问题
指定了固有的映射路径优先级最高, 如果找不到就会走默认的处理请求
6.5 ServletContext
Web容器在启动的时候, 会为每个Web程序都创建一个对应的ServletContext对象, 代表了当前的Web应用
-
共享应用(之后会被session/request等技术替代, 少用): 在这个Servlet中保存的数据, 可以再在一个Servlet中拿到
两个Servlet类(网页), 一个通过context.setAttributes设置属性, 一个通过getAttributes获取属性
-
获取初始化参数
<!--配置一些Web应用初始化参数--> <context-par