Servlet
简介:
- servlet就是sun公司开发动态web的一门技术
- Sun在这些API中提供一个接口叫做:Servlet,如果逆向开发一个Servlet程序,只需要完成两个小步骤:
1、编写一个类,实现servlet接口
2、把开发好的Java类部署到web服务器中
把实现了Servlet接口的Java程序叫做Servlet
HolleServlet
Servlet接口 sun公司有两个默认的实现类:HttpServlet,GenericServlet
构建一个普通的maven项目,删掉里面的src目录,以后我们的学习就在这个项目里建立Moudel;这个空的工程就是maven主工程;
导入maven依赖:
- maven仓库:https://mvnrepository.com/
(版本不一样的话可以到maven仓库中找适合自己的版本)
<!-- Servlet依赖 --> <!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api --> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>4.0.1</version> <scope>provided</scope> </dependency>
<!-- JSP依赖 --> <!-- https://mvnrepository.com/artifact/javax.servlet.jsp/javax.servlet.jsp-api --> <dependency> <groupId>javax.servlet.jsp</groupId> <artifactId>javax.servlet.jsp-api</artifactId> <version>2.3.3</version> <scope>provided</scope> </dependency>
关于maven仓库父子工程的理解:
父项目中的jar包子项目可以直接使用
如何编写一个Servlet程序:
- 编写一个普通类
- 实现Servlet接口,直接继承HttpServlet
- 重写get、post方法
编写Servlet的映射:
为什么需要映射:我们写的是Java程序,但是需要浏览器访问,而浏览器需要连接web服务器,所以我们需要在web服务中注册我们的Servlet,还需要给它一个浏览器能够访问的路径。
在web.xml中:
<!-- 注册Servlet --> <servlet> <servlet-name>Name</servlet-name> <servlet-class>ClassPath(类的路径:例如com.srx.Servlet.servletTest)</servlet-class> </servlet> <!-- Servlet的请求路径 --> <servlet-mapping> <servlet-name>Name</servlet-name> <url-pattern>/Url</url-pattern> </servlet-mapping>
Mapping问题
- 一个Servlet可以指定一个映射路径
<servlet-mapping> <servlet-name>Name</servlet-name> <url-pattern>/Url</url-pattern> </servlet-mapping>
- 一个Servlet可以指定多个映射路径(多个路径可以同时指向一个Servlet)
<servlet-mapping> <servlet-name>Name</servlet-name> <url-pattern>/Url2</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>Name</servlet-name> <url-pattern>/Url3</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>Name</servlet-name> <url-pattern>/Url4</url-pattern> </servlet-mapping>
- 一个Servlet可以指定通用映射路径(在请求时路径后任意输入都可以响应到指定Servlet)
<servlet-mapping> <servlet-name>Name</servlet-name> <url-pattern>/Url/*</url-pattern> </servlet-mapping>
- 指定一些后缀或者前缀等(可以自定义后缀实现请求映射,星号前面不能加映射路径)
<servlet-mapping> <servlet-name>Name</servlet-name> <url-pattern>*.任意后缀</url-pattern> </servlet-mapping>
优先级问题:指定了固定的映射路径优先级最高,如果找不到的话就会走默认的处理请求。
原文地址:https://www.cnblogs.com/laoqi795/p/12238821.html
时间: 2024-10-21 22:40:05