`
developersky
  • 浏览: 7945 次
  • 性别: Icon_minigender_1
  • 来自: 成都
最近访客 更多访客>>
社区版块
存档分类
最新评论

Servlet3.0引入的新特性介绍(1)

阅读更多
Servlet3.0规范的新特性主要是为了3个目的:
1.简化开发
2.便于布署
3.支持Web2.0原则
为了简化开发流程,Servlet3.0引入了注解(annotation),这使得web布署描述符web.xml不在是必须的选择。

Pluggability可插入性
当使用任何第三方的框架,如Struts,JSF或Spring,我们都需要在web.xml中添加对应的Servlet的入口。这使得web描述符笨重而难以维护。Servlet3.0的新的可插入特性使得web应用程序模块化而易于维护。通过web fragment实现的可插入性减轻了开发人员的负担,不需要再在web.xml中配置很多的Servlet入口。


Asynchronous Processing 异步处理
另外一个显著的改变就是Servlet3.0支持异步处理,这对AJAX应用程序非常有用。当一个Servlet创建一个线程来创建某些请求的时候,如查询数据库或消息连接,这个线程要等待直到获得所需要的资源才能够执行其他的操作。异步处理通过运行线程执行其他的操作来避免了这种阻塞。


Apart from the features mentioned here, several other enhancements have been made to the existing API. The sections towards the end of the article will explore these features one by one in detail.
除了这些新特性之外, Servlet3.0对已有的API也做了一些改进,在本文的最后我们会做介绍。

Annotations in Servlet Servlet中使用注解
Servlet3.0的一个主要的改变就是支持注解。使用注解来定义Servlet和filter使得我们不用在web.xml中定义相应的入口。

@WebServlet
@WebServlet用来定义web应用程序中的一个Servlet。这个注解可以应用于继承了HttpServlet。这个注解有多个属性,例如 name,urlPattern, initParams,我们可以使用者的属性来定义Servlet的行为。urlPattern属性是必须指定的。
例如我们可以象下面的例子这样定义:
@WebServlet(name = "GetQuoteServlet",  urlPatterns = {"/getquote"} )
public class GetQuoteServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        PrintWriter out = response.getWriter();
        try {
            String symbol = request.getParameter("symbol");
            out.println("<h1>Stock Price is</h1>" + StockQuoteBean.getPrice(symbol);
        } finally {
            out.close();
        }
    }
}

public class StockQuoteBean {
private StockQuoteServiceEntity serviceEntity = new StockQuoteServiceEntity();
    public double getPrice(String symbol) {
        if(symbol !=null )  {
return serviceEntity.getPrice(symbol);
         } else {
            return 0.0;
        }
    }
}



在上面的例子中,一个Servlet只对应了一个urlPattern。实际上一个Servlet可以对应多个urlPattern,我们可以这样定义:
@WebServlet(name = "GetQuoteServlet",  urlPatterns = {"/getquote",  "/stockquote"} )
public class GetQuoteServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        PrintWriter out = response.getWriter();
        try {
            String symbol = request.getParameter("symbol");
            out.println("<h1>Stock Price is</h1>" + StockQuoteBean.getPrice(symbol);
        } finally {
            out.close();
        }
    }
}


@WebFilter
我们可以使用@WebFilter注解来定义filter。这个注解可以被应用在实现了javax.servlet.Filter接口的类上。同样的,urlPattern属性是必须指定的。下面就是一个例子。
@WebFilter(filterName = "AuthenticateFilter", urlPatterns = {"/stock.jsp", "/getquote"})
public class AuthenticateFilter implements Filter {

    public void doFilter(ServletRequest request, ServletResponse response,
            FilterChain chain)     throws IOException, ServletException {
        String username = ((HttpServletRequest) request).getParameter("uname");
        String password = ((HttpServletRequest) request).getParameter("password");
          if (username == null || password == null) {
                 ((HttpServletResponse) response).sendRedirect("index.jsp");            } 
if (username.equals("admin") && password.equals("admin")) {
                chain.doFilter(request, response);      } 
else {
                ((HttpServletResponse) response).sendRedirect("index.jsp");         }
         }

    public void destroy() {
    }
    public void init(FilterConfig filterConfig) {
    }
}




转载自  开发者的天空
分享到:
评论

相关推荐

    Servlet3.0新特性解析

    Servlet3.0新特性解析_03_Servlet3.0监听器、过滤器实现方式详解及Servlet的动态注册剖析

    Servlet3.0_新特性

    Servlet3.0_新特性详解

    servlet 3.0新增功能详解

    Servlet 是 Java EE 规范体系的重要组成部分,也是 Java 开发人员必须具备的基础...本文主要介绍了 Servlet 3.0 引入的若干重要新特性,包括异步处理、新增的注解支持、可插性支持等等,为读者顺利向新版本过渡扫清障碍

    servlet3.0新特性源代码

    * @project servlet3.0 * servlet3.0的文件上传 * @date:2012-5-21 *在创建项目的时候首先添加Tomcat7.x的支持,然后把apache-tomcat-7.0.27\conf\web.xml拷贝到项目WEB-INF目录下 *把之前的web.xml覆盖.. 配置...

    Servlet3.0 新特性

    需要在tomcat下运行 博文链接:https://inotgaoshou.iteye.com/blog/975116

    Servlet3.0参考手册

    servlet3.0使用手册,这里面有详细的api参考,使用很方便

    Servlet3.0新特性

    Servlet3.0新特性解析_04_使用Servlet3.0实现文件上传及Part接口与MultiConfig注解深度解析

    Servlet3.0新特性解析01

    Servlet3.0新特性解析_01_Servlet3.0新特性深度解析、Servlet注解详解

    JavaEE 6 Servlet 3.0 中的新特性

    JavaEE 6Servlet 3.0 中的新特性 • 易于开发和部署 • 模块化web.xml • 动态配置 • 异步Servlet • Servlet 3.0 — 易于开发 – 主要关注点 • 增强了API 以便使用SE 5 中新的语言特性 – 例如:批注、泛型...

    Servlet3.0

    Servlet3.0新特性解析_02_Servlet3.0的异步支持与反向Ajax深入详解Servlet3.0新特性解析_02_Servlet3.0的异步支持与反向Ajax深入详解

    Servlet3.0特性详解

    非常好的学习Servlet3.0资料。特此共享。

    servlet3.0.jar下载

    servlet3.0jar下载,非常好用的控制器工具类包,servlet3.0jar下载,非常好用的控制器工具类包,

    servlet3.0相关的包

    servlet3.0相关的包 包含 sevlet servlet-api jstl jstl-impl相关版本的包

    servlet3.0推送聊天室

    用servlet3.0异步技术,实现推送信息至客户端的聊天室

    servlet3.0.zip

    servlet3.0.zip

    servlet 3.0 jar 包综合下载

    servlet 3,jar 包综合;用于javaEE servlet 3.0 开发使用。

    基于servlet3.0手写springmvc

    基于servlet3.0手写springmvc,实现了IOC和处理器映射器以及处理器映射器功能。

    servlet3.0-demo

    servlet3.0-demo, 上传文件demo,基于注解开发

    JavaServlet 3.0 API

    个人整理的JavaServlet 3.0的API,按Java6 API的风格整理

    Servlet 3.0 源码文件

    Servlet 3.0 源码文件,可以在myeclipse中查看servlet的代码,方便编程

Global site tag (gtag.js) - Google Analytics