Java初学者web开发工具包/环境
我的任务是使用java和mysql开发一个交互式网站:使用servlet检索和按摩数据,applet对数据客户端进行特殊处理,以及处理来自客户端的不同数据视图请求。
您建议使用java作为Web开发的适当通用工具包/环境。
我需要知道如何使用以下内容:
- 服务器端(tomcat?/?)
- CMS
- 编辑/ IDE
- 一般工具/实用程序
- 定向(特殊用途)工具/实用程序
- 测试和QA工具/实用程序/技术
- 参考资料(在线和离线)
请评估建议的解决方案并提供替代方案/改进/支持 。
建议的Java Web开发工具包/环境
通过cdb :
- 服务器端:
的Tomcat6 - CMS:
Drupal(在初步阶段没有必要) - 编辑/ IDE:
NetBeans(适合初学者) - 一般工具:
(几乎所有内容都在NetBeans中……稍后再讨论) - 定向(特殊用途):
(几乎所有内容都在NetBeans中……稍后再讨论) - 测试和质量保证:
JUnit并使用Firebug(首先进行手动测试) - 参考资料:
关于JSP,JavaScript等的HeadFirst系列
SCRIBD(在线)
[ 编辑 ] - 框架:
Spring Web MVC 2.5 – ( 这似乎包含了大多数其他框架 )
从答案中提炼出的选项
服务器端
- Apache Tomcat – “用于运行Java代码的HTTP Web服务器环境”
- Jetty – “HTTP服务器,HTTP客户端和javax.servlet容器”
- GlassFish – 应用服务器(基于Tomcat +更多function)
- JBoss – 应用程序服务器(“基于J2EE的应用程序服务器以100%纯Java实现”)
CMS
- Drupal的
编辑/ IDE
- Eclipse – IDE
- NetBeans – IDE
- IntelliJ – 专有IDE
一般工具/实用程序
- Maven – “……现在可用于构建和管理任何基于Java的项目的工具。”
- log5j也在这里 [SourceForge] – “用于Java版本5及更高版本的java日志库”
定向(特殊用途)工具/实用程序
- CruiseControl – 基于团队的“工具和可扩展的框架,用于创建自定义的连续构建过程”
- Spring框架 ( – 设计)
测试和QA工具/实用程序/技术
- Watij – “创建Java API以实现Web应用程序的自动化”
- HtmlUnit – “它模拟HTML文档,并提供一个API,允许您调用页面,填写表单,点击链接等……”
- Firebug – (Firefox)“在任何网页中编辑,调试和监控CSS,HTML和JavaScript”
- Hudson – “构建/测试软件项目[…]监控外部工作的执行情况”
- LiveHttpHeaders – 实时查看和编辑http请求标头
- JUnit – “编写可重复测试的框架”
参考资料(在线和离线)
- 列表分开 – “为制作网站的人”
- Java – TiJ
- 服务器端
的Tomcat6 - CMS
Drupal (在prilim阶段不必要) - 编辑/ IDE
NetBeans (适合初学者) - 一般工具/实用程序
(几乎所有内容都在NetBeans中 ……稍后再讨论) - 定向(特殊用途)工具/实用程序
(几乎所有内容都在NetBeans中 ……稍后再讨论) - 测试和QA工具/实用程序/技术
JUNIT并使用FireBug (首先进行手动测试) - 参考资料(在线和离线)
关于JSP ,JavaScript等的HeadFirst系列
SCRIBD (在线)
对于Web开发,我使用(并建议)以下内容:
- JSP / Servlet API
- Spring MVC
- JQuery的
- XHTML和CSS
- FitNesse的
关于资源,所有这些技术都在其各自的站点上有详细记录,唯一的例外是XHTML和CSS,我建议http://www.alistapart.com 。
关于编辑器,IntelliJ和(我相信)Eclipse都有非常好的HTML,CSS,JSP和JavaScript编辑器。
同时使用Firefox(如Brian建议的那样)同时使用Web Developer插件和Firebug – 这两者都是不可或缺的。
Tomcat和Jetty都是众所周知/支持的servlet容器。 如果您正在构建可部署的客户,则可能需要在两者上进行测试,如果您不控制部署。
要进行测试,请查看(以及JUnit / TestNG的常规unit testing框架) Watij和/或HtmlUnit 。 这些将允许您自动化实际的Web /浏览器交互,并从长远来看将为您节省一个悲伤的世界。 缺点是您需要花一些时间来设置测试。
与自动化测试相关,我认为您需要一个自动构建/持续集成系统。 Java世界中有很多。 两个常见的是CruiseControl和Hudson 。
对于上述许多内容,标准Java /开发工具适用于例如“标准”IDE(Netbeans / Eclipse / Intellij – Intellij值得付费,顺便说一句)。 这同样适用于CMS,本网站上有很多关于SVN / Git / Mercurial等利弊的资源。值得检查您选择的CMS是否与您的IDE集成。
我会查看Firebug以简化开发(在Firefox上)。 它使前端开发变得更加容易。 LiveHttpHeaders将简化与HTTP传输相关的问题的诊断。
CMS
- Tortoise SVN
编辑/ IDE
- 日食
一般工具/实用程序
- Maven(构建和部署工具)
- 巡航控制
- GWT / ext-GWT / ICEFaces – 网络组件技术
- Spring – dependency injection框架
- Hibernate – ORM
- Axis 2.0 Web服务开发工具包
- Jboss的
定向(特殊用途)工具/实用程序
- log5j – 用于记录
测试和QA工具/实用程序/技术
- Watij - Firebug - QTP for automated testing - Junit Perf (Junit test cases for performance testing.)
参考资料(在线和离线)
- 每种技术的Java文档
- Google ofcourse 🙂
尝试vcl.js是一体化(前端和后端)企业Web开发工具,
- 可视化组件库 – 包括页面,网格,输入,仪表,图表等等
- 纯JavaScript
- 单页面应用程序
- .Net后端
- 数据绑定
- Twitter引导程序
- 简单数据库查询执行
- 路由
- AMD – 模块加载器
我想这个想法是你不需要学习jquery,Sammyjs或任何其他框架
根据slashmais的要求编辑的第一段:这个答案并没有真正与其他人和改编的问题保持一致。 它更多地是对其他答案的补充。 我相信个人偏好在选择技术之间非常重要。 我认为它(喜欢)喜欢某些东西,并选择相应的技术 。 答案的其余部分给出了例子:
例如,假设我认为应尽可能实时检查开发人员的操作 ,接收即时反馈,并尽可能完成,并尽早避免这么多错误。 这种(不喜欢)决定了一些偏好:
- 使用静态类型语言(如java)
- 使用在键入时编译的IDE(如Eclipse)
- 必须通过严格的xsdvalidation任何Xml。 如果内容引用了其他信息(例如java代码),那么应该检查它(比如Spring检查bean类)。
- 对于视图技术,因为它取决于我的java代码,我必须有一个包含我的实际java代码的validation。 一个想法可能是用Java编写我的视图。 (像Wicket)。
- 我的属性需要在属性文件中进行翻译。 但是在我的代码(或视图)中使用String键是不可接受的。 我会运行一个小工具,从每个属性文件创建java枚举,我的代码将引用枚举。
- … 等等
其他例子,假设我更喜欢“ 约定优于配置 ”。 也就是说,我同意在我的项目中遵循严格的规则,手动做更少的管道(因为默认值适合):
- Maven是首选的构建工具。 它会施加许多限制,但也提供开箱即用的许多“构建”function……
- 对于Web应用程序,我不能使用Struts 1,因为它们是struts-config.xml中的这些巨大的配置文件,主要是管道代码。 我肯定会切换到类似Spring MVC的东西,它具有将url映射到控制器的默认值。
- 等等 …
另一个例子,假设我在模型 – 视图 – 控制器分离中相信很多,为了清晰和重用,我想稍微延伸一下。 我可以用:
- 在视图中,我会干净地分离我的模型(干净的Html,没有格式,没有脚本),我的视图(或格式化,仅外部css)和我的控制器(javascript,使用非阻碍的javascript策略)。
- 在webapp中,我可以使用Spring MVC来分离这些层。
- 在业务中(这个例子有点疏远:-)),我可以有一个丰富的域模型,广泛使用命令模式(“控制器”),并明确地将我的业务服务暴露为接口API(“视图”)。