创建第一个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. document文档对象

    document 文挡对象 - JavaScript脚本语言描述———————————————————————注:页面上元素name属性和JavaScript引用的名称必须一致包括大小写否则会提示你一 ...

  2. (转)MySQL登陆后提示符的修改

    MySQL登陆后提示符的修改 方法一:mysql命令行修改方式 mysql>prompt \u@night \r:\m:\s-> PROMPT set to '\u@night \r:\m ...

  3. python中del函数的垃圾回收

    今天学习面向对象里的类被del函数的垃圾回收过程搞的晕头转向,经过了老师的讲解还是是懂非懂,然后看了很多博客慢慢的心里才有了个大概的了解. 刚刚看到一篇博客,觉得讲的很好,转载过来以供参考.以下转自笨 ...

  4. 【jQuery源码】jQuery对象初始化

    看了一下午还是有很多地方没弄明白,jQuery的一些工具方法的原理也不完全清楚,这篇文章会随着我深入阅读jQuery源码的同时不断更新. // Initialize a jQuery object / ...

  5. Android_问卷调查

    这个是一个简单的问卷调查,对于我这样的初学者可能会绞尽脑汁想尽办法,去实现一个看起来特别简单的功能,我这个是用Intent传参的办法,来实现将前边的调查来进行统计,并记录,之后将这些信息显示到最后一个 ...

  6. Android Kotlin开发之使用Butterknife注意要点

    使用kotlin-kapt插件 依赖由java的annotationProcessor改为kapt 在使用控件绑定使用时,网上搜使用方法,不知道被哪个家伙带坑里了. //错误用法 @BindView( ...

  7. Centos 6.5下的OPENJDK卸载和SUN的JDK安装、环境变量配置

    不多说,直接上干货! 说明 图形界面安装,会自带有Centos6.5自带的OPRNJDK!!! *********************************自带的OPENJDK的卸载****** ...

  8. Redis笔记(一):Redis安装教程

    Redis是一个开源的使用ANSI C语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库,并提供多种语言的API. Redis是目前应用最广泛的内存数据存储技术,相比之前的Me ...

  9. 自动换行的两种代码(C#)

    最近有个需求,需要将C# winform中的listBox中的内容自动换行, 其实在用listBox前,已经用textBox实现了大部分功能,可惜最后还是有个焦点的问题, 就是textBox中的文字会 ...

  10. java的PreparedStatement中使用like时的问题

    SQL:select * from students where name like '%tommy%'; 正常的sql如上,是可以直接执行的, 那放到java的P热怕热的Statement中就应该是 ...