Maven关于web.xml中Servlet和Servlet映射的问题
在配置Servlet
时,有两个地方需要配置.
-
一个是
<servlet>
,另一个是<servlet-Mapping>
,这两个一个是配置Servle
t,一个是配置其映射信息. -
<servlet>
中的<servlet-name>
可以随意指定,但要有一定的意义,一般取为类的名称,例如我的类名为ServletDemo
,这里取名为ServletDemo
,下面的<servlet-class>
是类的全路径,package+calssname
,一定要是全路径! -
<servlet-Mapping>
是映射信息,它也有一个<servlet-name>
,里面的名字是对应的Servlet
名,也就是我们上面配置的Servlet
名字,这里是ServletDemo
,下面的是映射路径,也就是访问Servlet
的名称. -
web.xml 的 / 表示的是http://localhost:8080/ + 工程名
而.jsp页面的action,加了/表示绝对路径http://localhost:8080/ ,没有加 / 表示的是相对路径 -
配置信息如下
<!-- 配置一个servlet -->
<!-- servlet的配置 -->
<servlet>
<!-- servlet的内部名称,自定义。尽量有意义 -->
<servlet-name>ServletDemo</servlet-name>
<!-- servlet的类全名: 包名+简单类名 -->
<servlet-class>lm.practice.ServletDemo</servlet-class>
</servlet>
<!-- servlet的映射配置 -->
<servlet-mapping>
<!-- servlet的内部名称,一定要和上面的内部名称保持一致!! -->
<servlet-name>ServletDemo</servlet-name>
<!-- servlet的映射路径(访问servlet的名称) -->
<url-pattern>/servlet</url-pattern>
</servlet-mapping>
- 访问路径如下图所示