如何在javaEE中创建javascript 创建文件项目

Eclipse—如何为Eclipse开发工具中创建的JavaWeb工程创建Servlet - CSDN博客
Eclipse—如何为Eclipse开发工具中创建的JavaWeb工程创建Servlet
& & & & 在博客《》中图文并茂的说明了Eclipse中创建JavaWeb工程的方法,本篇博客将告诉大家如何为Eclipse开发工具中创建的JavaWeb工程创建Servlet:& & & & 1、在Eclipse开发工具中创建的JavaWeb工程文件目录结构如下图:& & & & 说明:& & & & a)、红框框定的结构用于存放Java类及其相应的包;用于存放Libraries文件夹;& & & & b)、灰框框定的结构用于显示(非“存放”)JavaWeb工程所依赖的JDK相关的jar包;&& & & &c)、黄框框定的结构用于显示(非“存放”)JavaWeb工程所依赖的非JDK相关的jar包,注意:刚创建的JavaWeb工程该结构没有显示任何一个jar包;A处& & & & d)、绿框框定的结构相当于创建在MyEclipse开发工具内JavaWeb工程中的WebRoot文件夹;& & & & e)、深粉红色框框定的结构相当于创建在MyEclipse开发工具内JavaWeb工程中的lib文件夹;& & & & 2、创建用于存放servlet的包:& & & & a)、鼠标选定红框框定的结构,鼠标右键并将鼠标移动到“New”选项,获得下图:& & & & b)、选中并点击上图“Package”项,获得下图:& & & & c)、在上图红框框定的文本框处输入包名,这里输入:com.ghj.packageofservlet& & & & d)、完成c步操作后点击“Finish”按钮,则包名创建完成,如下图:& & & & 3、创建servlet类:& & & & a)、选中创建好的包,鼠标右键并将鼠标移动到“New”选项,获得下图:& & & & b)、鼠标选中并点击上图中“Servlet”选项(红框框定处),获得下图:& & & & c)、在上面红框框定处输入Servlet名称(这里输入TestServlet),点击“Next &”按钮,获得下图:& & & & d)、点击“Next &”按钮,获得下图:& & & & e)、在上图红框框定的复选框处选择新创建的Servlet中的方法,然后点击“Finish”按钮,至此Servlet创建完成,如下图:& & & & 4、这时大家会看到所创建的servlet出错了,为什么?我在MyEclipse中创建的Servlet没有出现任何问题呀?呵呵呵,这里需要明白一个事实:在MyEclipse中创建的Servlet类所依赖的jar包是MyEclispe自己的,这一点可以这样印证:& & & & a)、打开在MyEclipse中创建的JavaWeb工程找到Java EE x(x代表6、5、1.4或1.3) Libraries层,点击该层前面的“+”号:& & & & b)、找到在MyEclipse内所创建的JavaWeb工程中的servlet所依赖的jar包,找到后请注意看其相应的路径,你会惊讶的发现所依赖的jar包原来是MyEclipse安装软件中的;& & & & c)、Eclipse软件没有MyEclipse那么高级——Eclipse自身没有被创建的servlet所依赖的jar包;& & & & 上面三点让我们明确了产生这种问题的原因,怎样解决呢?& & & & a)、下载servlet-api.jar包,下载网址:& & & & b)、将该包拷贝到在Eclipse工具内创建的JavaWeb工程中的lib文件夹内,这时原来所创建Servlet中的错误将消逝,至此servlet将创建完成;& & & & c)、注意观察:当servlet-api.jar包拷贝到lib文件夹内的时候,本博文A处所提到现象就会发生改变——黄框框定的结构不在为空,到此你会进一步明白该层结构的作用,进一步明白强调“(非“存放”)”的真正含义;& & & &&参见另一篇博客:
本文已收录于以下专栏:
相关文章推荐
Servlet 3.0 新特性概述
Servlet 3.0 作为 Java EE 6 规范体系中一员,随着 Java EE 6 规范一起发布。该版本在前一版本(Servlet 2.5)的基础上提供了...
本文转自:http://kin111./354 继上篇在Eclipse中搭好了tomcat环境后,我们建立一个最简单的servlet程序,这个serve...
越来越多的人开始意识到,网站即软件,而且是一种新型的软件。但是传统上,软件和网络是两个不同的领域,很少有交集;软件开发主要针对单机环境,网络则主要研究系统之间的通信。互联网的兴起,使得这两个领域开始融...
Eclipse—在Eclipse中如何发布创建的JavaWeb工程
摘要:MVC模式早在上个世纪70年代就诞生了,直到今天它依然存在,可见生命力相当之强。MVC模式最早用于Smalltalk语言中,最后在其它许多开发语言中都得到了很好的应用,例如,Java中的Stru...
本文出自:http://blog.csdn.net/hongchangfirst
这里主要讲解怎么在eclipse里配置wtp、tomcat插件和连接到MySQL。
Eclipse 解压...
主要介绍主流的java web编程技术、设计模式和框架,以及如何利用Eclipese开发Web应用程序。
要点:1、Java Web编程的主要组件技术;
      2、MVC设计模式;
   ...
