如果我想用数千个用户构建网站,我应该使用哪种Java技术

时间:2010-06-16 06:55:04

标签: java java-ee

很抱歉提出这个问题,但我搜索了所有java问题,但我更困惑。我还不清楚应该从

开始

1)我的主要是用Java构建网站,因为有人告诉我,java中有一些机器学习或AI库,我可以在java中使用。所以我决定使用它,因为它可以减少我的工作。

现在我根本不知道java有些人说以下用于构建像

这样的网站
1)Servelts alone can build webiste
2)JSP alone can also build webiste
3)Struts
4)Spring with Hibernate
5)SEAM
6)Java EE also for webistes

现在我很困惑,我应该从哪里开始。核心JAVA在哪里适合。

我正在考虑学习python,因为我知道我必须学习Python而不是它的变化

所以请指导我一件可以解决我使用现成AI库的基本目的的事情

如果我能用JSP做到这一点,那么我将从那开始。 但我需要学习所有这些,如果可以开始学习python,那就更好了。

我有5个月的时间来完成网站。

我真的不知道为什么有很多java用于做一件事

7 个答案:

答案 0 :(得分:4)

纠正你的一些误解:

  • servlets和JSP是JavaEE
  • Seam和Struts也可以与Hibernate一起使用
  • Spring MVC是一个Web框架。 Spring作为依赖注入框架可以与任何其他框架一起使用。
  • 还有更多选项,如JSF,Tapestry,Click,Play等。

这取决于网站将做什么,但您可以选择任何。

答案 1 :(得分:4)

经验表明,构建复杂的HTML表单(尤其是验证)和AJAX功能很难做到。您很可能会喜欢有一个图书馆来帮助您。数据库访问也是如此。

一切都建立在servlet之上。学习这些,以了解您将使用的库。

我建议使用facelets学习Java ServerFaces。最强大的功能是Java EE 6中的JSF 2.最简单的入门方法是将NetBeans与GlassFish 3一起使用。

答案 2 :(得分:4)

对于静态网页,仅HTML就足够了,如果你想让它更加用户友好和交互使用JavaScript。你可以在JS中直接使用很多框架,比如jquery。现在如果你想要更多功能,比如数据库交互那么你需要php,JAVA(JSP,Servlets)或.NET(还有一些,但我只知道三个)。他们每个人都有自己的图书馆与数据库互动。

由于您对JAVA感兴趣,请浏览servlet,HTML,JS,JSP。完成后,您可以查看JSF和EJB bean。因此,如果你对JAVA有所了解,这不会花费太多时间,因为语法是唯一的区别是概念。

因此,您将拥有一个前端(HTML,JS,JSP),它将与将在Web容器中部署的后端(Servlet,数据库)进行交互。要部署,您可以使用一个可用的应用程序服务器,如apache tomcat,glass fish或websphere。要开发您的应用程序,您可以使用Eclipse作为IDE,这是我使用过的最好的IDE之一。

因此,决定您的架构和设计,将其分解为组件并首先开始编写小型应用程序。一旦您在小型应用程序开始编写应用程序方面经验丰富,您需要处理更多事情,例如加载数据库,可用性,安全性等。为此,您可以在SO https://stackoverflow.com/questions/72394/what-should-a-developer-know-before-building-a-public-web-site上引用非常着名的线程。

我希望它有所帮助。

答案 3 :(得分:0)

最接近核心Java的是servlet。没有额外的语法,非常小的库,但没有包含的功能。

答案 4 :(得分:0)

对于构建网站,主要是HTML和HTTP。所有技术(包括Enterprise Java或Server端Java)都这样做 - 了解HTTP请求并回复HTML。你提到的所有内容都以不同的复杂程度做同样的事情。从Wikipedia.org开始,了解什么技术。如果您对java完全不熟悉,请通过sun教程,编写示例程序,并熟悉Java包,JVM和类。 (这可能需要一到两周时间)。要使用java构建网站,您必须学习Java Servlets - 其他所有内容(JSP,Struts,JSF,Spring(!))都是基于它构建的。获取关于Java,Servlets的第一本书,它们将非常有用。

一切顺利。

答案 5 :(得分:0)

你总是可以在ruby中构建页面,或者能够非常快速地为你提供网站的东西,并且对于那些分析购买的项目以获取建议的AI内容使用与仅使用数据库的页面无关的内容。我不会将整个网页内容与AI计算混合在一起。您可以执行AI操作,这需要很长时间,也许应该在不同的计算机上完成,以使您的网页在正常应用程序中也能响应C ++或Java。

由于以后的使用而选择前端技术是一件非常危险的事情。使用整个JavaEE概念并从头开始学习将花费更长的时间,然后如果您在ruby或PHP中快速启动页面。然后,您可以构建第一个版本的页面,一旦您获得了其他技术的数据,就会生成用户基础开始处理AI的内容。如果您的页面存在性能问题,因为技术无法扩展,您可以随时开始将部分内容切换为更快的技术,或者只是更大的机器。在为您预期的千名用户构建子弹证明之前,让您的页面运行。

答案 6 :(得分:0)

如果您尝试从头开始构建一个网站,没有任何先验知识,那么最好的选择是使用为Web开发提供完整堆栈的Frameworks。
如果你没有设置java,你可能会开始在rails上学习ruby,这将更容易开始(如果是这样,去购买ruby on rails tutorial,它通过现代Web开发的所有必要的东西,从mvc到版本控制)。

对于java try:

这两个是完整的Web框架,即它们处理数据库,MVC(表示层),配置设置等......(我将在稍后解释)。甚至可以简化您的部署过程。

如果你要经历任何其他路线(一起使用几个框架),你可能不会在五个月内完成你正在做的事情。
要理解为什么,并清除您在问题中写下的一些内容,您需要了解现代Web开发(以及整个企业开发)由几种不同的技术组成:

  • 演示文稿:Web框架这个术语或多或少被认为是指处理Web开发这一方面的框架,I.E。如何创建网页(HTML页面)。大多数框架提供了类似MVC的方法(您可以在其他地方阅读),这就是您给出的大多数框架/技术 - JSP和Struts(使用jsp)是Web框架的示例。 Servlets是一个较低级别的API,它标准化了如何回答HTTP请求(JSP和struts位于其上)。

  • 持久性:如果你不能将数据保存到数据库,能够显示网页并不意味着蹲下这就是持久性框架所做的事情(它们简化了将数据保存到的方式)数据库)。 Hibernate是一个持久性框架。

  • 对于java,还有依赖注入,这就是Spring DI。向不熟悉java问题的人解释DI很难,所以我不会试图解释它,但它是现代java开发中非常重要的一部分。

  • 除了这些核心技术之外,您还需要学习很多项目来实际部署应用程序(除非您使用Heroku或Google App Engine这样的服务,这应该简化事情)并对其进行故障排除稍后(了解并发和HTTP如何工作)。

要解决您提出的其他技术:

  • 我从未真正触及过SEAM,所以我不确定,但它看起来像是其他框架的集合(主要是EJB3,它本身就是API和JSF的集合)。
  • Spring表示一个流行的开源组(SpringSource组),提供各种技术,但最有可能当你听到它时,它们指的是Spring的依赖注入(DI)和Spring的MVC(它是一个Web框架)。
  • JavaEE只是其他技术实现的高级API的集合(Hibernate实现了JPA,例如JavaEE的一部分)。