创建第一个Servlet(Dynamic Web Project方式)

注意:无论是以注解的方式还是xml的方式配置一个servlet,servlet的url-pattern一定要以一个"/"开头,否则启动项目时报错。

1、前期准备

  参考另一篇文章——Eclipse 下载、安装、取消自动更新、设置编码、关联Tomcat

  地址:https://www.cnblogs.com/Mike_Chang/p/9334057.html

2、具体步骤

(1)选择File | New | Dynamic Web Project命令,出现New Dynamic Web Project对话框,在Project name文本框中输入 FirstServlet。
(2)确定Target runtime为刚才设置的Apache Tomcat v7.0,单击next按钮,再次单击next按钮并勾选Generate web.xml deployment descriptor 复选框,这样就会生成web.xml文件。
(3)展开新建项目中的Java Resources节点,在src上右击,从弹出的快捷菜单中选择New | Servlet命令。
(4)弹出Create Servlet对话框,在Java package文本框中输入com.test,在Class name文本框中输入HelloServlet,单击Next按钮。
(5)选择URL mappings中的HelloServlet,单击右边的Edit按钮,将Pattern改为/hello后,单击OK按钮。
(6)单击Create Servlet对话框中的Finish按钮。接着就可以编写第一个Servlet的内容了。
(7)运行。在HelloServlet.java上右击,从弹出的快捷菜单中选择Run As | Run on Server命令。
(8)在弹出的Run on Server对话框中,确定Server runtime environment为先前设置的Apache Tomcat v7.0,单击Finish按钮。
(9)在Tomcat启动后,会出现内嵌于Eclipse的浏览器,地址栏已自动设置为:http://localhost:8080/FirstServlet/hello

3、注意

  默认的ContextPath是项目名称,在这里是FirstServlet。如果想自定义,在项目上右击,从弹出的快捷菜单中选择Properties命令,在Web Project Settings中进行设置,我们看到默认就是FirstServlet,我们可以自定义为任意名字,当然也可以设置为一个"/"。之后在Servers视窗clean Tomcat再重启就生效了。

4、导出为war包

  直接在项目中右击,从弹出的快捷菜单中选择Export/WAR file命令并设置导出的目录。


创建第一个Web Fragment Project

1、简介

  在Servlet 3.0中,可以使用标注来设置Servlet的相关信息。实际上,Web容器并不仅读取/WEB-INF/classes中的Servlet标注信息,如果一个JAR文件中有使用标注的Servlet,Web容器也可以读取标注信息、载入类并注册为Servlet进行服务。在Servlet 3.0中,JAR文件可用来作为Web应用程序的部分模块。事实上,不仅是Servlet,监听器、过滤器等也可以在编写、定义标注完毕后,封装在JAR文件中,视需要放置至Web应用程序的/WEB-INF/lib中,弹性抽换Web应用程序的功能性。
2、web-fragment.xml 简介
  一个JAR文件中,除了可使用标注定义的Servlet、监听器、过滤器外,也可以拥有自己的部署描述文件,这个文件的名称是web-fragment.xml,必须放置在JAR文件的META-INF目录中。基本上,web.xml中可定义的元素,在web-fragment.xml中也可以定义。web-fragment.xml的根标签是<web-fragment>而不是<web-app>。
web-fragment.xml中所指定的类,不一定要在JAR文件中,也可以是在web应用程序的/WEB-INF/classes中。

3、使用JAR文件部署Servlet

(1)选择File | New | Other命令,在出现的对话框中选择Web节点中的Web Fragment Project节点,单击Next按钮。
(2)在New Web Project Fragment Project对话框中,注意可以设置Dynamic Web Project membership。这里可以选择Web Fragment Project产生的JAR文件,将会部署于哪一个项目中,这样就不用手动产生JAR文件,并将之复制至另一应用程序的WEB-INF/lib目录中。
(3)在Project name文本框中输入FirstWebFrag(这个名字随便取名都可以,对访问不会的任何影响),单击Finish按钮。
(4)展开新建立的FirstWebFrag项目中src/META-INF节点,可以看到预先建立的web-fragment.xml。可以在这个项目中建立Servlet等资源,并设置web-fragment.xml的内容。
(5)在FirstServlet项目上右击(刚才Dynamic Web Project membership设置的对象),从弹出的快捷菜单中选择Properties命令,展开Deployment Assembly节点,可以看到FirstWebFrag项目建构而成的FirstWebFrag.jar,将会自动部署至FirstServlet项目WEB-INF/lib中。
(6)在FirstWebFrag的src上右击,从弹出的快捷菜单中选择New | Servlet命令。
(4)弹出Create Servlet对话框,在Java package文本框中输入com.test,在Class name文本框中输入SecondServlet,单击Next按钮。
(5)选择URL mappings中的SecondServlet,单击右边的Edit按钮,将Pattern改为/hello2后,单击OK按钮。
(6)单击Create Servlet对话框中的Finish按钮。接着就可以编写一个Servlet的内容了。
(7)重新部署FirstServlet
(8)分别访问 http://localhost:8080/FirstServlet/hello 和 http://localhost:8080/FirstServlet/hello2