Eclipse创建java web工程
eclipse版本:eclipse-jee-4.5-win32-x64
tomcat版本:apache-tomcat-7.0.63-windows-x64
Eclipse IDE for Java EE 搭建 servlet
Eclipse—在Eclipse中如何创建JavaWeb工程
他的最新文章
讲师:吴岸城
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)java web做前端开发的前景如何? - 知乎36被浏览29335分享邀请回答2添加评论分享收藏感谢收起63 条评论分享收藏感谢收起查看更多回答&&原精jHipster3.4创建Java Web应用项目最简单的入门基本教程开场白最近两,三年(),Java 开发领域内刮起一股热腾腾的潮流风。引起世界各地Java开发者蜂拥跟随。这就是Java潮客者(J潮客),称jHipster。根据专家统计,每月下载量约有12000,每月制成的J潮客应用程式有一万份之多。可惜在国内有关J潮客资料及其应用十分稀少, 故此本文提供一些实用有效的信息。Java爱好者可以一起学习和研究。如果一切顺利,不论你是否菜鸟,只需要按照本文提供的步骤工作20-30分钟(不包括安装工作环境),即等于一个有5至7年的Java 经验程式员工作了6个星期的结果:一个完善又先进,配合了Java web 技术趋势,同时具备了制作就绪的基本工作模版。这就是J潮客(jHipster)闪亮卖点。早在十多年前在道琼斯总部打工时, 时常接触实体或虚撰的Java网络服务器和应用服务器, 其运作十分复杂费时。 就算现今的有关Java web技术, 各种各类特色繁多。例如Java框架技术有Struts,Spring,Hibernate,iBatis,EJB3.0,JPA,等等;还有不少客户端的技术,Javascript, jQuery, Easyui, AngularJs, V 数据库有SQL和NOSQL,本文只例举部份而已。选择多多,令人不容易适从。去年笔者希望找到更详细的Spring Framework 4的应用资讯,走遍香港广州及深圳各书店,仍然空手而返。原因是技术更新太快,有部份资料刚出版已是旧版本。究竟那项技术好,该用什么客户端,什么样的数据库最适用,相信有不少的争论。而本文的主题是不论菜鸟老手,只要好好地把握当今Java web 技术趋势,分配本身有限的精力,创造出精彩的Java项目! 有关J潮客的应用,会由浅入深,分数期和各位共同学习,敬请各位读者留意为要。简介J潮客J潮客(jHipster)是什么东西? 是谁开始的?其实J潮客是开源技术, 在2013年由法国Java专家 Julien Dubois (朱利安 杜波尔斯)率先倡导,至今仍是J潮客项目主导者。简易直说它是工具集堆综合技术,意思是由多种技术工具配置而成的Java Web开发程式产生器。好处是由Java专家累积的开发经验,配上各类实用的框架技术,去繁取精的运用,全方位的配置,制成出完备的开发应用程式,绝对适用于面向服务的体系结构 (SOA).J潮客包括最先进的Java 8,特色是多用注解, 不用XML 配置的组态,配备了全方位的工作环境,从开发,测试,监控到制成,以及云部署。能提供最先进的Java 技术如微服务综合技术 (Microservices)。主要的技术有以下几种,简单介绍而已。如果想知道更多有关这些资讯,可问百度。Spring Boot: 能建成独立Spring 的应用程式Spring Security: 标准业内的授权和认证AngularJS: &JavaScript的MVC框架客户端Bootstrap: 来自Twitter,是目前最受欢迎的前端框架REST APIs: 基于Http协议实现资源操作Liquid Database: 数据库源代码版本控制CSS3 + 动画HTML5: 移动开发主导(Mobil First)Full internationalization support: 支持完善的国际化文字Web Socket: 允许用户在中实现双向通信,实现数据的及时推送及undertow创立项目工具技术选择多自动配置依赖资源:Maven 或 Gradle验证类型: Cookie type, JWT 和OAuth2数据库: SQL 及 NOSQL (MySQL, Postgres, H2)高速缓存: EhCache or Hazelcast自动化重复任务:实时编辑: GULP 及 Grunt各类工具:Yeoman, npm (nodejs), BrowserSync安装J潮客(jHipster)建立J潮客 (jHipster) 的工作环境是必须的,需要配备有:Java 8 SDKMaven 或 GradlenodeJsPhantomJSXcode (ios)Mysql 或 Postgres (Mysql Workbench or pgAdmin3)Git 版本控制STS ide, Eclipse, Intellij IDEA, 其中一个具体详细安装方法,网上多。必须测试好开发环境,各软件工具以最新版本安全运行。(有关安装开源工具-J潮客,对于菜乌来说,可能是一个挑战,因为它是比较短暂历史,没有具体处理步骤提供,故此本文特别加入十分具体详细安装步骤显示。以便对应是否安装成功。)安装 J潮客有多种,本文只推荐本地安装法,基本可分Windows 8 和 10; ios 和 Linux.Windows 8 和 10: 要用有管理员权益的命令提示符 (cmd)ios 和 Linux 用终端 terminal,用管理员权益安装(sudo)安装方法:?& 安装 Yeoman: npm install -g yo?& 安装 Bower: npm install -g bower?& 安装 Gulp: npm install -g gulp?& 安装 JHipster: npm install -g generator-jhipster粗体字是输入指令(ios):sudonpm install -g yo在终端 terminal出现以下的显示:(你的可能不完全相同,大概相同就可以)。。。/usr/local/bin/yo -& /usr/local/lib/node_modules/yo/lib/cli.js& yo@1.8.4 postinstall /usr/local/lib/node_modules/yo& yodoctorYeoman DoctorRunning sanity checks on your system? Global configuration file is valid? NODE_PATH matches the npm root? Node.js version? No .bowerrc file in home directory? No .yo-rc.json file in home directory? npm versionEverything looks all right!/usr/local/lib└── yo@1.8.4sudo npm install -g bower/usr/local/bin/bower -& /usr/local/lib/node_modules/bower/bin/bower/usr/local/lib└── bower@1.7.9sudo npm install -g gulpnpm WARN deprecated graceful-fs@3.0.8: graceful-fs v3.0.0 and before will fail on node releases &= v7.0. Please update to graceful-fs@^4.0.0 as soon as possible. Use 'npm ls graceful-fs' to find it in the tree.npm WARN deprecated lodash@1.0.2: lodash@&3.0.0 is no longer maintained. Upgrade to lodash@^4.0.0.npm WARN deprecated graceful-fs@1.2.3: graceful-fs v3.0.0 and before will fail on node releases &= v7.0. Please update to graceful-fs@^4.0.0 as soon as possible. Use 'npm ls graceful-fs' to find it in the tree./usr/local/bin/gulp -& /usr/local/lib/node_modules/gulp/bin/gulp.js/usr/local/lib└─┬ gulp@3.9.1& └─┬ gulp-util@3.0.7&&& └─┬ dateformat@1.0.12&&&&& └─┬ meow@3.7.0&&&&&&& └─┬ loud-rejection@1.4.1&&&&&&&&& └── currently-unhandled@0.4.1sudo npm install -g generator-jhipsternpm WARN deprecated cross-spawn-async@2.2.4: cross-spawn no longer requires a build toolchain, use it instead!npm WARN deprecated npmconf@2.1.2: this package has been reintegrated into npm and is now out of date with respect to npm/usr/local/lib└── generator-jhipster@3.4.0注意: 安装最大的问题是网络通畅,因大部分资源都在外国,你懂的?在ios和 Linux方面,安装时常常遇到是权益问题,可用管理员权益处理的。安装上述的软件,各版本如下:下一个步骤当然是要建立J潮客的应用模版。本文例子是要建立一个叫 kenlen 的应用程式模版。打开一个终端 terminal或 cmd,用管理员权益安装,选取要安装的磁盘,输入以下指令:mkdir kenlen,&cd kenlen,&yo jhipster&(以下是萤幕上显示出来的)Welcome to the JHipster Generator v3.4.0Application files will be generated in folder:/Users/Emac/kenlen?(1/16) Which *type* of application would you like to create?Monolithic application(recommended for simple projects)?(2/16) What is the base name of your application?kenlen?(3/16) What is your default Java package name?com.emodak.kenlen?(4/16) Which *type* of authentication would you like to use?HTTP Session Authentication(stateful, default Spring Security mechanism)?(5/16) Do you want to use social login (Google, Facebook, Twitter)? Warning, this doesn't work with Cassandra!No?(6/16) Which *type* of database would you like to use?SQL(H2, MySQL, MariaDB, PostgreSQL, Oracle)?(7/16) Which *production* database would you like to use?MySQL?(8/16) Which *development* database would you like to use?MySQL?(9/16) Do you want to use Hibernate 2nd level cache?Yes, with ehcache(local cache, for a single node)?(10/16) Do you want to use a search engine in your application?Yes, with ElasticSearch?(11/16) Do you want to use clustered HTTP sessions?No?(12/16) Do you want to use WebSockets?Yes, with Spring Websocket?(13/16) Would you like to use Maven or Gradle for building the backend?Maven?(14/16) Would you like to use the LibSass stylesheet preprocessor for your CSS?No?(15/16) Would you like to enable internationalization support?Yes?Please choose the native language of the application?English?Please choose additional languages to installChinese (Simplified), Chinese (Traditional)?(16/16) Which testing frameworks would you like to use?(Press &space& to select)GatlingInstalling languages: en, zh-cn, zh-tw&& 。。。注意:有颜色的是选择了那些建立应用程式的配置。如果网络通畅,不会出现问题,建立该应用程式不超过30分钟。但是通常会有些不能下载的资源档案(jar),就要耐心应付的。如果有问题,怎么办呢?本文提供了多种方法处理。何况随时可以问候百度娘的!其中可行方法有:再输入以下指令:npm installbower installgulp install根据笔者经验,主要是下载POM的依赖资源,可输入Maven 指令:mvn cleanmvn install &U 或 mvn install &U --debug(萤幕显示出那个Jar没能下载)或者转用淘宝的镜像,用以下指令:npm config set registry再输入以上指令。应用程式的测试和运作当该项目-kenlen应用程式成功创立了,下一步骤就是测试这模版。首先要建立了该程式使用的数据库。打开MySQL Workbench:(有关MySQL的使用步骤,参考网上MySQL资料)建立数据库要求:scheme name: kenlendefault collation: utf8-utf8_unicode_ci连接数据库的用户名称: 密码: (无)在那个刚完成创立kenlen模版的终端 terminal或 cmd里,输入:&&& ./mvnw (ios) 或 ./mvn&spring-boot:run&&& mvn (Window 8/10) mvn spring-boot:run以下是Kenlen开发应用模版各网页显示:源代码输入Eclipse(STS)或Intellij IDEA成功建立了J潮客的应用模版后,当然可以把源代码输入Eclipse 或 STS, 方便修改和删除。输入前要知道该应用模版用什么工具来配置依赖资源:Maven 或 Gradle。配置Eclipse (STS):Maven (推荐使用)& Select File(选择文件)-& Import& Choose (选择)&Existing Maven Projects&& Select your project(选择项目)& Click on &Finish&(点击&完成&)&&按下一步 (Next)安装 m2e connectors输入项目后,或会出现一个对话视窗选择安装那个&Maven plugin connectors&如果在输入项目后出现了错误,都是没有安装这个附件。只需选择Quick Fix/按Ctrl+1(Cmd的+1在Mac)上的错误标记,并选择&Discover new m2e connectors&来安装。排除Node_modules及其他不用验证档案目录,以免产生验证错误右键单击项目 - &属性 - &资源 - &资源过滤器选择:全部排除,适用于文件夹,名称相匹配&node_modules&按&OK&排除JavaScript及其他不用验证档案目录,以免产生验证错误右键单击项目 - &属性 - &Javascript - &包含路径点击&source&选项卡,选择项目/ src/main/webapp选择&Excluded:(None) - &编辑 - &添加多个(以下全部是)选择bower_components和scripts,然后单击&确定&& & 排除包括(.TMP/;node_modules/;src/main/webapp/dist )&&&& 注意:其实可以不必理会这些验证错误,干脆把这些错误删除就是,就不用这样烦。Gradle在 Eclipse Marketplace 下载及安装 &Gradle Integration for Eclipse&选择输入项目后,单击 &build.gradle&, 然后单击&确定&参考建议不在 Eclipse 运行项目,只作修改之用。可在终端 terminal测试及运行。2. &配置 Intellij IDEA:参考Kenlen 项目Maven结构体如下:Kenlen 项目client结构体如下:简单总结一下&&&&不少成功的秘诀教导:若要在这竞争性越来越强的世界里,需要先人一步; 光做到自强不息是不够的,必须借助比自己能力强而累积来的经验,相信这样一定会事半功倍!或者说现今科学发达,日新月异,资讯繁多,怎么样才容易跟上? 笔者以为: J潮客就是一个好好学习的例子。基本上,祇用半小时的工作就能得出六星期的工作效果。Kenlen项目有140MBs 资料, 4千多个档案。 有人统计过:一个完成的Java项目祇需要编辑1200条代码,其馀91%的全是由J潮客编制而成的。 各位可以亲自经历一下吧! 笔者会分数期与各位分享J潮客的经验。 例如怎么样增添网页;模型实体,业务接口逻辑 ; &Javascript 动画等等。更深入地讨论数据库的应用。不少高大上的项目都是沿J潮客的途径而进行的。光是在法国就有一间公司, 内有数百名专家以J潮客方式来完成项目工作。&Kenlen 项目采用各技术版本记录:Spring Boot 1.3.5, Spring 4.2.6, Metric 3.2.1, hibernate 4.3.11, AngularJs 1.5.5, MySQL 5.7.12怎样使用压缩附件:下载后,解压在适当磁碟的目录里。安装kenlen.sql到MySQL内,打开一个终端 terminal或 管理员权益cmd,输入指令:& & ./mvnw (ios) 或 ./mvn spring-boot:run&&& mvn (Window 8/10) 或mvn spring-boot:run最后萤幕出现:&&&&&&&& ----------------------------------------------&&&&&&&& Application 'kenlen' is running! Access URLs:&&&&&&&& Local: &&&&&&&&&&&&&&&& http://127.0.0.1:8080&&&&&&&& External: && http://192.168.11.5:8080& & & & &----------------------------------------------祇需要在常用的浏览器输入:localhost:8080浏览器上就会出现Kenlen应用模版首页如上面的。注意: Kenlen压缩附件已经是完成就绪的开发程式模版。上述所描述的步骤是开发一个全新的项目程式。如果不能启动的话,首先考虑是否数据库密码问题。修改数据库用户名称和密码是在该档案内:&& src/main/resources/config/applicationtion-dev.yml用一般editor打开,在datasource下面(line 23-24)username, password. 请根据本身的规定改正后保存。不然就是本身开发环境不健全吧。该说都全说了!笔者以往分享的记录:猜你喜欢16个牛币请下载代码后再发表评论//__MACOSX/__MACOSX/kenlen1/__MACOSX/kenlen1/._.DS_Store/kenlen1/kenlen1/.DS_Store/kenlen1/kenlen/kenlen1/kenlen/.DS_Store/kenlen1/kenlen/.apt_generated/kenlen1/kenlen/.bowerrc/kenlen1/kenlen/.classpath/kenlen1/kenlen/src/kenlen1/kenlen/src/main/kenlen1/kenlen/src/main/java/kenlen1/kenlen/src/main/java/com/kenlen1/kenlen/src/main/java/com/emodak/kenlen1/kenlen/src/main/java/com/emodak/kenlen/kenlen1/kenlen/src/main/java/com/emodak/kenlen/aop/kenlen1/kenlen/src/main/java/com/emodak/kenlen/aop/logging/kenlen1/kenlen/src/main/java/com/emodak/kenlen/async/kenlen1/kenlen/src/main/java/com/emodak/kenlen/config/kenlen1/kenlen/src/main/java/com/emodak/kenlen/config/apidoc精精精精原精精精原原精原相关分享最近下载暂无贡献等级暂无贡献等级暂无贡献等级暂无贡献等级&LV4最近浏览暂无贡献等级暂无贡献等级暂无贡献等级暂无贡献等级暂无贡献等级暂无贡献等级暂无贡献等级扫描二维码关注最代码为好友"/>扫描二维码关注最代码为好友Java开发者结合Node.js编程入门教程
投稿:junjie
字体:[ ] 类型:转载 时间:
这篇文章主要介绍了Java开发者结合Node.js编程入门教程,我将先向您展示如何使用Java EE创建一个简单的Rest服务来读取 MongoDB数据库。然后我会用node.js来实现相同的功能,需要的朋友可以参考下
首先, 我必须得承认,作为一个有着十多年开发经验的java开发者,我已经形成了解决绝大部分问题的固有套路,尽管它们很多时候显得笨重和繁琐。 比如说如果要读取一个文件,那应该就是初始化一个BufferedReader 实例并传入一个FileReader,这几乎是顺理成章的,我在很多自认为算得上“企业级”的项目中编写这样的代码并且很享受这个过程,可以说我就是一个对其他语言不屑一顾的java脑残粉。&&&&&
  如果你正在阅读这篇博文,你可能已经陷入了我多年前早就陷入的一个误区,作为一名合格的开发人员应该不断地学习新的技术并且根据实际工作需求选用适 当的技术。尽管我一直在变老并且有朝一日可能会厌烦了java。但是我现在真的发现了一个激动人心的新东西,node.js对于我就像一个儿童得到一个新 奇的玩具,在这篇博文中,我将先向您展示如何使用Java EE创建一个简单的Rest服务来读取 MongoDB数据库。然后我会用node.js来实现相同的功能,你会更容易了解到这种新的开发语言的激动人心之处。
