web.XML文件内容

web.xml是在学习javaWeb时遇到的第一个坑,刚开始不知道有什么用的时候真是GGG…..一万个跑不起来。(基础不牢的可怕…)
于是在知识丰富后决定写点东西记录一下(放置自己忘了)

web项目中,xml文件要和servelt类配合使用,准确地说web.xml文件就是servelt的配置文件

学过html的人应该都能理解标签的作用,web.xml就是通过标签来进行名称,路由和servelt的相互关联的.

基本的xml是这样的


<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
  <display-name>ddisplay-name>
  <welcome-file-list>
    <welcome-file>index.htmlwelcome-file>
    <welcome-file>index.htmwelcome-file>
    <welcome-file>index.jspwelcome-file>
    <welcome-file>default.htmlwelcome-file>
    <welcome-file>default.htmwelcome-file>
    <welcome-file>default.jspwelcome-file>
  welcome-file-list>
  ........
web-app>

目前所有的内容都可以由编译器自动生成,无需更改。不过可以根据自己的需要修改welcome-file-list中的内容,运行时输入项目名会直接访问到列表中第一个文件,没有的话会访问第二个,依次类推;

……处将填入servelt的配置信息

<servlet>
   <servelt-name>Myserveletservelt-name>
   <servelt-class>web.app.Myserveltservelt-class>
   <servelt-name>...servelt-name>
   <servelt-class>....servelt-class>
   ..
servlet>
<servlet-mapping>
   <servelt-name>Myserveletservelt-name>
   <url-pattern>/helloWorldurl-pattern>
   <servelt-name>..servelt-name>
   <url-pattern>..url-pattern>
servlet-mapping>

servelt标签中的内容是注册一个servelt,其中的servelt-name代表注册servelt的类名,后续的servelt-class是完整的路径
servlet-mapping用来映射外部访问时的虚拟路径。url-pattern是一个以/开头的字符串,可以通过项目网址+url-pattern的方式来访问到该servelt(只有映射到虚拟路径的servelt才能被被客户端访问到)

一些注意的地方

servlet-mapping中可以对同一个name配多个url-pattern,然后同一个servelt可以通过多个路径访问

url-pattern中可以使用通配符,支持的格式有(1)*.xx(2)xx/*
(1)可以匹配任何以.xx结尾的路径
(2)可以匹配任何以xx开头的路径
两种通配符不能同时使用
如果可以匹配到多个存在的路径的话,
会有一个比较
无通配符url>有通配符url
xx/*>/*
xx/*>*.xx
/*>*.xx

url-pattern 为“/”的servlet为默认servelt,所有URL地址不存在的访问,都会转交至默认servlet

web.xml中的其它内容

param>
  <param-name>param-name>
  <param-value>param-value>
param>

init-param标签是sevelt标签下的一个子标签,用来确认一些基础属性(比如字符编码)param-name和param-value中分别填入属性名和属性值,运行时这些属性会被封装为一个serveltCOnfig对象传递给servelt

应用程序配置

param>
   <param-name>ddparam-name>
   <param-value>ddparam-value>
param>
param>
   <param-name>ddparam-name>
   <param-value>ddparam-value>
param>

使用与上文类似,不过直接放在根元素中,同样在启动时会被封装为ServeltContext对象使用(除了配置信息外,还可以传递全局参数)

你可能感兴趣的:(jsp)