Servlet3.0学习总结(一)——使用注解标注Servlet

参考:https://www.cnblogs.com/xdp-gacl/p/4222902.html

目录

一、Servlet3.0介绍

二、开发Servlet3.0程序的所需要的环境

三、使用MyEclipse8.5+Tomcat7+JDK1.7开发Servlet3.0程序

3.1、创建WebProject

3.2、将Web项目的开发环境改造成支持Servlet3.0

3.3、开发Servlet3.0程序

3.4、部署Web应用到Tomcat7

四、使用MyEclipse10+Tomcat7+JDK1.7开发Servlet3.0程序

4.1、创建WebProject

4.2、开发Servlet3.0程序

4.3、部署Web应用到Tomcat7


一、Servlet3.0介绍

  Servlet3.0是Java EE6规范的一部分,Servlet3.0提供了注解(annotation)使得不再需要在web.xml文件中进行Servlet的部署描述,简化开发流程

 

二、开发Servlet3.0程序的所需要的环境

  开发Servlet3.0的程序需要一定的环境支持。MyEclipse10和Tomcat7都提供了对Java EE6规范的支持。Tomcat需要Tomcat7才支持Java EE6,Tomcat7需要使用JDK1.6以上的版本。

  所以开发Servlet3.0的程序需要以下的开发环境支持

  • IDE:MyEclipse 10+
  • JDK:JDK 1.6+
  • tomcat:tomcat 7+

  如果使用的 MyEclipse的版本较低,例如MyEclipse8.5,没有提供Java EE6的支持,可以到Oracle官方网站下载JavaEE6的SDK进行安装,或者从Tomcat7的解压目录下的lib文件夹中的【annotations-api.jar、el-api.jar、jasper.jar、jasper-el.jar、jsp-api.jar、servlet-api.jar】这几个jar文件引用到我们的项目路径下。(例如:先建一个Java EE5的web项目,然后把Tomcat7的解压目录下的lib文件夹中的annotations-api.jar、el-api.jar、jasper.jar、jasper-el.jar、jsp-api.jar、servlet-api.jar】这几个jar文件引入到项目中,再删除Java EE5的库引用,最后从Tomcat7的解压目录下的conf文件夹下把web.xml模板拷贝到项目,替换掉原来的web.xml)。

三、使用MyEclipse8.5+Tomcat7+JDK1.7开发Servlet3.0程序

3.1、创建WebProject

  1、使用MyEclipse8.5新建一个Web Project,选择最高版本的Java EE5.0,如下图所示:

  

  创建好的项目如下所示:

  

  项目的web.xml文件内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" 
    xmlns="http://java.sun.com/xml/ns/javaee" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
    http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
</web-app>

  注意web.xml文件中的version信息,version="2.5"和http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd。这里就表示当前使用的是Servlet2.5的版本。

3.2、将Web项目的开发环境改造成支持Servlet3.0

  1、打开Tomcat7的解压目录下的lib文件夹中,如下图所示:

  

   找到我们需要的annotations-api.jar、el-api.jar、jasper.jar、jasper-el.jar、jsp-api.jar、servlet-api.jar这几个jar文件,然后加入到我们的Web项目的lib文件夹下,如下图所示:

  

  2、删除Java EE5的库引用

  

  经过上面的两步操作,Web应用里面的jar包引用工作就算是完成了,如下图所示:

  

  3、修改项目中的web.xml文件的声明部分

  找到Tomcat7的解压目录下的conf文件夹下的web.xml,如下图所示:

  

  使用文本编辑器打开web.xml文件,如下图所示:

  

  改造好的Web.xml文件如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
                      http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
  version="3.0">
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
</web-app>

  注意。web.xml文件中的version信息,version="3.0"http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd 这就是表示当前使用的是Servlet3.0的版本。经过这样改造之后,我们的Web应用的开发环境就支持Servlet3.0的程序开发了。

3.3、开发Servlet3.0程序

3.3.1、创建Servlet

  新建一个Servlet,写上Servlet的Name,然后Next,如下所示:

  

  取消【Generate/Map web.xml file】复选框的选中状态,直接点击【Finish】按钮完成Servlet的创建工作,我们要使用Servlet3.0提供的注解来配置Servlet,因此不需要MyEclipse帮我们在web.xml文件中生成Servlet的配置信息,如下图所示:

  

  这样建好一个Servlet后,在web.xml文件中没有任何关于这个Servlet的描述信息,如下图所示:

  

3.3.1、使用注解描述Servlet

  前面介绍过,Servlet3.0提供了注解(annotation)使得不再需要在web.xml文件中进行Servlet的部署描述下面我们就来使用一下Servlet3.0提供的注解来描述Servlet3Demo这个Servlet,代码如下:

package me.gacl.web.controller;