从基础开始——什么是Node.js?
  首先,我要说明一点,Node.js不是那种“新潮时尚”,只有“潮人”才使用的语言。虽然它是本着这种认知开始,但是我很高兴的报告给大 家,Node.js是一种成熟的语言——并且在当下这个互联网时代,它已经找到了其自己的方式进入大型企业,支撑起一些最高流量的网站。Node.js是 你技能储备当中的一个非常实用的工具,在构建稳定、安全和高性能的代码上,其便捷度会令你大吃一惊。
  言而总之,Node是一种针对服务器端活动的语言。它使用了Javascript语言,并且有非常多的库可用,比如npm模型。你可以把那些npm 模型比作Java中的.jar包。当你需要一部分功能,并且不喜欢自己全部编写这部分代码,极有可能在npm模型中已经提供了你正在寻找的特性。
  Node应用程序通常执行时需要实现效率最大化利用非阻塞 I/O 和异步事件。对于Java开发者来讲需要知道的一点是Node应用运行单线程中。然而,后端节点代码使用多个线程进行操作,如网络和文件访问。鉴于此,Node对于那些需要实时经验的应用是完美的选择。
继续——IDE支持
  你可能会像我一样,在IDE中“生存”和“呼吸”,这可能源于Java实在是太罗嗦了,需要我们在软件开发过程中编写恒定的代码来完成功能。一旦我们找到 了代码完成的好处,我们慢慢学会了使用 IDE 进行文件管理、 调试和其他非常有用的功能。可以这样说,我喜欢使用一款IDE并且在使用Nodeb工作时继续使用它。下面是当前最为第一批支持Node的IDE:
