`
whiteangell
  • 浏览: 11137 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

Netbeans6.8+GlassFishV3体验JEE 6之一Servlet3.0

阅读更多
     Sun 刚刚发布了NetBeans6.8与GlassfishV3和JEE6,我迫不及待地下载安装,并进行了简单的测试;有了JEE容器,有了开发工具,咱们就进行JEE6体验之旅吧!
     Servlet3.0规范——JSR 315(Java Specification Request)。其高级目标包括可插拔web框架、EoD(ease of development——易于开发)特征、支持异步和Comet、安全、与其他规范结合、以及其它各项改进。注解@WebServlet、@@WebFilter、@WebListener分别对应Servlet、过滤器、与Servlet侦听。
     servlet 3.0规范为使用它的开发人员实现了以下目标:简单性、减轻开发工作量、遵循web 2.0原则。
  为了使开发过程更加轻松,Servlet 3.0引入了注释。类似于EJB 3.1的改变,注释的引入使得web部署描述符web.xml成为可选项。
    可插性
  每当我们使用第三方框架如Struts、JSF或者Spring的时候,我们需要在web.xml中为相应的Servlet添加相应的条目,这使得web部署描述符变得繁琐并且难以维护。 Servlet 3.0中引入的可插性使得web应用程序更加模块化,也更加易于维护。由于可插性是通过web片段来实现的,所以它使得开发人员不必再在web.xml中建立太多的Servlet配置条目。
  异步处理
  新的Servlet规范中的另一项重大变化是支持异步处理,这对于AJAX应用程序来说是一个非常有用的特性。当Servlet创建发送请求的线程的时候,它通常必须等待诸如数据库或者消息连接等资源返回响应,之后它才能在这个线程中执行其他操作。异步处理通过允许线程执行其它的操作而避免了这样的阻塞式请求。
一、新建JEE6项目
  打开Netbeans6.8,选择“新建项目”—>“java web”—>“web 应用程序”然后下一步:

在项目名称处输入“JEE6Test”下一步:

服务器:选择“GlassFishV3”,Java EE 版本:选择“Java EE WEB”点击完成则建立一个项目名称是:“JEE6Test” WEB项目。
二、Servlet体验
新建包com.servlet,把测试的代码都放在这个目录中,然后在com.servlet包上单击右键; 选择“新建”—>“servlet”如下图:

输入名称“TestServlet”点击完成,去掉注释代码后如下:
package com.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;

@WebServlet(name="TestServlet", urlPatterns={"/TestServlet"})
public class TestServlet extends HttpServlet {
   
   
    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");
        PrintWriter out = response.getWriter();
        try {
            out.println("<html>");
            out.println("<head>");
            out.println("<title>Servlet TestServlet</title>");  
            out.println("</head>");
            out.println("<body>");
            out.println("<h1>Servlet TestServlet at " + request.getContextPath () + "</h1>");
            out.println("</body>");
            out.println("</html>");
           
        } finally { 
            out.close();
        }
    } 

   
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        processRequest(request, response);
    } 

   
    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        processRequest(request, response);
    }

  
    @Override
    public String getServletInfo() {
        return "Short description";
    }// </editor-fold>

}

选中TestServlet.java点击右键,选择运行则可以看Servlet TestServlet at /JEE6TEst页面。真是简单!@WebServlet(name="TestServlet", urlPatterns={"/TestServlet"})解决了一切问题。Name=”TestServlet”是定义了Servlet名称是TestServlet,urlPatterns=={"/TestServlet"}定义了Servlet访问的URL路径;在浏览器输入http://localhost:8080/JEE6Test/TestServlet就可以看到效果了。
Servlet 3.0中的重大革新之一是支持注释。通过使用注释定义Servlet和过滤器,就无需在web部署描述符(web.xml)中建立Servlet/过滤器条目了。
  为了在web应用中定义Servlet组件,我们可以使用@WebServlet。我们可以将其用于继承类javax.servlet.http.HttpServlet的类。注释@WebServlet具有许多属性。例如name、urlPatterns和initParams,我们可以通过它们来定义Servlet的行为。对于url模式,我们必须规定注释本身,或者规定注释的属性。
三、体验过滤器(Filter)
  选择com.servlet单击右键,选择“WEB”—》“过滤器”下一步,在对话框中输入“TestFilter”点击完成。

在新建过滤器配置过滤器部署对话框中“新建”在 URL框中输入 “/*”确定,然后完成。

则生成如下代码:
package com.servlet;

import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.annotation.WebFilter;

@WebFilter(filterName = "TestFilter", urlPatterns = {"/*"})
public class TestFilter implements Filter {

    public void init(FilterConfig filterConfig) throws ServletException {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
         request.setCharacterEncoding("UTF-8");
            chain.doFilter(request, response);
    }

    public void destroy() {
        throw new UnsupportedOperationException("Not supported yet.");
    }
}

  一个注解:@WebFilter(filterName = "TestFilter", urlPatterns = {"/*"})完成了过滤器的配置。名称是TestFilter,对/*所有的访问都过滤;功能是设置编码是UTF-8格式。
  使用注释@WebFilter来定义过滤器。这个注释还具有可选参数。我们可以在任何实现了javax.servlet.Filter接口的类上使用@WebFilter。类似于@WebServlet注释,我们也必须为这个注释指定url模式。
四、体验Listener
在com.servlet包名称上单击右键,选择新建选择:“WEB-WEB应用程序侦听程序”如下图:

点击下一步在名称中输入:“TestServletListener”则生成以下代码:
package com.servlet;

import javax.servlet.annotation.WebListener;
import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSessionListener;

@WebListener()
public class TestServletListener implements HttpSessionListener {

  public void sessionCreated(HttpSessionEvent se) {
        System.out.println("Session Created");
    }

    public void sessionDestroyed(HttpSessionEvent se) {
        System.out.println("sessionDestroyed");
    }
}

又是一个注解@WebListener()完成了配置,启动服务器,侦听已经生效了。
将注释@WebListener用于充当给定web应用上下文中各种web应用事件的监听器的类。我们可以使用@WebListener来标注一个实现ServletContextListener、ServletContextAttributeListener、ServletRequestListener、ServletRequestAttributeListener、HttpSessionListener和HttpSessionAttributeListener的类。
除了上面描述的特定于Servlet的注释之外,Servlet 3.0还支持所有定义为JSR 175(Java元数据规范)和JSR 250(用于Java平台通用注释) 的一部分的注释,包括:
与安全有关的注释,诸如@DeclareRoles 和@RolesAllowed
使用EJB的注释,诸如@EJB和@EJBs
用于资源注入的注释,诸如@resource和@Resources
使用JPA的注释,诸如@PersistenceContext、@PersistenceContexts、@PersistenceUnit和@PersistenceUnits
生命周期注释,诸如@PostConstruct 和@PreDestroy
提供web服务索引的注释,诸如@WebServiceRef 和@WebServiceRefs
呵呵。。。。。。简单吗!开发效率高吧!真是一个爽!
下一节我们体验EJB3.1......

  • 大小: 59.7 KB
  • 大小: 58.2 KB
  • 大小: 51.1 KB
  • 大小: 38.7 KB
  • 大小: 70 KB
  • 大小: 69.3 KB
  • 大小: 69.8 KB
1
0
分享到:
评论

相关推荐

    初学netbeans6.8

    NetBeans 6.8 是一个历史悠久的集成开发环境(IDE),尤其适合初学者入门Java编程。这个版本在当时提供了许多先进的功能,对于学习Java SE、Java EE和Swing应用程序的开发非常有帮助。在这个初学者的实验项目中,你...

    Android+Netbeans6.8环境搭建

    搭建Android开发环境是每个Android开发者必须要经历的步骤,本文将详细介绍如何使用Netbeans6.8进行Android环境的配置,以及如何在Netbeans中利用虚拟SD卡进行文件操作。 首先,你需要准备以下三个主要的安装包:...

    Android\Android+Netbeans6.8环境搭建

    搭建Android开发环境是每个Android开发者必须要经历的步骤,本文将详细介绍如何使用Netbeans6.8与Android SDK结合,创建一个完整的开发环境。 首先,我们从基础开始,你需要下载以下组件: 1. JDK 1.7:Java ...

    netbeans 6.8开发c/c++ 程序(1)

    标题 "netbeans 6.8开发c/c++ 程序(1)" 指向的是使用NetBeans 6.8版本进行C/C++程序开发的主题。NetBeans是一款开源的集成开发环境(IDE),它支持多种编程语言,包括C和C++。在本主题中,我们将深入探讨如何利用...

    netbeans 6.8开发c/c++ 程序(2)

    标题中的“netbeans 6.8开发c/c++程序(2)”表明了本文将深入探讨如何使用NetBeans 6.8版本的集成开发环境(IDE)进行C和C++编程。NetBeans是一款开源且跨平台的IDE,支持多种编程语言,包括C和C++,在6.8版本中,它...

    Netbeans 6.8 安装后配置记录

    NetBeans 6.8是一款历史悠久且功能强大的集成开发环境(IDE),主要用于编写Java应用程序,同时也支持其他编程语言如PHP、C++...对于源码和工具的管理,NetBeans提供了丰富的支持,使其成为开发者信赖的开发工具之一。

    Netbeans6.8 配置php5.30.doc

    ### NetBeans 6.8 配置 PHP 5.30 的详细步骤及注意事项 #### 一、前言 本文档旨在详细介绍如何在 NetBeans 6.8 中配置 PHP 5.30 开发环境的过程。为了实现这一目标,我们需要借助 XAMPP 作为本地服务器环境,并对...

    IDE快捷 方便使用NetBeans IDE 6.8

    ### 使用NetBeans IDE 6.8提升开发效率 #### 一、引言 随着软件开发技术的不断进步,集成开发环境(IDE)成为了提高开发者工作效率的重要工具之一。NetBeans IDE作为一款免费开源的IDE,凭借其强大的功能和易用性...

    mingw5.1.6+gdb6.8+msys1.0.11

    6. NetBeans配置指南:描述如何在NetBeans中配置MingW、GDB和MSYS,以便在IDE内使用。 通过这个整合包,开发者可以在Windows环境中搭建起一个完善的C/C++开发环境,实现从编写代码、编译到调试的完整流程,而且能够...

    Netbeans 6.8配置Mysql数据库 (2).docx

    在本文中,我们将详细探讨如何在NetBeans 6.8集成开发环境中配置MySQL数据库,以便进行高效的数据库管理和开发工作。NetBeans作为一个强大的开源IDE,支持多种编程语言,并且集成了数据库管理功能,使得开发者能够在...

    基于Netbeans8.2 + MySql + JDK1.8实现的综合教务系统课程设计(课程设计报告+源码)

    【作品名称】:基于Netbeans8.2 + MySql + JDK1.8实现的综合教务系统【课程设计】(课程设计报告+源码) 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实...

    Netbeans 6.8配置Mysql数据库.docx

    本文将详细介绍如何在NetBeans 6.8版本中配置MySQL数据库,以便进行数据库相关的开发工作。 首先,我们需要理解NetBeans与MySQL数据库之间的连接原理。MySQL是一种流行的开源关系型数据库管理系统,而NetBeans作为...

    NetBeans+Tomcat+MySQL配置

    1. **新建Web项目**:在NetBeans中通过“File”&gt;“New Project”&gt;“Web”&gt;“Web Application”来创建一个新的Web项目。 - 项目结构将自动生成,包括默认的JSP文件。 2. **运行Web项目**:配置完成后,可以直接在...

    Java实验工具2(netbeans-6.8m2-ml-javase-windows)

    【标题】"Java实验工具2(netbeans-6.8m2-ml-javase-windows)" 是一个针对Windows平台的Java开发环境,基于NetBeans IDE的特定版本,即6.8 Milestone 2。这个工具包专为进行Java编程实验而设计,适合初学者和专业...

    中小学教师学生交互系统 netbeans+jsp+servlet+oracle

    【标题】:“中小学教师学生交互系统 netbeans+jsp+servlet+oracle” 【正文】: 中小学教师学生交互系统是一种在线平台,旨在促进师生之间的沟通、学习资料的共享以及教学活动的管理。该系统采用的是经典的Java ...

    jsp+servlet+EJB3.0网上书店

    【jsp+servlet+EJB3.0网上书店】项目是一个典型的Java Web应用程序,它结合了三种核心技术来构建一个基本的在线电子书商城。下面将详细解释这些技术及其在项目中的作用。 1. JSP(JavaServer Pages):JSP是Java...

    netbeans6.8

    NetBeans包括开源的开发环境和应用平台,NetBeans IDE可以使开发人员利用Java平台能够快速创建...NetBeans项目由一个活跃的开发社区提供支持, NetBean开发环境提供了丰富的产品文档和培训资源以及大量的第三方插件。

    NetBeans IDE+使用说明和示例

    NetBeans IDE是一款开源的集成开发环境,由Sun Microsystems开发,主要用于Java应用程序的开发。NetBeans IDE支持多种编程语言,如Java、PHP、C++和HTML5等,并具备代码编写、调试、分析和单元测试等开发工具的功能...

    NetBeans8.2+JDK-8u161+JRE8u161-x64位

    提供的百度网盘链接。 包含 1.JDK-8u161; 2.JRE-8u161; 3.Netbeans支持所有技术版; 4.Netbeans支持PHP版; 及安装说明。

Global site tag (gtag.js) - Google Analytics