Servlet3.0中使用注解配置Servlet

转自:http://www.108js.com/article/article10/a0021.html?id=1496

原文补充在servlet3.0中可以使用注解方式来简化web.xml中对Servlet的配置,当然不仅仅是对Servlet进行配置,还可以对Filter,Listener。

        在servlet3.0中同样也可以使用web.xml,在<web-app>标签下有一属性metadata-complete="true" 在设置true时,Servlet中的注解会失效,默认值为false。


原文:开发Servlet3的程序需要一定的环境支持。Servlet3是Java EE6规范的一部分,MyEclipse10和Tomcat7都提供了对Java EE6规范的支持。

  @WebServlet 用于将一个类声明为Servlet,该注解将会在部署时被容器处理,容器将根据具体的属性配置将相应的类部署为 Servlet。该注解具有下表给出的一些常用属性(以下所有属性均为可选属性,但是 vlaue 或者 urlPatterns 通常是必需的,且二者不能共存,如果同时指定,通常是忽略 value 的取值)



package com.cndatacom.servlet;
import java.io.IOException;
import java.io.PrintWriter;

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

/**
* 使用注解描述Servlet
* @author Luxh
*/

/**
* 注解WebServlet用来描述一个Servlet
* 属性name描述Servlet的名字,可选
* 属性urlPatterns定义访问的URL,或者使用属性value定义访问的URL.(定义访问的URL是必选属性)
*/
@WebServlet(name="AnnotationServlet",urlPatterns="/AnnotationServlet")

 public class AnnotationServlet extends HttpServlet {
  public void doGet(HttpServletRequest request, HttpServletResponse response)
   throws ServletException, IOException {

    response.setCharacterEncoding("utf-8");
    response.setContentType("text/html;charset=utf-8");
    PrintWriter out = response.getWriter();
    out.println("<!DOCTYPE HTML>");
    out.println("<HTML>");
    out.println(" <HEAD>");
    out.println("<TITLE>A Servlet</TITLE>");
    out.println("<meta http-equiv=\"content-type\" " + "content=\"text/html; charset=utf-8\">");
    out.println("</HEAD>");
    out.println("<BODY>");
    out.println("Hello AnnotationServlet.");
    out.println(" </BODY>");
    out.println("</HTML>");
    out.flush();
    out.close();
  }
  }

把项目发布到Tomcat7,启动Tomcat7。在浏览器访问:http://localhost:8080/Servlet3/AnnotationServlet

使用@WebServlet将一个继承于javax.servlet.http.HttpServlet的类定义为Servlet组件。

  @WebServlet有很多的属性:

  asyncSupported:声明Servlet是否支持异步操作模式。

  description:   Servlet的描述。

  displayName: Servlet的显示名称。

  initParams: Servlet的init参数。

  name:     Servlet的名称。

  urlPatterns:   Servlet的访问URL。

  value:    Servlet的访问URL。

  Servlet的访问URL是Servlet的必选属性,可以选择使用urlPatterns或者value定义。

  像上面的AnnotationServlet可以描述成@WebServlet(name="AnnotationServlet",value="/AnnotationServlet")。

  也定义多个URL访问:

  如@WebServlet(name="AnnotationServlet",urlPatterns={"/AnnotationServlet","/AnnotationServlet2"})

  或者@WebServlet(name="AnnotationServlet",value={"/AnnotationServlet","/AnnotationServlet2"})


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值