无意之间发现的Servlet3.0新特性@WebServlet

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了无意之间发现的Servlet3.0新特性@WebServlet相关的知识,希望对你有一定的参考价值。

      今天无意之间看到了一个注解,这个注解就是@WebServlet,@WebServlet 用于将一个类声明为 Servlet,该注解将会在部署时被容器处理,容器将根据具体的属性配置将相应的类部署为 Servlet。该注解具有下表给出的一些常用属性(以下所有属性均为可选属性,但是 vlaue 或者urlPatterns 通常是必需的,且二者不能共存,如果同时指定,通常是忽略 value 的取值)完成了一个使用注解描述的Servlet程序开发。

      [email protected]注解常用属性:

     技术分享

     2.开发第一个案例

     2.1开发环境MyEclipse+Tomact

   1.创建web项目这里需要注意的就是创建web项目的时候选择JavaEE6

技术分享

    2.创建Servlet

    

package cn.servlet;

import java.io.IOException;

import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebInitParam;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * 属性name用了描述servlet的
 * Servlet的访问URL是Servlet的必选属性,可以选择使用urlPatterns或者value定义
 * 属性urlPatterns定义访问的url
 * loadOnStartup=1容器初始化就执行
 * @author hyj
 *
 */
@WebServlet(name="userservlet",urlPatterns="/userservlet",loadOnStartup=1,initParams={@WebInitParam(name="username",value="张三")})
public class UserServlet extends HttpServlet {
      @Override
    public void init(ServletConfig config) throws ServletException {
          //获取初始值username
          System.out.println(config.getInitParameter("username"));
    }
      @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException {
              System.out.println("doget方法执行");
      }
}

    3.启动tomact进行测试

    技术分享

   测试成功在容器初始化的时候获取初始化的username值。

   load-on-startup元素标记容器是否在启动的时候就加载这个servlet(实例化并调用其init()方法)。在这里我配置的值是1,表示在容器初始化的时候就去实例化这个servlet。

   3.2试试在浏览器中请求该servlet:我们从注解中可以看到返回url是userservlet

   技术分享

技术分享

 

   

 

以上是关于无意之间发现的Servlet3.0新特性@WebServlet的主要内容,如果未能解决你的问题,请参考以下文章

Servlet3.0新特性

Servlet3.0新特性

Servlet3.0新特性

Servlet3.0新特性之web-fragment.xml模块化配置文件

servlet3.0 新特性——异步处理

JavaWeb学习之Servlet3.0新特性详解