Jsp&Servelet 学习笔记- 映射一个Servlet实名到web.xml中

为你的Servlet创建一个别名,或路径

web.xml中创建servletservlet-mapping元素

 
在部署描述文件中的 servlet-mapping 元素中为 Servlet 创建一个别名,在 web.xml 文件中所有的 servlet 元素必须在所有的 servlet-mapping 元素的之前 servlet-mapping 元素根据 servlet-name 中的 name 值。比如:
 <servlet><servlet-name>myservlet</servlet-name></servlet>

根据这个servlet注册的name,那么这个servlet-mapping元素提供name,URL pattern子元素,当一个web应用的使用者在浏览器中键入URL pattern值时就能访问到这个servlet类。

 

Example 3-1. servlet and servlet-mapping elements

<? xml version="1.0" encoding="ISO-8859-1" ?>
<! DOCTYPE web-app
    PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
           "http://java.sun.com/dtd/web-application_2_3.dtd"
>

< web-app >
  
< servlet >
    
< servlet-name > CookieServlet </ servlet-name >
    
< servlet-class > com.dev.CookieServlet </ servlet-class >
   
</ servlet >

   
< servlet-mapping >
     
< servlet-name > CookieServlet </ servlet-name >
     
< url-pattern > /cookieservlet </ url-pattern >
   
</ servlet-mapping >
</ web-app >

在这个范例中servlet元素中通过使用servlet-name元素注册一个name “CookieServlet”

这个class name servlet-class元素指定了这个servlet类实际的地址。也许是WEB-INF/classes/com/mydev/ 或者在jar文件包中的WEB-INF/lib中。"CookieServlet"成为这个servlet的注册名字

现在创建servlet path 通过这个path web 应用程序的使用者将能够使用浏览器来访问这个servlet。这个别名的命名通过servlet-mapping元素来完成。servlet-name通过web.xml来区分注册的name并且通过url-pattern元素产生一个URL用来访问servlet.通过/cookiesservlet在上下文来区分servlet

这个市最普通的URL

http://<host>:<port>/<context path>/<servlet-path>

大多数的servlet容器允许使用默认的上下文,上下文的路径是/. 在这个情况下一般的URL形式是:

http://<host>:<port>/<servlet-path>

举个实例如果你使用Tomcat4.1x在你的本机上并且你创建了一个叫“myapp”的应用程序。它的servlet URL pattern/myservlet。对于这个servlet整个的web地址就像如下:

http://localhost:8080/myapp/myservlet.

你也可以如下URL形式来访问一个servlet:

http://host:port/context path/servlet/registered-servlet-name

所以当一个注册了的servlet name是“MyServlet”则URL:

http://localhost:8080/myapp/servlet/MyServlet.

 

可以通过继承`javax.servlet.GenericServlet`类来编写一个Servlet,并重写其的`init`、`service`和`destroy`方法,以观察这个Servlet的出生、服务和销毁过程。具体实现如下: ```java import java.io.IOException; import javax.servlet.GenericServlet; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; public class MyServlet extends GenericServlet { private static final long serialVersionUID = 1L; @Override public void init() throws ServletException { System.out.println("MyServlet正在初始化..."); super.init(); } @Override public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException { System.out.println("MyServlet正在服务..."); res.getWriter().println("Hello, World!"); } @Override public void destroy() { System.out.println("MyServlet正在销毁..."); super.destroy(); } } ``` 在上面的代码,我们继承了`javax.servlet.GenericServlet`类,并重写了其的`init`、`service`和`destroy`方法。在`init`方法,我们输出了一条正在初始化的消息;在`service`方法,我们输出了一条正在服务的消息,并向客户端输出了一句话;在`destroy`方法,我们输出了一条正在销毁的消息。 接下来,我们需要在web.xml文件配置Servlet。具体配置如下: ```xml <web-app> <servlet> <servlet-name>MyServlet</servlet-name> <servlet-class>MyServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>MyServlet</servlet-name> <url-pattern>/myservlet</url-pattern> </servlet-mapping> </web-app> ``` 在上面的配置,我们将ServletURL映射到`/myservlet`路径下。这样,在浏览器访问`http://localhost:8080/项目名/myservlet`,就可以触发该Servlet的服务方法,并在控制台观察到输出的消息了。 在服务器启动时,Servlet容器会自动初始化并实例化该Servlet,并调用其`init`方法。每次有请求到达时,Servlet容器就会调用该Servlet的`service`方法来处理请求。当服务器关闭或应用程序被卸载时,Servlet容器会调用该Servlet的`destroy`方法来销毁该Servlet实例。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值