import java.io.IOException;
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用来描述一个Servlet
 * 属性name描述Servlet的名字,可选
 * 属性urlPatterns定义访问的URL,或者使用属性value定义访问的URL.(定义访问的URL是必选属性)
 */
@WebServlet(name="Servlet3Demo",urlPatterns="/Servlet3Demo")
public class Servlet3Demo extends HttpServlet {
    
    public void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        response.getWriter().write("Hello Servlet3.0");
    }

    public void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        this.doGet(request, response);
    }
}

/*
 * 完成了一个使用注解描述的Servlet程序开发。
  使用@WebServlet将一个继承于javax.servlet.http.HttpServlet的类定义为Servlet组件。
  @WebServlet有很多的属性:
      1、asyncSupported:    声明Servlet是否支持异步操作模式。
      2、description:      Servlet的描述。
      3、displayName:       Servlet的显示名称。
      4、initParams:        Servlet的init参数。
      5、name:           Servlet的名称。
      6、urlPatterns:     Servlet的访问URL。
      7、value:           Servlet的访问URL。
  Servlet的访问URL是Servlet的必选属性,可以选择使用urlPatterns或者value定义。
  像上面的Servlet3Demo可以描述成@WebServlet(name="Servlet3Demo",value="/Servlet3Demo")。
  也定义多个URL访问:
  如@WebServlet(name="Servlet3Demo",urlPatterns={"/Servlet3Demo","/Servlet3Demo2"})
  或者@WebServlet(name="AnnotationServlet",value={"/Servlet3Demo","/Servlet3Demo2"})
 *
 */

  在Servlet3.0中,可以使用@WebServlet注解将一个继承于javax.servlet.http.HttpServlet的类标注为可以处理用户请求的Servlet。

@WebServlet注解的相关属性
NO.属性名描述
1asyncSupported声明Servlet是否支持异步操作模式
2descriptionServlet的描述信息
3displayNameServlet的显示名称
3initParamsServlet的初始化参数
5nameServlet的名称
6urlPatternsServlet的访问URL
7valueServlet的访问URL

  Servlet的访问URL是Servlet的必选属性,可以选择使用urlPatterns或者value定义。
  像上面的Servlet3Demo可以描述成@WebServlet(name="Servlet3Demo",value="/Servlet3Demo")。
  也定义多个URL访问:
  如@WebServlet(name="Servlet3Demo",urlPatterns={"/Servlet3Demo","/Servlet3Demo2"})
  或者@WebServlet(name="AnnotationServlet",value={"/Servlet3Demo","/Servlet3Demo2"})

3.4、部署Web应用到Tomcat7

  由于我们使用的是MyEclipse8.5的版本、而MyEclipse8.5只支持tomcat6.x的版本,因为我们开发的是基于Servlet3.0的程序,因此将Web应用部署到Tomcat6.x版本的服务器是无法正常运行的,必须要使用tomcat7以上的服务器,所以首先我们要在MyEclipse8.5中配置tomcat7.x,如下图所示:

  

  要想在MyEclipse8.5中正常使用Tomcat7.x,除了配置这个地方之外,还需要配置一下Paths,如下图所示:

  

  如果不这样做,那么将项目部署好后,启动tomcat时就会报错,java.lang.NoClassDefFoundError: org/apache/juli/logging/LogFactory,之前就是因为这个莫名其妙的错误折腾了好久,直到看到网上这一篇文章http://xuejiangtao.iteye.com/blog/882585才解决启动报错的问题的。

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

  

  可以看到,我们已经成功访问到了Servlet3Demo,我们在MyEclipse8.5中开发的第一个Servlet3.0程序成功了。

四、使用MyEclipse10+Tomcat7+JDK1.7开发Servlet3.0程序

  在上面,我们使用MyEclipse8.5来开发了一个Servlet3.0的程序,但由于MyEclipse8.5本身不支持Servlet3.0,所以还得搭建Servlet3.0的开发环境,极其麻烦,但使用MyEclipse10以上的版本就不一样了,MyEclipse10支持Servlet3.0的开发,因此还是推荐使用MyEclipse10+Tomcat7.x+JDK1.6+的组合来开发Servlet3.0的程序。

4.1、创建WebProject

  1、使用MyEclipse10新建一个Web Project,选择Java EE6.0,如下图所示:

  

  创建好的项目如下图所示:

  

  JavaEE6的jar文件如下图所示:

  

  项目的web.xml文件内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0" 
    xmlns="http://java.sun.com/xml/ns/javaee" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
    http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
  <display-name></display-name>    
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
</web-app>

  注意:web.xml文件中的version信息,version="3.0"http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd 这就是表示当前使用的是Servlet3.0的版本。

4.2、开发Servlet3.0程序