1.Eclipse——这应该很容易上手当你在Java中已经使用它。仅需要安装Node.js插件即可。
2.JetBrains IntelliJ IDEA——一款非常流行的商业化的IDE。目前为止,这是我最喜欢的IDE。
3.Microsoft Visual Studio——是的,你没看错。Node已经成长到微软在Visual Studio添加了对其的原生支持。这个实现非常稳定,并且VS是我第二喜欢的IDE。说来也怪,我使用VS仅仅用作一些基础的Node项目。
4.CodeEnvy——一款基于web的IDE
5.Cloud9——一款基于web的IDE
6.SublimeText 2——没有多余装饰的文本编辑器,由于其轻量级,在开发者中的知名度越来越高。
这是我工作在Node基础项目上的最喜欢的几款IDE。仅仅做个举例。
从一个范例开始
  在这篇博文的剩下部分里,我们将要用Java EE和Node.js结合起来创建一个简单的REST服务。这个REST服务将会简单的从MongoDB数据库里面读取信息并且返回这些结果给请求者。而 关于Java应用服务器和MongoDB数据库的安装和配置则不在本文的讨论范围之中。
创建我们的Java应用
  第一步:配置pom.xml文件
  我们把这个范例叫做restexample ,我将会使用JBoss EAP应用服务器。第一件我们要做的事情就是为使用Maven构建系统的依赖管理来配置我们的pom.xml文件。下面就是包含了我们这个restexample 应用里面所需要的依赖的pom.xml文件:
