创建第一个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. SQL中文转拼音

    使用下方的函数.. 忘了从哪抄的了..留存一份 如果只要首字母..建议将数据  Left(tableFiled,1) 后传入函数 如果字段是空或者null, 不会报错..返回空 方法体: SET AN ...

  2. sublime text3 --前端工程师必备

    sublime text3 --前端工程师必备神器 导读目录: 下载与Emmet插件安装 sublime text3 中cssrem安装与使用 sublime Text 3的中文文件名显示为方框的问题 ...

  3. Filter应用之-验证用户是否已经登录

    过滤器: public class LoginFilter implements Filter{ @Override public void init(FilterConfig filterConfi ...

  4. 【原】中文Ubuntu主目录下的文档文件夹改回英文

    想把中文Ubuntu主目录下的文档文件夹改回英文,在Terminal下面操作的时候要输入中文特别不方便,于是便用了更改名字的想法 方法一: 首先把那几个中文名称修改成相应的英文,比如 Desktop. ...

  5. tomcat启动(三)Catalina分析-load方法分析

    load()方法按从上到下顺序分析(主要分析本人所没学过的知识点,其它略过...). Digester类作用 使用sax技术对xml进行解析 未开始解析时Digester.push(this)这个用来 ...

  6. 分布式处理与大数据平台(RabbitMQ&Celery&Hadoop&Spark&Storm&Elasticsearch)

    热门的消息队列中间件RabbitMQ,分布式任务处理平台Celery,大数据分布式处理的三大重量级武器:Hadoop.Spark.Storm,以及新一代的数据采集和分析引擎Elasticsearch. ...

  7. Java中的四种引用

    引用定义 实际上,Java中存在四种引用,它们由强到弱依次是:强引用.软引用.弱引用.虚引用.下面我们简单介绍下这四种引用: 强引用(Strong Reference):通常我们通过new来创建一个新 ...

  8. MySQL查询表结构的SQL语句

    desc 数据库.表名; eg: desc mysql.user;

  9. PTA (Advanced Level) 1024 Palindromic Number

    Palindromic Number A number that will be the same when it is written forwards or backwards is known ...

  10. 【LeetCode题解】142_环形链表2(Linked-List-Cycle-II)

    目录 描述 解法一:哈希表 思路 Java 实现 Python 实现 复杂度分析 解法二:双指针 思路 Java 实现 Python 实现 复杂度分析 描述 给定一个链表,返回链表开始入环的第一个节点 ...