8

我的任务是使用 java 和 mysql 开发一个交互式网站:使用 servlet 检索和按摩数据,applet 对数据客户端进行特殊处理,并处理来自客户端的不同数据视图的请求。

您会推荐什么作为使用 java 进行 Web 开发的适当通用工具包/环境。

我需要知道以下内容的用途:

  • 服务器端(tomcat?/?)
  • 内容管理系统
  • 编辑器/IDE
  • 通用工具/实用程序
  • 定向(特殊用途)工具/实用程序
  • 测试和 QA 工具/实用程序/技术
  • 参考资料(在线和离线)

请评估建议的解决方案并提供替代方案/改进/支持


建议的 Java Web 开发工具包/环境

通过cdb

  • 服务器端:
    Tomcat6
  • CMS:
    Drupal(初步阶段不需要)
  • 编辑器/IDE:
    NetBeans(适合初学者)
  • 通用工具:(
    几乎所有东西都在 NetBeans 中......以后再去尝试)
  • 指导(特殊用途):(
    几乎所有内容都在 NetBeans 中……稍后再做)
  • 测试和 QA:
    JUnit 和使用 Firebug(先进行手动测试)
  • 参考资料:
    关于 JSP、JavaScript 等的 HeadFirst 系列
    。SCRIBD(在线)
    [编辑]
  • 框架:
    Spring Web MVC 2.5 - (这似乎包含大多数其他框架

从答案中提炼出的选项

服务器端

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

内容管理系统

编辑器/IDE

通用工具/实用程序

  • Maven - “.. 一种现在可用于构建和管理任何基于 Java 的项目的工具。”
  • log5j也在这里[SourceForge] - “Java 5 及以上版本的 Java 日志库”

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

  • CruiseControl - 基于团队的“用于创建自定义连续构建过程的工具和可扩展框架”
  • Spring框架(-设计)

测试和 QA 工具/实用程序/技术

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

参考资料(在线和离线)

4

6 回答 6

4
  • 服务器端
    Tomcat6
  • CMS
    Drupal(在初级阶段不需要)
  • 编辑器/IDE
    NetBeans(适合初学者)
  • 通用工具/实用程序
    (几乎所有内容都在NetBeans中......稍后再去)
  • 定向(特殊用途)工具/实用程序
    (几乎所有内容都在NetBeans中......稍后再去)
  • 测试和 QA 工具/实用程序/技术
    JUNIT和使用FireBug(先进行手动测试)
  • 参考资料(在线和离线)
    HeadFirst Series on JSP、JavaScript 等
    SCRIBD(在线)
于 2009-09-08T06:21:03.167 回答
3

对于网络开发,我使用(并且会推荐)以下内容:

  • JSP/Servlet API
  • 春季MVC
  • jQuery
  • XHTML 和 CSS
  • 健身

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

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

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

于 2009-09-07T08:15:35.613 回答
3

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

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

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

对于上述许多情况,标准 Java/开发工具适用,例如“标准”IDE(Netbeans/Eclipse/Intellij - Intellij 值得购买,顺便说一句)。这同样适用于 CMS,并且该网站上有很多关于 SVN/Git/Mercurial 等优缺点的资源。值得检查您选择的 CMS 是否与您的 IDE 集成。

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

于 2009-09-07T08:22:02.480 回答
3

内容管理系统

  • 乌龟SVN

编辑器/IDE

通用工具/实用程序

  • Maven(构建和部署工具)
  • 巡航控制
  • GWT/ext-GWT/ICEFaces - web 组件技术
  • Spring - 依赖注入框架
  • 休眠 - ORM
  • Axis 2.0 Web 服务开发工具包
  • 老板

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

  • log5j - 用于记录

测试和 QA 工具/实用程序/技术

- Watij
- Firebug
- QTP for automated testing
- Junit Perf (Junit test cases for performance testing.)

参考资料(在线和离线)

  • 每种技术的 Java 文档
  • 谷歌当然:)
于 2009-09-07T09:46:57.963 回答
1

试试vcl.js是多合一的(前端和后端)企业 Web 开发工具,

  1. 可视化组件库 - 包括页面、网格、输入、仪表、图表等等
  2. 纯 JavaScript
  3. 单页应用
  4. .Net 后端
  5. 数据绑定
  6. 推特引导
  7. 简单的数据库查询执行
  8. 路由
  9. AMD - 模块加载器

我想这个想法是你不需要学习 jquery、Sammyjs 或任何其他框架

于 2013-10-24T05:12:58.067 回答
0

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


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

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

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

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

另一个例子,假设我非常相信模型-视图-控制器分离,为了清晰和重用,我想稍微扩展一下。我可以使用:

  • 在视图中,我将我的模型(干净的 Html,无格式,无脚本)、我的视图(或格式,仅限外部 css)和我的控制器(javascript,使用非干扰性 javascript 策略)干净地分开。
  • 在 webapp 中,我可以使用 Spring MVC 来很好地分离这些层。
  • 在业务中(这个例子有点做作:-)),我可以有一个丰富的域模型,广泛使用命令模式(“控制器”),并将我的业务服务明确地公开为接口 API(“视图”)。
于 2009-09-07T08:28:24.963 回答