Java初学者web开发工具包/环境

时间:2009-09-07 08:05:59

标签: java environment toolkit

我的任务是使用java& amp ;;开发一个互动网站。 mysql:使用servlets检索&按摩数据,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 - (this seems to contain most of the other frameworks

从答案中提取的选项

服务器端

  • Apache Tomcat - “用于运行Java代码的HTTP Web服务器环境”
  • Jetty - “HTTP服务器,HTTP客户端和javax.servlet容器”
  • GlassFish - 应用服务器(基于Tomcat +更多功能)
  • JBoss - 应用程序服务器(“基于J2EE的应用程序服务器以100%纯Java实现”)

CMS

编辑/ IDE

常规工具/实用程序

  • Maven - “......现在可用于构建和管理任何基于Java的项目的工具。”
  • log5jhere [SourceForge] - “Java版本5及更高版本的java日志库”

定向(特殊用途)工具/实用程序

测试和质量检查工具/实用程序/技术

  • Watij - “为允许Web应用程序自动化而创建的Java API”
  • HtmlUnit - “它为HTML文档建模并提供一个API,允许您调用页面,填写表单,点击链接等......”
  • Firebug - (Firefox)“在任何网页中编辑,调试和监控CSS,HTML和JavaScript”
  • Hudson - “构建/测试软件项目[...]监控外部工作的执行情况”
  • LiveHttpHeaders - view&实时编辑http请求标题
  • JUnit - “编写可重复测试的框架”

参考资料(包括在线和离线)

6 个答案:

答案 0 :(得分:4)

  • 服务器端
    Tomcat6
  • CMS
    Drupal(在prilim阶段没有必要)
  • 编辑/ IDE
    NetBeans(适合初学者)
  • 常规工具/实用程序
    (几乎所有内容都在NetBeans ...稍后再说)
  • 定向(专用)工具/实用程序
    (几乎所有内容都在NetBeans ...稍后再说)
  • 测试和质量检查工具/实用程序/技术
    JUNIT并使用FireBug(先手动测试)
  • 参考资料(在线和离线)
    JSP上的HeadFirst系列,JavaScript等。
    SCRIBD(在线)

答案 1 :(得分:3)

对于网络开发,我使用(并建议)以下内容:

  • JSP / Servlet API
  • Spring MVC
  • JQuery的
  • XHTML& CSS
  • FitNesse的

关于资源,所有这些技术都在各自的网站上有详细记录,唯一的例外是XHTML&我建议使用的http://www.alistapart.com

关于编辑器,IntelliJ和(我相信)Eclipse都有非常好的HTML,CSS,JSP和JavaScript编辑器。

同时使用Firefox(如Brian建议的那样)同时使用Web Developer插件和Firebug - 这两者都是不可或缺的。

答案 2 :(得分:3)

Tomcat和Jetty都是众所周知/支持的servlet容器。如果您正在构建可部署的客户,则可能需要在两者上进行测试,如果您不控制部署。

对于测试,请检查(以及JUnit / TestNG的常规单元测试框架)Watij和/或HtmlUnit。这些将允许您自动化实际的Web /浏览器交互,并从长远来看将为您节省一个悲伤的世界。缺点是您需要花一些时间来设置测试。

与自动化测试相关,我认为您需要一个自动构建/持续集成系统。 Java世界中有很多。两个常见的是CruiseControlHudson

对于上述许多内容,标准Java /开发工具适用于例如'标准'IDE(Netbeans / Eclipse / Intellij - Intellij值得付费,顺便说一句)。这同样适用于CMS,本网站上有很多关于SVN / Git / Mercurial等利弊的资源。值得检查您选择的CMS是否与您的IDE集成。

我会查看Firebug以简化开发(在Firefox上)。它使前端开发变得更加容易。 LiveHttpHeaders将简化与HTTP传输相关问题的诊断。

答案 3 :(得分:3)

CMS

  
      
  • Tortoise SVN
  •   

编辑/ IDE

  
      
  •   

常规工具/实用程序

  
      
  • Maven(构建和部署工具)
  •   
  • 巡航控制
  •   
  • GWT / ext-GWT / ICEFaces - 网络组件技术
  •   
  • Spring - 依赖注入框架
  •   
  • 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:)
  •   

答案 4 :(得分:1)

尝试vcl.js是一体化(前端和后端)企业Web开发工具,

  1. 可视化组件库 - 包括页面,网格,输入,仪表,图表等等。
  2. 纯JavaScript
  3. 单页面应用
  4. .Net Backend
  5. 数据绑定
  6. Twitter bootstrap
  7. 简单的数据库查询执行
  8. 路由
  9. AMD - 模块加载器
  10. 我想这个想法是你不需要学习jquery,Sammyjs或任何其他框架

答案 5 :(得分:0)

  

根据slashmais的要求编辑的第一段:这个答案并没有真正与其他人和改编的问题保持一致。它更多地是对其他答案的补充。   我相信个人偏好在选择技术之间非常重要。我认为它是(dis)喜欢一些东西,并选择相应的技术。答案的其余部分给出了例子:


例如,假设我认为应尽可能实时检查开发人员的操作,以便立即收到反馈,并在可能的情况下完成,并尽早避免这么多错误。这种(不喜欢)决定了一些偏好:

  • 使用静态类型语言(如java)
  • 使用在您键入时编译的IDE(如Eclipse)
  • 必须通过严格的xsd验证任何Xml。如果内容引用了其他信息(例如java代码),那么应该检查它(比如Spring检查bean类)。
  • 对于视图技术,因为它取决于我的java代码,我必须有一个包含我的实际java代码的验证。一个想法可能是用Java编写我的视图。 (像Wicket)。
  • 我的属性需要位于属性文件中才能进行翻译。但是在我的代码(或视图)中使用String键是不可接受的。我会运行一个小工具,从每个属性文件创建java枚举,我的代码将引用枚举。
  • ......等等

其他例子,假设我更喜欢“约定优于配置”。也就是说,我同意在我的项目中遵循严格的规则,手动做更少的管道(因为默认值适合):

  • Maven是首选的构建工具。它会施加许多限制,但也提供开箱即用的许多“构建”功能......
  • 对于Web应用程序,我无法使用Struts 1,因为它们是struts-config.xml中的这些大型配置文件,主要是管道代码。我肯定会切换到类似Spring MVC的东西,它具有将url映射到控制器的默认值。
  • 等......

其他例子,假设我在模型 - 视图 - 控制器分离中非常相信,为了清晰和重用,我想稍微延伸一下。我可以用:

  • 在视图中,我会干净地分离我的模型(干净的Html,没有格式化,没有脚本),我的视图(或格式化,仅外部css)和我的控制器(javascript,使用非阻碍的javascript策略)。
  • 在webapp中,我可以使用Spring MVC将这些层分开。
  • 在业务中(这个例子有点疏远:-)),我可以有一个丰富的域模型,广泛使用命令模式(“控制器”),并明确地将我的业务服务暴露为接口API(“view” “)。