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开发工具,

  1. 可视化组件库 – 包括页面,网格,输入,仪表,图表等等
  2. 纯JavaScript
  3. 单页面应用程序
  4. .Net后端
  5. 数据绑定
  6. Twitter引导程序
  7. 简单数据库查询执行
  8. 路由
  9. 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(“视图”)。