&project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"&
&modelVersion&4.0.0&/modelVersion&
&groupId&restexample&/groupId&
&artifactId&restexample&/artifactId&
&packaging&war&/packaging&
&version&1.0&/version&
&name&restexample&/name&
&repositories&
&repository&
&id&eap&/id&
&url&http://maven./techpreview/all&/url&
&releases&
&enabled&true&/enabled&
&/releases&
&snapshots&
&enabled&true&/enabled&
&/snapshots&
&/repository&
&/repositories&
&pluginRepositories&
&pluginRepository&
&id&eap&/id&
&url&http://maven./techpreview/all&/url&
&releases&
&enabled&true&/enabled&
&/releases&
&snapshots&
&enabled&true&/enabled&
&/snapshots&
&/pluginRepository&
&/pluginRepositories&
&properties&
&project.build.sourceEncoding&UTF-8&/project.build.sourceEncoding&
&piler.source&1.6&/piler.source&
&piler.target&1.6&/piler.target&
&/properties&
&dependencies&
&dependency&
&groupId&org.jboss.spec&/groupId&
&artifactId&jboss-javaee-6.0&/artifactId&
&version&3.0.2.Final-redhat-4&/version&
&type&pom&/type&
&scope&provided&/scope&
&/dependency&
&dependency&
&groupId&org.mongodb&/groupId&
&artifactId&mongo-java-driver&/artifactId&
&version&2.9.1&/version&
&/dependency&
&/dependencies&
&/project&
 酷,相当的详细,但是我希望你们能够理解里面的代码,在这篇博文中我假设读者都已经了解Java,因此我不准备解释里面的细节了。
