就目前而言,这个问题并不适合我们的Q&A格式。我们希望答案能得到事实、参考资料或专业知识的支持,但这个问题可能会引发辩论、争论、民意调查或广泛的讨论。如果你觉得这个问题可以改进,并可能重新开放,visit the help center的指导。
11年前关闭。
我想学习,至少在基本水平上,如何构建Java Web应用程序(来自.NET背景)。我希望能够建立,部署一个简单的CMS类型的应用程序从地面上。
我到底需要学什么?
Tomcat似乎是一个很好的Java Web服务器。
网络有哪些选择?我知道ORM有Hibernate。
Java有MVC吗?JSP怎么样?MVC和JSP可以结合吗?NetBeans?
也许一本书涵盖了所有这些。
9条答案
按热度按时间jutyujz01#
(2023年9月更新)
首先,“Java EE”自2019年9月以来已更名为“Jakarta EE”,从版本8开始。从历史上看,还有一个术语“J2EE”,涵盖了1.2到1.4版本。“Java EE”涵盖了版本5到8。参见Jakarta EE,维基百科上的历史。
我假设您已经熟悉客户端技术,如HTML、CSS和JS,因此我不会详细介绍。我还假设你已经熟悉基本的Java。遵循Oracle的The Java Tutorials,如果可能的话,也去学习OCP book或课程。
然后,您可以从Jakarta Pages(JSP)和Jakarta Servlet开始学习Java Web开发的基本概念。好的教程可以在Jakarta EE tutorial -> Web Profile -> Jakarta Servlets中找到。请注意,自Java EE 6,JSP was removed from the tutorial in favor of Facelets, part of Jakarta Faces (JSF)和Jakarta Pages以来基本上没有发生变化。这就是为什么你可以安全地使用相当旧的Java EE 5 tutorial。关于JSP最重要的一点是,自2003年以来,官方不鼓励在JSP文件中使用
<%
scriptlets%>
编写纯Java代码。因此,任何仍然涉及scriptlet的教程都应该跳过,因为它们肯定会带你进入学习坏习惯的螺旋式下降。在Stack Overflow上,你还可以找到关于JSP、Servlets、JSTL和EL的不错的wiki页面,在那里你可以学习基本知识并找到更多有用的链接。
是的。但它的能力有限。它基本上是一个基本的servlet容器,只实现了庞大的JakartaEE API的Pages/Servlet部分。如果你想使用EJB或JPA,那么你会选择另一个,例如。WildFly、TomEE、Payara、Liberty、WebLogic等。否则,您必须使用Spring而不是Jakarta EE。也就是说,在不修改核心引擎的情况下,不可能将EJB安装在一个基本的servlet容器中,在Tomcat的情况下,您基本上是在重新发明TomEE。另请参阅What exactly is Java EE?,How to properly configure Jakarta EE libraries in Maven pom.xml for Tomcat?、How to properly install and configure JSF libraries via Maven?和How to install and use CDI on Tomcat?
以前,在J2EE时代,Jakarta Persistence(JPA)还不存在,EJB 2也很糟糕,Hibernate是一个独立的框架,经常与Spring结合使用来取代EJB。自从Java EE 5(2006)引入JPA以来,Hibernate已经成为JPA实现。你可以在Jakarta EE tutorial -> Web Profile -> Jakarta Persistence上学习JPA。此外,Jakarta Enterprise Beans (EJB3)基于Spring的经验教训进行了很大的改进。参见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就很多了。Jakarta EE的MVC框架称为Jakarta Faces (JSF)。在Java EE 6之前,它通常运行在Jakarta Pages(JSP)上,这是一种相当传统的视图技术。JSP被Facelets取代。您可以在Jakarta EE tutorial -> Web Profile -> Jakarta Faces上学习JSF。顺便说一下,你也可以在Tomcat上使用JSF,你只需要单独安装它。安装说明可以在Mojarra homepage上找到。WildFly、TomEE、Payara、Liberty、Java等作为一个完整的Jakarta EE实现已经提供了JSF(以及CDI、BV、JSONP、JAX-RS、EJB、JPA等),所以你不需要单独安装它。参见How to properly install and configure JSF libraries via Maven?
”也许一本书,涵盖了所有这些?*
有几本书。我建议从一本书focused on Jakarta EE in general,一本书more focused on Jakarta Faces和一本书more focused on Jakarta Persistence开始。确保你选择了最新的书涵盖的主题。首先调查最新的可用版本,然后确保所选的书涵盖了这一点。因此,绝对不要选择Java EE 5或JSF 1.0左右的旧书,因为目前已经有Jakarta EE 8和JSF 2.3可用。
最后但并非最不重要的是,请忽略那些由业余爱好者维护的主要关注广告收入而不是教学的代码片段抓取网站,如roseindia,tutorialspoint,javabeat,journaldev,javatpoint,codejava等。它们很容易通过令人不安的广告链接/横幅和包含 scriptlets 的JSP代码片段识别出来。
参见:
tpxzln5u2#
我到底需要学什么?
至少,
Tomcat似乎是一个很好的Java Web服务器。
这是“体面”。如果您对EJB不感兴趣,那么您可能不需要学习其他任何东西。Glassfish 3最近似乎很酷,但我还没有玩过它。请注意,它比Web服务器“更”。它是一个servlet容器(意味着它可以使用servlet技术运行应用程序)。
网络有哪些选择?
关于无数不同的框架。真的,选择一个真的很“难”。这是非常诱人的尝试,但最终不可行。
我知道有一个ORM的休眠。
我有点反对ORM,但如果你需要一个“完整的”ORM,Hibernate是你需要的。您也可以尝试“部分”ORM,例如Spring的JDBC支持或iBatis。
Java有MVC吗?JSP怎么样?MVC和JSP可以结合吗?豆子?
是的,大多数Java Web框架都支持MVC。Spring的MVC很好,但我不能推荐其他任何东西(特别是,不是Struts 1!JSP只是一个HTML(或XML)模板引擎。老式的JSP,嵌入Java代码是不酷的;带有标记文件和库的现代JSP非常好。
我认为大多数框架都允许您使用JSP来呈现V; Spring的MVC和Struts都可以。有些会让你使用其他东西(速度,自由标记,等等)。
Bean只是对象的一种约定。基本上,这意味着你正在使用getter和setter(或一些替代方法),并且你遵循一些规则。这些应该允许您的对象由某些工具操作。典型的例子是GUI,有些工具允许您构建GUI组件来编辑任意bean(即他们将呈现表单以编辑其字段)。
7jmck4yq3#
你需要HTML、CSS和JavaScript --所有这些都是Web开发的常用工具。
Tomcat确实有一个内置的Web服务器,但它是一个servlet/JSP引擎。Apache是纯Web服务器。
您需要学习JSP,这是一种用于生成servlet的模板语言,这些servlet生成HTML输出。您可能希望使用JSTL而不是scriptlet编写它们。
如果你在做CRUD应用程序,你需要学习JDBC和关系数据库。在尝试Hibernate或任何其他ORM之前,您应该这样做,因为这是它们构建的基础。
JavaBean只是Java对象的标准。
如果你愿意,我推荐Spring框架。
dvtswwa34#
Java有MVC吗?
Java有不同的框架,如 * Struts2,Spring MVC *
JSP怎么样?
MVC和JSP可以结合吗?
我把MVC作为前面提到的框架。所有框架都支持JSP,但您需要在相应的框架文档中检查对其他模板库的支持。AFAIK Struts2 对Freemarker有很好的支持。
豆子?
我对此了解不多。但是使用bean,我们可以直接将表单数据Map到数据库。
也许一本书涵盖了所有这些。
每个框架都有自己的书。对于 Struts2 -Struts 2 in Action
开始使用Java进行Web开发-
http://www.amazon.com/SCWCD-Exam-Study-Kit-Certification/dp/1930110596
xienkqul5#
我认为大多数传统的Java Web开发选项都是非常重量级的,并且有一些很好的替代方案:
我相信还有其他的,但这些是我能想到的。
祝你好运,玩得开心!
dohp0rv56#
我是一名PHP/C编程人员,我发现groovy使我能够在不学习Java编程中固有的所有类和范式的情况下跳入Java。Groovy使我能够快速提高工作效率,同时花时间学习更多关于java和所有可用的工具/框架/库。
smtd7mpg7#
如果你不习惯使用html,css,xml,JavaScript等。
尝试Vaadin框架,它有很好的文档记录,易于学习,并能够以简单的方式制作好看的UI。(只需要写Java代码,当然你需要一些servlet服务器,Tomcat或Jetty就可以了)
pobjuy328#
你最好先学习java,然后再学习Servlet和JSP,然后再学习MVC,你可以去学习Struts或Spring或任何其他支持java/java的框架。
hc2pp10m9#
由于你是Java新手,我强烈建议你先学习基础语言。这将帮助你,无论你选择什么技术来做你的Web应用程序。
一个很好的在线资源是Sun Java http://java.sun.com/docs/books/tutorial/