Servlet和JSP学习总结(六)--部署描述符与@webservlet注解

之前我们在编写HelloWorld项目时,在WEB-INF目录下创建了一个web.xml文件。这个文件叫做部署描述文件,每个Servlet应用程序的部署描述文件的名称都是web.xml。Web容器在启动时读取该文件,对应用程序进行配置。下面给出了部署描述文件中常用的元素

<servlet></servlet> 用来声明一Servlet的信息,主要有以下子元素

  • <servlet-name> 用来定义Servlet的名称,该名称在整个应用中必须是惟一的
  • <servlet-class> 用来指定Servlet的完全限定类名。
  • <init-param> 用来定义参数,可有多个init-param。Servlet类中通过getInitParamenter(String name)方法访问初始化参数。
  • <load-on-startup> 指定当Web应用启动时,装载Servlet的次序。当值为正数或零时,Servlet容器先加载数值小的Servlet。当值为负或未定义时,Servlet容器将在Web客户首次访问这个Servlet时加载它。

<servlet-mapping> 用来定义Servlet所对应的URL,包含两个子元素

  • <servlet-name> 指定要映射的Servlet的名称。
  • <url-pattern> 指定servlet所对应的URL。

使用@webservlet注解也可以实现相同的功能。下面给出了@webservlet注解的属性以及与之对应的部署描述文件中的元素。

@webservlet的属性 对应的部署描述文件中的元素 备注
name servlet-name 如果没有显示指定,则取值即为Servlet类的完全限定类名
urlPatterns url-pattern
value url-pattern 与urlPatterns不能共存
loadOnStartup load-on-startup
initParams init-param

下面我们把之前的HelloWorld项目使用注解的方式重新写一遍

package com.mc.hello;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.Servlet;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.annotation.WebServlet;

@WebServlet(name = "helloworld", urlPatterns = { "/hello" })
public class HelloWorldServlet implements Servlet{

    private transient ServletConfig servletConfig;
    
    @Override
    public void init(ServletConfig servletConfig) throws ServletException {
        this.servletConfig = servletConfig;
    }

    @Override
    public void service(ServletRequest request, ServletResponse response)
            throws ServletException, IOException {
        response.setContentType("text/html");
        PrintWriter writer = response.getWriter();
        
        writer.print("<html><head></head><body>Hello World!" + getServletConfig().getServletName() +"</body></html>");
    }

    @Override
    public void destroy() {}

    @Override
    public ServletConfig getServletConfig() {
        return servletConfig;
    }

    @Override
    public String getServletInfo() {
        return "HelloWorld Servlet";
    }
}

下一篇:Servlet和JSP学习总结(七)--Cookie

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 本章聊一聊ServletContext 3.0规范中定义的注解以及在web应用中使用的框架和库的可插拔性的提升。 ...
    Lucky_Micky阅读 6,114评论 0 3
  • 本章为部署描述符中Web容器支持详细描述Java Servlet 规范3.0版本要求。部署描述符在应用开发者,应用...
    Lucky_Micky阅读 2,079评论 0 0
  • Spring Boot 参考指南 介绍 转载自:https://www.gitbook.com/book/qbgb...
    毛宇鹏阅读 46,993评论 6 342
  • 从三月份找实习到现在,面了一些公司,挂了不少,但最终还是拿到小米、百度、阿里、京东、新浪、CVTE、乐视家的研发岗...
    时芥蓝阅读 42,394评论 11 349
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,131评论 19 139