servlet的映射与在idea中的使用

PS:创建Servlet之前需要先导入Servlet的jar包,不然你会发现你没有Servlet选项。(一般jar包都可以从这个网址(https://www.mvnrepository.com/)下载,这里需要的是"Java Servlet API"该jar包)

一. idea的Servlet创建与映射

选中相应的包,右键New,可以看到有一个Servlet选项:
在这里插入图片描述
出现如下窗口,我将新建的Servlet命名为HelloServlet:
在这里插入图片描述

红色圈中的选项切记不要勾选,像这样创建好Servlet之后,找到并打开web.xml:
在这里插入图片描述
web.xml中会看到,idea已经自动帮我们注册了Servlet:
在这里插入图片描述
如果你选中了刚刚红色圈中的选项,那么idea将不会自动为我们注册,至于为什么报错,是因为我们还没有设置映射:
在这里插入图片描述
可以看到设置了映射之后,就不会报错了。

二. Servlet映射

上面简单提到了一下Servlet的映射,这里拓展一下。

同一个Servlet可以有多个映射:

在这里插入图片描述
能通过通配符映射,有2种格式:

  1. *.拓展名
  2. /*

通配符的匹配原则(这段是从孤傲苍狼老师的文章中拷过来的):

对于如下的一些映射关系:
  Servlet1 映射到 /abc/*
  Servlet2 映射到 /*
  Servlet3 映射到 /abc
  Servlet4 映射到 *.do
问题:
  当请求URL为“/abc/a.html”,“/abc/*”和“/*”都匹配,哪个servlet响应
      Servlet引擎将调用Servlet1。
      
  当请求URL为“/abc”时,“/abc/*”和“/abc”都匹配,哪个servlet响应
      Servlet引擎将调用Servlet3。
      
  当请求URL为“/abc/a.do”时,“/abc/*”和“*.do”都匹配,哪个servlet响应
      Servlet引擎将调用Servlet1。
      
  当请求URL为“/a.do”时,“/*”和“*.do”都匹配,哪个servlet响应
      Servlet引擎将调用Servlet2。
      
  当请求URL为“/xxx/yyy/a.do”时,“/*”和“*.do”都匹配,哪个servlet响应
      Servlet引擎将调用Servlet2。

可以看出匹配的原则就是"谁长得更像就找谁"。

三. 运行(供刚入门的人参考,建议跳过)

先配置Tomcat,在右上角处:
在这里插入图片描述
点击那个tomcat的位置,因为我之前配置过,所以这里显示的是tomcat,点击后如下:
在这里插入图片描述
点击选中的选项,即Edit …选项,然后在弹出的窗口中点击+号,找到Tomcat Server,然后点击这个选项中的Local:
在这里插入图片描述
点击Local后,左边会出现如下框:
在这里插入图片描述
我们先设置圈出的Name,我之前的那个Tomcat设置的是tomcat,所以显示为tomcat,然后点击fix添加依赖的web:
在这里插入图片描述
有时候会有多个选项,但是记得一定要选则图片中看到的这个选项。
然后就可以运行了。这里注意一下Application context这个选项,这个会决定你的的路径名。
我设置了\所以,访问地址为localhost:8080/hello:
在这里插入图片描述
假设我设置了abc那么,访问地址就会变为localhost:8080/abc/hello(不做演示了)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值