我想学习,至少在基础层面,如何构建Java Web应用程序(来自.NET背景)。我希望能够从头开始构建,部署一个简单的CMS类型的应用程序。
我到底需要学习什么?
Tomcat似乎是一个很好的Java Web服务器。
网络有哪些选项?我知道ORM有Hibernate。
Java有MVC吗?那么JSP呢? MVC和JSP可以在一起吗? NetBeans?
也许是一本涵盖所有这些内容的书?
答案 0 :(得分:248)
(2018年9月更新)
我到底需要学习什么?
我认为您已熟悉HTML,CSS和JS等客户端技术,因此我不会详细介绍。我还假设你已经熟悉了基本的Java。关注Oracle的The Java Tutorials,如果可能的话,也可以获得OCA book或课程。
然后,您可以从JSP / Servlet开始学习Java Web开发的基本概念。可以在Oracle Java EE 5 tutorial part II chapters 3 - 8和Coreservlets.com(Beginner-Intermediate和Advanced, also JDBC)中找到好的教程。请注意,自Java EE 6起,JSP is removed from the Java EE tutorial in favor of JSF和那个JSP从那时起基本上没有改变。这就是为什么你可以安全地使用相当旧的Java EE 5教程。关于JSP最重要的事情是,自2003年以来,正式使用<%
scriptlet %>
在JSP文件中编写普通Java代码这一事实。另见How to avoid Java code in JSP files?所以任何仍然涵盖scriptlet的教程应该被忽略,因为它们肯定会让你陷入学习不良行为的恶性循环中。
我们还有关于JSP,Servlets,JSTL和EL的精彩维基页面,您可以在其中学习基本知识并找到更多有用的链接。
Tomcat似乎是一个很好的Java Web服务器。
是的。但是它的能力有限。它基本上是一个准系统servlet容器,只实现巨大的Java EE API的JSP / Servlet部分。如果你想进入EJB或JPA,那么你想选择另一个,例如WildFly,TomEE,Payara,Liberty,WebLogic等。否则,您必须使用Spring而不是Java EE。在没有修改核心引擎的情况下,无法在完整的servlet容器中安装EJB,如果Tomcat基本上重新发明了TomEE。另请参阅What exactly is Java EE?
我知道ORM有Hibernate。
以前,在J2EE时代,当JPA不存在且EJB2很糟糕时,Hibernate是一个独立的框架,经常与Spring结合使用来取代EJB。自从Java EE 5(2006)中引入JPA以来,Hibernate已成为JPA实现。您可以在Java EE tutorial part VIII学习JPA。此外,根据从Spring学到的经验教训,EJB3得到了很大的改进。另请参阅When is it necessary or convenient to use Spring or EJB3 or all of them together?
Java有MVC吗? JSP怎么样? MVC和JSP可以在一起吗?的JavaBeans?
You can,但在使用视图(转换,验证,更改侦听器等)绑定模型时,这是很多reinvention of the wheel。 Java EE的MVC框架称为JSF。在Java EE 6之前,它曾经在JSP上运行,这是一种相当传统的视图技术。 JSP已被Facelets取代。您可以在Java EE tutorial part III chapters 7 - 17学习JSF。顺便说一下,你也可以在Tomcat上使用JSF,你只需要单独安装它。安装说明可在Mojarra homepage找到。 WildFly,TomEE,Payara,Liberty,WebLogic等作为一个完整的Java EE实现已经开箱即可提供JSF(以及CDI,BV,JSONP,JAX-RS,EJB,JPA等),因此您不需要单独安装。另请参阅How to properly install and configure JSF libraries via Maven?
也许是一本涵盖所有这些内容的书?
有几本书。我建议您先阅读一本书focused on Java EE in general,一本书more focused on JSF和一本书more focused on JPA。确保您选择涵盖主题的最新图书。因此,这不是Java EE 5或JSF 1.0左右的旧书。
最后但并非最不重要的是,请忽略由业余爱好者维护的代码片段抓取网站,主要关注广告收入而不是教学,例如roseindia,tutorialspoint,javabeat,journaldev,javatpoint,codejava等。它们很容易被干扰识别广告链接/横幅和包含 scriptlet的JSP代码片段。
答案 1 :(得分:27)
我到底需要学习什么?
最低限度地,
Tomcat似乎是一个很好的Java Web服务器。
这是“体面的”。如果您不使用EJB,可能您不需要学习任何其他内容。 Glassfish 3最近看起来很酷,但我还没玩过它。请注意,它比Web服务器“更多”。它是一个servlet容器(意味着它可以使用servlet技术运行应用程序)。
网络有哪些选项?
关于众多不同的框架。真的,选择一个真的很“难”。尝试所有这些是非常诱人的,但最终是不可行的。
我知道ORM有hibernate。
我有点反ORM,但如果你需要一个“完整”的ORM,你就需要Hibernate。您还可以尝试“部分”ORM,例如Spring的JDBC支持或iBatis。
java有MVC吗? JSP怎么样? MVC和JSP可以在一起吗?豆?
是的,大多数Java Web框架都是MVC。 Spring的MVC很不错,但我不能推荐别的东西(尤其不是Struts 1!)。 JSP只是一个HTML(或XML)模板引擎。具有嵌入式Java代码的老派JSP是不酷的;带有标记文件和库的现代JSP非常好。
我想大多数框架都会让你使用JSP来渲染你的Vs; Spring的MVC和Struts做到了。有些人会让你使用别的东西(Velocity,Freemarker等)。
Beans只是对象的约定。基本上,这意味着您正在使用getter和setter(或一些替代方案)并且您遵循一些规则。这些应该让某些工具操纵您的对象。典型的例子是GUI,一些工具可以让你构建GUI组件来编辑任意bean(即它们将呈现一个表单来编辑它的字段)。
答案 2 :(得分:15)
您需要HTML,CSS和JavaScript - 所有常见的Web开发嫌疑人。
Tomcat内置了一个Web服务器,但是它是一个servlet / JSP引擎。 Apache是纯Web服务器。
您需要学习JSP,它是一种用于生成生成HTML输出的servlet的模板语言。你想要使用JSTL编写它们,而不是使用scriptlet。
如果您正在进行CRUD应用程序,则需要学习JDBC和关系数据库。你应该在尝试Hibernate或任何其他ORM之前这样做,因为它是它们构建的基础。
JavaBeans只是Java对象的标准。
如果您愿意,我会推荐Spring框架。
答案 3 :(得分:12)
java有MVC吗?
Java有不同的框架,例如 Struts2 , Spring MVC
关于JSP怎么样?
JSP 是模板库。您可能会尝试使用 FreeMarker 和 Velocity 。 AFAIK Freemarker 是一个新兴的好模板库。它比 JSP 轻量级。检查此 FreeMarker :An open alternative to JSP - JavaWorld
MVC和JSP可以在一起吗?
我将MVC作为前面提到的框架。所有框架都支持JSP,但您需要在相应的框架文档中检查对其他模板库的支持。 AFAIK Struts2 对Freemarker有很好的支持。
豆?
我对此并不了解。但是使用bean我们可以直接将表单数据映射到数据库。
也许是一本涵盖所有这些内容的书?
每个框架都有自己的书。对于 Struts2 - Struts 2 in Action
String MVC - 看看为Spring和Spring MVC推荐书籍的这些问题。 Book suggestion for Spring framework和Spring Books: Which one to choose
Fremarker 有一个非常好的文档 - FreeMarker Manual
开始使用Java进行Web开发 -
http://www.amazon.com/SCWCD-Exam-Study-Kit-Certification/dp/1930110596
答案 4 :(得分:4)
我认为大多数传统的Java Web开发选项都非常重,并且有一些很好的选择:
Play是一个MVC框架,它专注于轻量级,简单易用,并支持快速开发 - 同时坚持使用纯Java,而不是基于JVM的更动态语言。这是相当新的,但已经令人印象深刻,一个良好的社区已经迅速建立起来。
Grails是一个受Ruby on Rails启发的MVC框架,它是用来编写的,并使用Groovy,一种基于Java的脚本语言。 Grails成熟,强大,受到广泛尊重,拥有强大的社区。 Groovy基本上是Java的超集,具有更好的语法和一些很棒的功能,比如闭包,所以学习它是学习Java的好方法。
如果您需要/想要构建RESTful网站/服务/应用程序,Restlet是一个很棒的框架 - 我是一个忠实粉丝。它简单,直接,而且灵活。很棒的社区。 p>
Google's App Engine也是一个有趣的选择。它是托管的,可能有兴趣也可能没有,但它有一个相当简单的API和一个好的SDK。
我确信还有其他人,但这些是我能想到的。
祝你好运,玩得开心!答案 5 :(得分:3)
我是一个PHP / C编程,我发现groovy使我能够在不学习java编程中固有的所有类和范例的情况下跳转到Java。 Groovy使我能够快速高效地工作,同时花时间了解更多关于java和所有可用的工具/框架/库。
答案 6 :(得分:3)
如果你不习惯使用html,css,xml,javascript等..
尝试Vaadin框架,它有详细记录,易于学习,并且能够以简单的方式制作外观漂亮的UI。 (只需编写Java代码,当然你需要一些servlet服务器,Tomcat或Jetty就可以了)
答案 7 :(得分:2)
最好学习java。然后学习Servlet和JSP。然后去MVC,你去Struts或Spring或任何其他支持java / java的框架。
答案 8 :(得分:0)
由于您不熟悉Java,我强烈建议您先学习基础语言。无论您选择使用何种技术来执行Web应用程序,这都将对您有所帮助。
良好的在线资源是Sun Java教程 - http://java.sun.com/docs/books/tutorial/