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(不做演示了)

### 回答1: 在web.xml配置servlet的方法如下: 1. 在web.xml文件添加servlet定义,例如: ``` <servlet> <servlet-name>MyServlet</servlet-name> <servlet-class>com.example.MyServlet</servlet-class> </servlet> ``` 2. 在web.xml文件添加servlet映射,例如: ``` <servlet-mapping> <servlet-name>MyServlet</servlet-name> <url-pattern>/myServlet</url-pattern> </servlet-mapping> ``` 3. 重新部署应用程序,即可在浏览器通过"http://your-domain/your-app/myServlet"访问该servlet。 ### 回答2: 首先,需要了解什么是web.xml文件。web.xml文件是Java Web应用程序的部署描述文件,它描述了Web应用程序的所有组件。其包括servlet、filter、listener等web组件的定义和配置。通过web.xml文件,可以为Web应用程序提供自定义的配置信息,以使其能够更加灵活、强大。 而在web.xml文件配置servlet非常常见且必要。通过配置servlet,可以将请求映射servlet,并指定其对应的URL模式。这样,当有请求匹配到URL模式时,就会调用相应的servlet进行处理。 下面是在web.xml配置servlet的步骤: 1.在web.xml文件添加servlet元素,例如: ``` <servlet> <servlet-name>MyServlet</servlet-name> <servlet-class>com.example.MyServlet</servlet-class> </servlet> ``` 其servlet-name是servlet的名称,servlet-class是servlet类的完全限定名。 2.在web.xml文件添加servlet-mapping元素,将servlet映射到URL模式。例如: ``` <servlet-mapping> <servlet-name>MyServlet</servlet-name> <url-pattern>/myservlet/*</url-pattern> </servlet-mapping> ``` 其servlet-name是之前定义的servlet的名称,url-pattern是URL模式。这里的意思是,当有请求路径是“/myservlet/”及其子路径时,就会调用MyServlet进行处理。 3.部署web应用程序。将web.xml和servlet类打包成war文件,然后将其部署到Web容器即可。 需要说明的是,虽然配置servlet是很常见的操作,但是现在的Java Web应用程序往往采用注解的方式来配置servlet,这种方式更加方便和简洁,不需要在web.xml文件进行大量的配置。但是,了解在web.xml配置servlet的方法仍然有必要,因为这是Java Web编程的基础知识之一。 ### 回答3: 在使用Java Web技术开发Web应用程序时,经常需要使用Servlet来处理HTTP请求和响应。而在将Servlet运行在Web容器时,需要在web.xml文件进行Servlet的配置,以便让Web容器启动和管理Servlet的生命周期。 下面是在web.xml配置Servlet的步骤: 1. 创建一个Servlet类 首先要创建一个继承自javax.servlet.http.HttpServletServlet类。这个类需要实现doGet、doPost等方法,以处理HTTP请求和响应。 2. 在web.xml配置Servlet类 在web.xml文件需要添加一个<servlet>元素来配置Servlet类,其包括Servlet的名称和完整的Servlet类名。 <servlet> <servlet-name>servletSample</servlet-name> <servlet-class>com.example.ServletSample</servlet-class> </servlet> 3. 配置Servlet映射 在<servlet>元素之后,需要再添加一个<servlet-mapping>元素,用于配置Servlet映射路径,即Servlet处理哪些URI请求。 <servlet-mapping> <servlet-name>servletSample</servlet-name> <url-pattern>/sample</url-pattern> </servlet-mapping> 4. 配置Servlet初始化参数(可选) 如果Servlet需要使用一些初始化参数,可以在<servlet>元素添加一个<init-param>元素来配置这些参数。Servlet可以通过getInitParameter()方法获取这些参数的值。 <servlet> <servlet-name>servletSample</servlet-name> <servlet-class>com.example.ServletSample</servlet-class> <init-param> <param-name>param1</param-name> <param-value>value1</param-value> </init-param> </servlet> 5. Servlet的声明周期 Servlet的生命周期由Web容器管理,可以在web.xml文件添加一个<load-on-startup>元素来设置Servlet的启动顺序,以保证Servlet能够在Web应用程序启动时就被加载和初始化。 <servlet> <servlet-name>servletSample</servlet-name> <servlet-class>com.example.ServletSample</servlet-class> <load-on-startup>1</load-on-startup> </servlet> 通过如上步骤,配置完整的Servlet,就可以在Web应用程序使用Servlet来处理HTTP请求和响应了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值