4.2.1、创建Servlet

  新建一个Servlet,写上Servlet的Name,然后Next,如下所示:

  

  

  这样建好一个Servlet后,在web.xml文件中没有任何关于这个Servlet的描述信息。

4.2.2、使用注解描述Servlet

代码如下:

package me.gacl.web.controller;

import java.io.IOException;
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="Servlet3FirstDemo",value="/Servlet3FirstDemo")
public class Servlet3FirstDemo extends HttpServlet {

    
    public void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {

        response.getWriter().write("Hello Servlet3.0");
    }

    
    public void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {

        this.doGet(request, response);
    }
}

4.3、部署Web应用到Tomcat7

  把项目发布到Tomcat7,启动Tomcat7,如下图所示:

  

  在浏览器访问:http://localhost:8081/Servlet3.0Study/Servlet3FirstDemo 运行结果如下:

  

  可以看到,使用MyEclipse10开发一个Servlet3.0的程序是非常方便和快捷的。Servlet3.0提供了注解之后对于Servlet的开发就方便多了,省去了在web.xml文件中配置。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
智慧校园整体解决方案是响应国家教育信息化政策,结合教育改革和技术创新的产物。该方案以物联网、大数据、人工智能和移动互联技术为基础,旨在打造一个安全、高效、互动且环保的教育环境。方案强调从数字化校园向智慧校园的转变,通过自动数据采集、智能分析和按需服务,实现校园业务的智能化管理。 方案的总体设计原则包括应用至上、分层设计和互联互通,确保系统能够满足不同用户角色的需求,并实现数据和资源的整合与共享。框架设计涵盖了校园安全、管理、教学、环境等多个方面,构建了一个全面的校园应用生态系统。这包括智慧安全系统、校园身份识别、智能排课及选课系统、智慧学习系统、精品录播教室方案等,以支持个性化学习和教学评估。 建设内容突出了智慧安全和智慧管理的重要性。智慧安全管理通过分布式录播系统和紧急预案一键启动功能,增强校园安全预警和事件响应能力。智慧管理系统则利用物联网技术,实现人员和设备的智能管理,提高校园运营效率。 智慧教学部分,方案提供了智慧学习系统和精品录播教室方案,支持专业级学习硬件和智能化网络管理,促进个性化学习和教学资源的高效利用。同时,教学质量评估中心和资源应用平台的建设,旨在提升教学评估的科学性和教育资源的共享性。 智慧环境建设则侧重于基于物联网的设备管理,通过智慧教室管理系统实现教室环境的智能控制和能效管理,打造绿色、节能的校园环境。电子班牌和校园信息发布系统的建设,将作为智慧校园的核心和入口,提供教务、一卡通、图书馆等系统的集成信息。 总体而言,智慧校园整体解决方案通过集成先进技术,不仅提升了校园的信息化水平,而且优化了教学和管理流程,为学生、教师和家长提供了更加便捷、个性化的教育体验。
经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。
智慧校园整体解决方案是响应国家教育信息化政策,结合教育改革和技术创新的产物。该方案以物联网、大数据、人工智能和移动互联技术为基础,旨在打造一个安全、高效、互动且环保的教育环境。方案强调从数字化校园向智慧校园的转变,通过自动数据采集、智能分析和按需服务,实现校园业务的智能化管理。 方案的总体设计原则包括应用至上、分层设计和互联互通,确保系统能够满足不同用户角色的需求,并实现数据和资源的整合与共享。框架设计涵盖了校园安全、管理、教学、环境等多个方面,构建了一个全面的校园应用生态系统。这包括智慧安全系统、校园身份识别、智能排课及选课系统、智慧学习系统、精品录播教室方案等,以支持个性化学习和教学评估。 建设内容突出了智慧安全和智慧管理的重要性。智慧安全管理通过分布式录播系统和紧急预案一键启动功能,增强校园安全预警和事件响应能力。智慧管理系统则利用物联网技术,实现人员和设备的智能管理,提高校园运营效率。 智慧教学部分,方案提供了智慧学习系统和精品录播教室方案,支持专业级学习硬件和智能化网络管理,促进个性化学习和教学资源的高效利用。同时,教学质量评估中心和资源应用平台的建设,旨在提升教学评估的科学性和教育资源的共享性。 智慧环境建设则侧重于基于物联网的设备管理,通过智慧教室管理系统实现教室环境的智能控制和能效管理,打造绿色、节能的校园环境。电子班牌和校园信息发布系统的建设,将作为智慧校园的核心和入口,提供教务、一卡通、图书馆等系统的集成信息。 总体而言,智慧校园整体解决方案通过集成先进技术,不仅提升了校园的信息化水平,而且优化了教学和管理流程,为学生、教师和家长提供了更加便捷、个性化的教育体验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值