我一直负责开发使用Java和MySQL的一个互动网站:使用servlet来检索和按摩的数据,小程序做数据的客户端进行特殊的处理,并且处理来自客户端对不同的数据视图的请求。
你有什么建议,作为使用Java Web开发一个适当的通用工具/环境。
我需要知道是干什么用的以下内容:
- 服务器端(tomcat的?/?)
- CMS
- 编辑/ IDE
- 通用工具/公用事业
- 导演(特殊用途)工具/公用事业
- 测试和QA工具/公用事业/技术
- 参考材料(均导通及离线)
请评估建议的解决方案(S)和供给替代/改进/支持 。
建议的Java Web开发工具/环境
由国开行 :
- 服务器端:
的Tomcat6 - CMS:
Drupal的(在初始阶段没有必要) - 编辑/ IDE:
NetBeans的(适合初学者) - 常规工具:
(几乎所有的东西是在NetBeans ......去了以后) - 导演(特殊用途):
(几乎所有的东西是在NetBeans ......去了以后) - 测试和QA:
JUnit和使用Firebug(先做手动测试) - 参考资料:
头扎系列的JSP,JavaScript等
SCRIBD(在线)
[ 编辑 ]
- 框架:
Spring Web MVC框架2.5 - ( 这似乎包含大部分其他框架 )
从答案选项蒸馏
服务器端
- Apache Tomcat上 - “为Java代码运行HTTP Web服务器环境”
- 码头 - “HTTP服务器,HTTP客户端和容器的javax.servlet”
- GlassFish的 -应用服务器(基于Tomcat的+更多的功能)
- JBoss的 -应用服务器(“基于J2EE的应用服务器在100%纯Java实现”)
CMS
编辑器/写入
- 日食 - IDE
- NetBeans的 - IDE
- 的IntelliJ -礼IDE
通用工具/公用事业
- Maven的 - “..现在可以用于构建和管理任何基于Java的项目的工具。”
- log5j也是这里 [SourceForge上] - “Java记录库的Java版本5及以上”
导演(特殊用途)工具/公用事业
- CruiseControl的 -基于团队的“工具,用于创建自定义的持续构建过程中的可扩展的框架”
- Spring框架 ( -设计)
测试和QA工具/公用事业/技术
- Watij - “创建的Java API,允许Web应用的自动化”
- 的HtmlUnit - “IT模式的HTML文档,并提供了一个API,可以让您调用页面,填写表单,点击链接,等等..”
- 萤火虫 - (Firefox)的“编辑,调试和监控CSS,HTML和JavaScript住在任何网页”
- 哈德逊 - “建筑/测试软件项目[...]外部运行工作的监督执行”
- 的LiveHTTPHeaders -查看和编辑HTTP请求头活
- JUnit的 - “框架编写可重复的测试”
参考材料(均导通及离线)
对于Web开发我使用(并建议)以下内容:
- JSP / Servlet API的
- Spring MVC的
- JQuery的
- XHTML和CSS
- FitNesse的
至于资源,所有这些技术是有据可查的在各自的网站,唯一的例外是XHTML和CSS为此我建议http://www.alistapart.com 。
至于编辑的IntelliJ都和(我相信)Eclipse中有很好的HTML,CSS,JSP和JavaScript编辑器。
还使用Firefox(布赖恩曾建议),同时与Web开发插件和Firebug的 - 这两个缺一不可。
Tomcat和Jetty的都是知名/支持servlet容器。 如果你正在构建一个可部署为客户可能要测试两个,如果你不控制部署。
为了进行测试,检查(使用JUnit / TestNG中的常规的单元测试框架一起) Watij和/或的HtmlUnit 。 这将使您自动实际的Web /浏览器交互,将节省您的悲伤的世界,从长远来看。 缺点是,你必须在设置你的测试投资一些时间。
相关的自动化测试,我认为你需要一个自动构建/持续集成系统。 许多比比皆是,在Java世界。 两种最常见的的CruiseControl和哈德森 。
对于很多上面的,标准的Java /开发工具的应用如“标准”的IDE(Netbeans的/ Eclipse中/的IntelliJ - 的IntelliJ是值得付出的,顺便说一句)。 这同样适用于CMS和有很多资源本网站的利弊上/ SVN / GIT中/水银等的利弊值得一检查CMS的选择与你的IDE集成。
我想看看萤火虫的简化(在Firefox)的开发。 它使前端开发容易得多。 的LiveHTTPHeaders将缓解有关HTTP传输问题的诊断。
CMS
编辑器/写入
通用工具/公用事业
- Maven的(构建和部署工具)
- 巡航控制
- GWT / EXT-GWT / ICEFaces的 - 网络组件技术
- 春天 - 依赖注入框架
- 休眠 - ORM
- 的Axis 2.0 Web服务开发工具包
- Jboss的
导演(特殊用途)工具/公用事业
测试和QA工具/公用事业/技术
- Watij
- Firebug
- QTP for automated testing
- Junit Perf (Junit test cases for performance testing.)
参考材料(均导通及离线)
- 每个技术的Java文档
- 谷歌ofcourse :)
尝试vcl.js都在一个(前端和后端)企业Web开发工具,
- 可视化组件库 - 包括网页,网格,输入,量表,图表及更多
- 纯JavaScript
- 单页应用
- .NET后端
- 数据绑定
- Twitter的引导
- 简单的数据库查询执行
- 路由
- AMD - 模块装载机
我猜的想法是,你不需要学习jQuery,Sammyjs或任何其他框架
通过slashmais的要求编辑第一段:这个答案是不是真的与别人一致,并改写问题。 它更像是一个补充,其他的答案。 我认为,个人喜好是选择技术的真正重要的。 我认为这是(DIS)喜欢一些东西,并选择对应的技术 。 答案的其余部分给出了例子:
例如,假设我相信开发商的行动应在实时检查尽可能,如果可能的话立即得到反馈,而且完成,并避免过早这么多的错误。 这(DIS)的喜好决定了一些喜好:
- 使用静态类型语言(如Java)
- 使用该编译一个IDE您键入(如Eclipse)
- 任何XML必须经过验证,通过严格的XSD。 如果内容有其他的参考信息(比如Java代码),那么就应该检查(如Spring检查bean类)。
- 对于视图技术,因为它依赖于我的Java代码,我必须有一个验证,包括我的实际Java代码。 一个想法可能是代码我用Java视图。 (如检票)。
- 我的性需要在属性文件进行翻译。 但在我的代码(或视图)使用字符串密钥是不能接受的。 我会运行一个小工具,创建从每个属性文件的java枚举和我的代码将引用枚举。
- ... 等等
其他的例子,假设我强烈希望“ 约定优于配置 ”。 也就是说,我同意遵守stricts规则,在我的项目,获得更管道手工做(因为默认值适合):
- Maven是首选构建工具。 这将对许多制约因素,而且还提供了即装即用许多“构建”功能...
- 对于Web应用程序,我无法使用Struts 1,因为他们是在struts-config.xml这些巨大的配置文件,主要与管道代码。 我肯定会切换到类似Spring MVC的,具有用于URL映射到控制器默认值。
- 等等 ...
其他的例子,假设我相信这么多的模型-视图-控制器分离,为了清楚和再利用,我想舒展了一点。 我可以使用:
- 在视图中,我会完全分开出来我的模型(干净的HTML,无格式,没有脚本),我的看法(或格式,只有外部CSS),和我的控制器(JavaScript的,使用非obstrusive JavaScript的政策)。
- 在web应用程序,我可以用Spring MVC分离以及这些层。
- 在业务(这个例子有点constrived :-)),我可以有一个丰富的域模型,广泛地使用命令模式(“控制器”),并明确地公开我的业务服务的接口API(“意见”)。