我想学习,至少在基本水平上,如何构建Java web应用程序(来自。net背景)。我希望能够构建,部署一个简单的CMS类型的应用程序从地面上。
我到底需要学什么?
Tomcat似乎是一个很好的Java web服务器。
网络有什么选择?我知道ORM有Hibernate。
Java有MVC吗?JSP呢?MVC和JSP可以结合在一起吗?NetBeans吗?
也许是一本涵盖所有这些内容的书?
我想学习,至少在基本水平上,如何构建Java web应用程序(来自。net背景)。我希望能够构建,部署一个简单的CMS类型的应用程序从地面上。
我到底需要学什么?
Tomcat似乎是一个很好的Java web服务器。
网络有什么选择?我知道ORM有Hibernate。
Java有MVC吗?JSP呢?MVC和JSP可以结合在一起吗?NetBeans吗?
也许是一本涵盖所有这些内容的书?
我是一名PHP/C编程人员,我发现groovy使我能够在不学习Java编程中固有的所有类和范式的情况下跳入Java。Groovy使我能够快速提高效率,同时花时间学习更多关于java和所有可用的工具/框架/库的知识。
你需要HTML, CSS和JavaScript——所有这些web开发中常见的东西。
Tomcat确实内置了一个web服务器,但它是一个servlet/JSP引擎。Apache是纯web服务器。
您需要学习JSP,这是一种用于生成生成HTML输出的servlet的模板语言。您将希望使用JSTL而不是scriptlet来编写它们。
如果您正在开发CRUD应用程序,则需要学习JDBC和关系数据库。您应该在尝试Hibernate或任何其他ORM之前这样做,因为这是构建它们的基础。
javabean只是Java对象的标准。
如果您已经准备好了,我建议使用Spring框架。
(2021年4月更新)
首先,“Java EE”自2019年9月起更名为“Jakarta EE”,从版本8开始。从历史上看,还有一个术语“J2EE”涵盖了1.2到1.4版本。“Java EE”涵盖了版本5到8。参见Java平台,企业版,维基百科上的历史。
我到底需要学什么?
我假设你已经熟悉了HTML、CSS和JS等客户端技术,所以我就不详细讲了。我还假设您已经熟悉基本的Java。参考Oracle的Java教程,如果可能的话,也买一本OCP的书或课程。
Then you can start with JSP/Servlet to learn the basic concepts of Java web development. Good tutorial can be found in Jakarta EE tutorial chapter 18 'Jakarta Servlet Technology'. Note that since Java EE 6, JSP is removed from the tutorial in favor of JSF and that JSP has basically not changed since then. That's why you could safely use the fairly old Java EE 5 tutorial for this. Most important thing with regard to JSP is the fact that writing plain Java code in JSP files using <% scriptlets %> is officially discouraged since 2003. See also How can I avoid Java code in JSP files, using JSP 2? So any tutorials which still cover scriptlets should be skipped as they will definitely take you into a downward spiral of learning bad practices.
在Stack Overflow上,您还可以找到关于JSP、servlet、JSTL和EL的wiki页面,在那里您可以了解基本知识并找到更多有用的链接。
Tomcat似乎是一个很好的Java web服务器。
It is. It is however limited in capabilities. It's basically a barebones servlet container, implementing only the JSP/Servlet parts of the huge Java EE API. If you ever want to go EJB or JPA, then you'd like to pick another, e.g. WildFly, TomEE, Payara, Liberty, WebLogic, etc. Otherwise you have to use Spring instead of Java EE. It's namely not possible to install EJB in a barebones servlet container without modifying the core engine, you'd in case of Tomcat basically be reinventing TomEE. See also What exactly is Java EE?, How to properly install and configure JSF libraries via Maven? and How to install and use CDI on Tomcat?
我知道ORM有Hibernate。
以前,在J2EE时代,JPA还不存在,EJB2很糟糕,Hibernate是一个独立的框架,经常与Spring结合使用来取代EJB。自从在Java EE 5(2006)中引入JPA以来,Hibernate已经成为JPA实现。您可以在Jakarta EE教程第VIII部分学习JPA。此外,EJB3在Spring的经验教训的基础上得到了很大的改进。什么时候使用Spring或EJB3或一起使用它们是必要的或方便的?
Java有MVC吗?JSP呢?MVC和JSP可以结合在一起吗?javabean吗?
You can, but that's a lot of reinvention of the wheel when it comes to tying the model with the view (conversion, validation, change listeners, etc). Jakarta EE's MVC framework is called JSF. Prior to Java EE 6 it used to run on JSP, which is a fairly legacy view technology. JSP is been replaced by Facelets. You can learn JSF at Jakarta EE tutorial part III chapters 7 - 17. You can by the way also use JSF on Tomcat, you only have to install it separately. Installation instructions can be found at Mojarra homepage. WildFly, TomEE, Payara, Liberty, WebLogic, etc as being a complete Jakarta EE implementation already provide JSF (and CDI, BV, JSONP, JAX-RS, EJB, JPA, etc) out the box, so you don't need to install it separately. See also How to properly install and configure JSF libraries via Maven?
也许是一本涵盖所有这些内容的书?
有几本书。我建议从一本一般关注Jakarta EE的书开始,一本更关注JSF的书,一本更关注JPA的书。确保你选择的是涉及该主题的最新书籍。首先调查最新的可用版本,然后确保所选的书涵盖了它。因此,在目前已经有Jakarta EE 8和JSF 2.3可用的情况下,绝对不要选择Java EE 5或JSF 1.0之类的旧书。
最后但并非最不重要的是,请忽略由业余人士维护的代码片段抓取网站,这些网站主要关注广告收入而不是教学,如roseindia、tutorialspoint、javabeat、journaldev、javatpoint、codejava等。它们很容易通过干扰广告链接/横幅和包含scriptlet的JSP代码片段来识别。
参见:
JSF、Servlet和JSP之间的区别是什么? servlet是如何工作的?实例化、会话、共享变量和多线程 当UI可以通过jQuery和AngularJS等JavaScript库实现时,JSF的需求是什么
我到底需要学什么?
最低限度,
Java语言 Java API,包括用于数据库访问的JDBC 一个IDE,或者一个文本编辑器+ Ant Java EE,基本上是servlet和JSP servlet容器(比如Tomcat)
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)模板引擎。带有嵌入式Java代码的老式JSP并不酷;带有标记文件和库的现代JSP非常好。
我想大多数框架都允许您使用JSP来呈现Vs;Spring的MVC和Struts就是这样。有些还会让你使用其他东西(Velocity, Freemarker等)。
bean只是对象的一种约定。基本上,这意味着您正在使用getter和setter(或一些替代方法),并且遵循一些规则。这些可以让你的对象被特定的工具操纵。典型的例子是GUI,一些工具会让你构建GUI组件来编辑任意的bean(也就是说,它们会呈现一个表单来编辑它的字段)。
既然你是Java的新手,我强烈建议你先学习基本语言。无论您选择使用何种技术来开发web应用程序,这都将对您有所帮助。
一个很好的在线资源是Sun Java教程- http://java.sun.com/docs/books/tutorial/
java有MVC吗?
Java有不同的框架,比如Struts2, Spring MVC
JSP呢?
JSP是模板库。你可以尝试一些像FreeMarker和Velocity这样的替代品。AFAIK Freemarker是一个新兴的模板库。它比JSP轻量级。查看这个FreeMarker: JSP - JavaWorld的开放替代方案
MVC和JSP可以结合在一起吗?
我把MVC作为前面提到的一个框架。所有框架都支持JSP,但您需要在各自的框架文档中检查对其他模板库的支持。AFAIK Struts2对Freemarker有很好的支持。
豆?
我对它了解不多。但是使用bean,我们可以直接将表单数据映射到数据库。
也许是一本涵盖所有这些内容的书?
每个框架都有自己的书籍。Struts2 - Struts2在行动
字符串MVC——看看这些关于Spring和Spring MVC的推荐书籍的问题。Spring框架和Spring书籍的书籍建议:选择哪一本
Fremarker有一个非常好的文档——FreeMarker手册
对于开始使用Java进行web开发
http://www.amazon.com/SCWCD-Exam-Study-Kit-Certification/dp/1930110596
我认为大多数传统的Java web开发选项都是非常重量级的,有一些不错的替代方案:
Play is an MVC framework which is focused on being lightweight, straightforward, and enabling rapid development — while sticking with pure Java, as opposed to a more dynamic JVM-based language. It's fairly new but already impressive, and a good community has built up around it quickly. Grails is an MVC framework, inspired by Ruby on Rails, which is written in, and uses, Groovy, a Java-based scripting language. Grails is mature, robust, and widely respected, with a strong community. Groovy is basically a superset of Java, with better syntax and some great features such as closures, so learning it is a great way to learn Java. If you need/want to build RESTful web sites/services/applications, Restlet is a fantastic framework — I'm a big fan. It's simple, straightforward, and yet flexible. Great community too. Google's App Engine is an interesting option as well. It's hosted, which may or may not be of interest, but it has a fairly simple API, and a good SDK.
我相信还有其他的,但是这些是我能想到的。
祝你好运,玩得开心!
如果你不习惯使用html, css, xml, javascript等。
尝试Vaadin框架,它有良好的文档,易于学习,并能够以简单的方式制作好看的UI。 (只需编写Java代码,当然你需要一些servlet服务器,Tomcat或Jetty就可以了)