第二步:创建beans.xml文件并且设置我们的servlet映射
  作为范例的一部分,我们将会对我们的数据库访问类使用CDI(上下文依赖注入)。根据官方的CDI配置说明,一个应用要使用CDI的话就要在该应用的 WEB-INF 目录里面包含一个beans.xml文件。因此我们就来创建这个文件并且按照我们所需的信息来配置它。进入到你的 /src/main/webapp/WEB-INF 目录然后创建一个 beans.xml文件,加入下面的代码:
&?xml version="1.0"?&
&beans xmlns="/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="/xml/ns/javaee
http://jboss.org/schema/cdi/beans_1_0.xsd"/&
  我们也需要在 web.xml 文件里面为我们的RESI API设置servlet映射。在 /src/main/webapp/WEB-INF 目录的文件里面加入下面的servlet映射元素:
&servlet-mapping&
&servlet-name&javax.ws.rs.core.Application&/servlet-name&
&url-pattern&/ws/*&/url-pattern&
&/servlet-mapping&
第三步:创建DBConnection类
  到这一步,我们已经建立好项目并且我们的pom.xml文件已经包含了MongoDB数据库的驱动依赖,记得要确保所需要的驱动已经被打包好在我们的应用里面。下一件事我们就要创建一个类用来管理数据库的连接。创建一个新的文件命名为 DBConneection.java,把这个文件放置到 /src/main/java/com/strongloop/data 目录里面,然后再这个文件里面加入下面的代码:
  注意:要确保你安装MongoDB数据库配置好适当的连接授权细节信息!
package com.strongloop.
import java.net.UnknownHostE
import javax.annotation.PostC
import javax.enterprise.context.ApplicationS
import javax.inject.N
import com.mongodb.DB;
import com.mongodb.M
@ApplicationScoped
public class DBConnection {
private DB mongoDB;
public DBConnection() {
@PostConstruct
public void afterCreate() {
String mongoHost = "127.0.0.1"
String mongoPort = "27001"
String mongoUser = "
String mongoPassword = "rocks";
String mongoDBName = "restexample";
int port = Integer.decode(mongoPort);
Mongo mongo =
mongo = new Mongo(mongoHost, port);
} catch (UnknownHostException e) {
System.out.println("Couldn't connect to MongoDB: " + e.getMessage()
+ " :: " + e.getClass());
mongoDB = mongo.getDB(mongoDBName);
if (mongoDB.authenticate(mongoUser, mongoPassword.toCharArray()) == false) {
System.out.println("Failed to authenticate DB ");
public DB getDB() {
return mongoDB;
第四步:把数据导入到MongoDB中(mmmm啤酒)
在我们的项目中,我们想要加载所有名称为Pabst的啤酒列表。如果你不熟悉啤酒行业,你可以试下Pabst Brewing公司生产的美式淡啤。这些啤酒上面带有蓝绶带和柯尔特{敏感词}图案,他们包含所有的麦芽糖饮料种类。
首先你需要下载一个json文件,里面包含需要返回的所有数据。你可以用下面的URL来实现这点:
下载结束后,使用mongoimport命令把它导入到数据库中,命令如下:
$ mongoimport --jsonArray -d yourDBName -c beers --type json --file /tmp/beers.json -h yourMongoHost --port yourMongoPort -u yourMongoUsername -p yourMongoPassword
你可以看到如下结果:
connected to: 127.0.0.1:27017
Tue Jun 10 20:09:55.436 check 9 24
Tue Jun 10 20:09:55.437 imported 24 objects
第5步: 创建Beer模型对象
  我们已经创建了一个数据库连接类并且已经把啤酒信息载入到MongoDB数据库里了,是时候创建一个模型对象来控制我们的啤酒信息了。创建一个新文件,名为Beer.java并把它放到/src/main/java/com/strongloop/data目录下。创建好该文件后,在其中添加如下代码:
package com.strongloop.
public class Beer {
public String getId() {
public void setId(String id) {
public String getName() {
public void setName(String name) {
this.name =
public String getDescription() {
public void setDescription(String description) {
this.description =
 注意: 提供好的JSON文件中包含了更多我们将会使用到的信息,所以可以找出来看看,并向其中添加一些额外的功能来拓宽你的学习经验。
第6步: 创建REST服务
  猜猜看该干什么了?不错,我们终于准备好要创建基于REST的web服务了,它使我们可以获取到上一个步骤当中载入进来的啤酒信息。为此,我们需要创建一个新的名为BeerWS.java的文件,并把它放到/src/main/java/com/strongloop/webservice目录下。创建好之后,添加下列代码:
package com.strongloop.
import java.util.ArrayL
import java.util.L
import javax.enterprise.context.RequestS
import javax.inject.I
import javax.ws.rs.GET;
import javax.ws.rs.P
import javax.ws.rs.P
import javax.ws.rs.QueryP
import com.strongloop.data.DBC
import com.strongloop.data.B
import com.mongodb.BasicDBO
import com.mongodb.DB;
import com.mongodb.DBC
import com.mongodb.DBC
import com.mongodb.DBO
@RequestScoped
@Path("/beers")
public class BeerWS {
private DBConnection dbC
private DBCollection getBeerCollection() {
DB db = dbConnection.getDB();
DBCollection beerCollection = db.getCollection("beers");
return beerC
private Beer populateBeerInformation(DBObject dataValue) {
Beer theBeer = new Beer();
theBeer.setName(dataValue.get("name"));
theBeer.setDescription(dataValue.get("name"));
theBeer.setId(dataValue.get("_id").toString());
return theB
// 获取所有啤酒
@Produces("application/json")
public List&Beer& getAllBeers() {
ArrayList&Beer& allBeersList = new ArrayList&Beer&();
DBCollection beers = this.getBeerCollection();
DBCursor cursor = beers.find();
while (cursor.hasNext()) {
allBeersList.add(this.populateBeerInformation(cursor.next()));
} finally {
cursor.close();
return allBeersL
第7步: 浏览着啤酒信息傻乐
  喔,搞定。我们已经写好了一个REST服务,可以从数据库中获取所有的啤酒信息。现在把你的代码部署到你的应用服务器吧, 在浏览器中打开下列地址看看它是否工作正常:
http://yourserverlocation/ws/beers
  如果所有东西都正常,你将会看到所有的啤酒信息列表,如下图所示:
创建 Node 应用
  如果你按照上面的步骤使用java进行编程,你会意识到使用javaEE创建应用尽管进展很快,但是创建一个类似REST服务的简单应用还是很麻烦。不要误解,我仍然很喜欢用javaEE,但是发现对于很多场景,比如创建返回json数据的REST服务,Node更适用。接下来,我们将要使用StrongLoop的LoopBack API创建一个简单的web服务。另外,我会向你展示如何在苹果OSX系统上安装Node。
步骤1:安装 Node
  最简单的安装Node的方式是通过一个兼容大部分操作系统的二进制包。打开浏览器访问下面的网页,根据你的操作系统下载适用的版本:
  下载完成后,你会看到下面的内容:
如果你用的是Mac OSX,点击通用的.pkg文件。这会把安装程序保存到你本机中。下载了该文件之后,双击它就可以启动安装程序,你会看到下列安装对话框:
一路默认的安装下去,成功安装之后,点击close按钮来退出安装程序。
相当简单,是吧?
步骤2:使用NPM安装LoopBack
  现在本地系统中已经安装了Node,接下来要安装StroopLoop公司提供的LoopBack包。LoopBack是一个开放的API源码包,当你学习使用Node开发、部署软件时,LoopBack可以使编程更简单。
  为了安装LoopBack,我们要使用npm命令行,它是Node语言核心的一部分。NPM是一个官方的包管理工具,用于安装应用程序依赖的类库或模版。如果你是一名java程序员,你可以把NPM比作Maven。使用Maven构建项目,开发人员可以在pom.xml中配置项目依赖的jar包或模版。当项目开始编译时,Maven会下载所有依赖的文件,并将jar包引入到项目中。NPM工作原理和Maven相同,对于一些特殊的项目,它使用package.json文件来配置项目依赖的文件。你也可以使用命令行方式将依赖的文件下载到本地系统中。如果这些内容你不理解,不要担心,在接下来的步骤里我们会详细描述package.json文件。
  为了安装LoopBack, 我们使用一个简单的命令行来下载和安装所有依赖的文件。打开你的window命令行窗口,输入下面命令:
$ npm install -g strongloop
提示:安装时,你可能需要使用其它用户帐号来执行这个命令。
  这个命令行是什么含义呢?-g参数表示告诉npm我们想要安装strong-cli包。-g参数使这个包对任何系统和应用程序都兼容。一旦你运行了上面的命令,NPM会下载所有依赖的文件。下载的时间视网速而定,可能需要几分钟。
步骤3:创建应用程序
  使用LoopBack API创建一个应用程序很简单。 打开你的window命令行窗口,使用下面的命令来创建一个新的应用程序restexample.
$ slc loopback
接下来它会提示输入项目根路径的名称。 在这个示例中,使用restexample。 接下来它会提示输入应用程序名称。 使用默认值restexample。
slc命令现在已经创建一个名称为restexample的LoopBack应用程序,并且已经配置了这个应用程序。 如果再次执行上面的命令,仍然使用restexample命名,LoopBack会创建一个新的目录。 可以使用cd命令来修改应用程序的根路径。
$ cd restexample
现在我们已经创建完一个应用程序,接下来我们将MongoDB配置为程序的数据源。
步骤4:定义数据源
为了连通MongoDB,我们需要给应用程序增加一个数据源,运行以下命令即可:
$ slc loopback:datasource
在弹出的提示符下,可以输入任意自定义的数据源名称,这里选择myMongo
[?] Enter the data-source name: myMongo
这样我们就将后端的数据源定义附加到由StrongLoop支持的真实连接器上面.这里我们从列表选择MongoDB连接器.
[?] Select the connector for myMongo:
PostgreSQL (supported by StrongLoop)
Oracle (supported by StrongLoop)
Microsoft SQL (supported by StrongLoop)
MongoDB (supported by StrongLoop)
SOAP webservices (supported by StrongLoop)
REST services (supported by StrongLoop)
Neo4j (provided by community)
(Move up and down to reveal more choices)
步骤5:指向真实的数据源
  为了连通MongoDB,我们需要指向真实际的MongoDB实例.LoopBack在datasource.json文件中定义了所有的数据源配置信息.这个文件位于应用程序的root/server目录.打开这个文件,按照如下的方式,为MongoDB增加一个数据源:
"name": "db",
"connector": "memory"
"myMongo": {
"name": "myMongo",
"connector": "mongodb"
"url": "mongodb://localhost:27017/restexample"
注意:要保证为MongoDB数据库提供正确的 连接 URL.针对这个例子,我创建了一个名为 restexample 的数据库,它用来作为数据源.
步骤6:导入数据到MongoDB(mmmmm 啤酒)
  就像本文Java部分说到的那样,我们需要加载数据集到MongoDB数据库中.如果你已经按照本文说到的方法完成了这个步骤,然后打算使用同一个数据库,你可以忽略步骤6,直接跳到步骤7.
  首先,你需要下载一个包含所有要返回信息的JSON文件,可以从如下的URL获取:
  数据集文件下载完毕后,直接使用如下的mongoimport命令将它加载到数据库:
$ mongoimport --jsonArray -d yourDBName -c beers --type json --file /tmp/beers.json -h yourMongoHost --port
  你应该可以看到如下的结果:
connected to: 127.6.189.2:27017
Tue Jun 10 20:09:55.436 check 9 24
Tue Jun 10 20:09:55.437 imported 24 objects
步骤7:创造我们自己的啤酒模型
  在Java世界里,由此可以想到对象模型.它代表这一个对象,只是在这里,这个对象是啤酒.LoopBack通过命令行,提供了一种创建模型对象的简便方式.打开终端窗口,进入到工程文件夹,输入如下命令:
$ slc loopback:model
这将会开启一个交互式的会话来定义模型.首先需要输入的是模型名称,这里输入"beer".接下来会提示,这个模型应该附加到的数据源,这里选择之前创建的myMongo数据源.
[?] Enter the model name: beer
[?] Select the data-source to attach beer to:
db (memory)
myMongo (mongodb)
接下来提示,是否通过REST将此API暴露出来.当然,这里希望这样.
[?] Expose beer via the REST API? Yes
最后,为模型选择网络复数名,这里模型名为beer,所以复数为beers(默认).敲击Enter键接受默认值.
[?] Custom plural form (used to build REST URL):
接下来会提示定义模型属性.对这个示例程序,我们关注名称和对啤酒的描述.
Enter an empty property name when done.
[?] Property name: name
只要敲击了Enter,就会提示输入各个指定属性的数据类型.第一个项是name,这里选择字符串类型.选择字符串类型,然后敲击
[?] Property type: (Use arrow keys)
接下来,按照同样的方式创建description属性,接着会要求输入数据类型.它同样是一个字符串类型,选择字符串选项,然后敲击
Let's add another beer property.
Enter an empty property name when done.
[?] Property name: description
invoke loopback:property
[?] Property type: string
[?] Required? Yes
  祝贺!你已经使用LoopBack结合Node完成了模型对象的创建.如果想查看在这个过程中真正创建了什么,可以打开位于应用程序root/common/models目录的beer.json文件,滚动到这个文件的最后,将会看到如下模型:
"name": "beer",
"base": "PersistedModel",
"properties": {
"type": "string",
"required": true
"description": {
"type": "string",
"required": true
"validations": [],
"relations": {},
"acls": [],
"methods": []
这里可以看到,我们创建了一个模型,同时,name和description属性已经赋予了这个模型.
在/server/model-config.js文件中,可以注意到,文件中包含一些额外的字段,包括public和datasource.其中public域指定我们希望通过一个REST网络服务将此模型暴露给外部.datasource域则指定这个模型的CRUD操作将会用到的数据源.
"dataSource": "myMongo",
"public": true
步骤8:沉浸在看到beers的喜悦中
  祝贺!你已经创建了第一个Node.js应用程序,其中包含可以获取beer信息的REST网络服务.最后,我们需要做的就是部署这个应用程序.
  庆幸的是,部署是已经很容易的事情.可以通过在应用程序根目录执行如下命令来完成:
只要应用程序一运行,就可以通过浏览器转到如下的URL来确认部署是否成功:
相当酷,是不是?
LoopBack同时也包含了一个允许查看应用程序所有可用服务的页面,包括Beer模型和我们创建的REST服务,将浏览器指向如下的URL即可查看:
页面加载成功后,你会看到下面的界面,我们已经创建了beers节点作为博客的一部分,我把/beers端点进行高亮显示了:
你可以点击/beers来展开可供调用的API,你可以操作并测试一下,如下图所示:
 在这篇博文中,我展示了如何使用java EE 去创建一个rest服务,这个服务能够返回Pabst啤酒公司的啤酒产品清单数据。 之后我又使用node.js以及基于node.js的loopback框架使用很少的代码实现了相同功能的rest服务。 最重要的是,LoopBack API& 还对beer实体的增删查改提供了默认的实现,使得我们不用再写一行代码就得到了一个具有完整增删查改功能的rest服务。
下面的清单对博文中涉及的javaEE和node.js各自特性进行一个对比:
完善的IDE支持
Yes, 多种IDE供选择,包括 Eclipse, Sublime and Idea
Yes,&&多种IDE供选择,&Visual Studio, Eclipse, Sublime
有企业级项目采用
庞大的组件生态系统
通用开发框架
Spring, JEE
数据库支持
接下来的内容?
&即将发布的Node v0.12 将带来至少8个激动人心的新特性,它们会是什么呢?访问 “What's New in Node.js v0.12” 页面了解更多.
对Node相关的培训和认证感兴趣? StrongLoop 公司提供各种服务满足您的需求。
您可能感兴趣的文章:
大家感兴趣的内容
12345678910
最近更新的内容
常用在线小工具

我要回帖

更多关于 javascript中创建对象 的文章

 

随机推荐