Eclipse创建第一个Servlet(Dynamic Web Project方式)、第一个Web Fragment Project(web容器向jar中寻找class文件)的更多相关文章

  1. web容器向jar中寻找资源

    示例代码下载地址 https://files.cnblogs.com/files/Mike_Chang/web%E5%AE%B9%E5%99%A8%E5%90%91jar%E4%B8%AD%E5%AF ...

  2. 我在阿里这仨月 前端开发流程 前端进阶的思考 延伸学习的方式很简单:google 一个关键词你能看到十几篇优秀的博文,再这些博文中寻找新的关键字,直到整个大知识点得到突破

    我在阿里这仨月 Alibaba 试用期是三个月,转眼三个月过去了,也到了转正述职的时间.回想这三个月做过的事情,很多很杂,但还是有重点. 本文谈一谈工作中遇到的各种场景,需要用到的一些前端知识,以及我 ...

  3. eclipse 创建Maven 架构的dynamic web project 问题解决汇总

    Eclipse创建Maven结构的web项目的时候选择Artifact Id为maven-artchetype-webapp,点击finish之后,一般会遇到如下问题 1. The superclas ...

  4. 如何使用eclipse创建简单的servlet

    Servlet是一种基于java开发的服务器程序,可以对外公布服务,如果是浏览器应用,可以通过浏览器打开网址的方式查看服务.创建servlet要继承httpservlet,并且在web.xml中配置拦 ...

  5. 【转】在Eclipse环境下配置Servlet开发环境

    配置这个真心坑···浪费我一下午时间,而且去网上找了一圈资料发现都不靠谱呀= = 于是自己写一个,防止忘记了 一.配置前准备 你需要下载三个东西 Eclipse J2EE:http://www.ecl ...

  6. tomcat在eclipse创建过程分析

    在本地eclipse上创建一个tomcat server 即tomcat服务器时, 会复制一份tomca安装目录中的conf文件下的配置文件到这个tomcat server目录下 这个tomcat s ...

  7. 如何用一个servlet处理多个请求

    一个servlet处理多个请求,原理:利用反射机制获取在selvlet类中的其他方法1.前端页面<%@ page language="java" contentType=&q ...

  8. eclipse 创建dynamic web project不能运行

    按照李刚<轻量级java ee企业应用实战>第三版,第二章的配置,发现eclipse 创建dynamic web project不能运行,原来作者第二章时还不是在eclipse中开发的,只 ...

  9. eclipse 创建Java web项目 Cannot change version of project facet Dynamic web module to xxx

    问题描述: 用Eclipse创建Java web项目时选择的Artifact Id为maven-artchetype-webapp,由于这个archetype比较老,用的servlet还是2.3的. ...

随机推荐

  1. js04

    接着看一些js的基础,这里主要说一下js的对象. 1.对象:    js中的所有事物都可以看作是对象:字符串.数值.数组.函数...    内建对象:String    Date    Array   ...

  2. mac 系统安装VM虚拟机打开时报错,提示不是虚拟磁盘的解决方式。

    最近刚买的苹果系统,不太会用,装了个虚拟机vmware fusion,好不容易把需要的软件装好,然后不知道是我操作了哪里,今天再次打开虚拟机的时候打不开了,报错提示找不到磁盘文件(虚拟磁盘-00000 ...

  3. Windows里如何正确安装Zookeeper以服务运行(博主推荐)(图文详解)

    不多说,直接上干货! 为什么要在Win下来安装Zookeeper呢? 其实玩过大数据的人很清楚,在Linux下我更不说了.在win下,如Disconf .Dubbo等应用. 所以,它的应用是非常广的. ...

  4. AndroidStudio生成自己的Compile依赖

    在AndroidStudio中经常使用compile的方式来导入第三方代码,如图所示: 想要拥有自己的依赖,可参考本篇的方法 在github上托管一个带有Android Libray的项目,我们要co ...

  5. 2017年Android百大框架排行榜

    框架:提供一定能力的小段程序 >随意转载,标注作者"金诚"即可 >本文已授权微信公众号:鸿洋(hongyangAndroid)原创首发. >本文已经开源到Gith ...

  6. R语言之数据处理常用包

    dplyr包是Hadley Wickham的新作,主要用于数据清洗和整理,该包专注dataframe数据格式,从而大幅提高了数据处理速度,并且提供了与其它数据库的接口:tidyr包的作者是Hadley ...

  7. C#中给滚动条增加鼠标滚动轮控制事件

    当滚动条的父控件获得焦点时,可以使用鼠标的滚动轮来控制滚动条 public partial class Form1 : Form { public Form1() { InitializeCompon ...

  8. php的一个验证邮箱的正则表达式

    /([a-z0-9]*[-_\.]*[a-z0-9]+)*[-_\.]*@([a-z0-9]*[-_]?[a-z0-9]+)+[\.]([a-z0-9]{2,3}|[a-z0-9]*[-_]?[a-z ...

  9. Golang panic用法

    Go语言追求简洁优雅,所以,Go语言不支持传统的 try…catch…finally 这种异常,因为Go语言的设计者们认为,将异常与控制结构混在一起会很容易使得代码变得混乱.因为开发者很容易滥用异常, ...

  10. Autofac--手动依赖注入

    本文只适合初步接触 autoafc 的小白,大佬勿喷. autofac是一种很轻量的一个依赖注入容器 暂时先说一下手动注入的方式(因为使用自动注入遇到了坑,暂时先写一下手动注入) 1.先定义接口 pu ...