Java EE web开发,我从哪里开始,我需要什么技能?
至less在基础层面上,我想学习如何构buildJava Web应用程序(来自.NET背景)。 我希望能够从头build立,部署一个简单的CMStypes的应用程序。
我究竟需要学什么?
Tomcat似乎是一个很好的Java Web服务器。
networking有哪些select? 我知道有一个ORM的Hibernate 。
Java有MVC吗? 那JSP呢? MVC和JSP可以在一起吗? NetBeans ?
也许是一本涵盖所有这些的书?
(2017年11月更新)
我究竟需要学什么?
我假设你已经熟悉HTML , CSS和JS等客户端技术,所以我不会详细介绍。 我也假设你已经熟悉基本的Java。 遵循Oracle的Java教程 ,如果可能的话,去获得一本OCA书籍或课程。
然后,您可以从JSP / Servlet开始学习Java Web开发的基本概念。 好的教程可以在Oracle的Java EE 5教程第二部分第三章到第八章以及Coreservlets.com( 初级中级和高级,也是JDBC )中find。 请注意,自从Java EE 6以来, JSP从Java EE教程中被移除,转而使用JSF,并且从那时起JSP基本上没有改变。 这就是为什么你可以安全地使用相当古老的Java EE 5教程。 关于JSP的最重要的事情是,从2003年起,使用<%
scriptlets %>
在JSP文件中编写纯Java代码的做法从2003年开始就被禁止。另请参见如何避免JSP文件中的Java代码? 所以任何仍然包含scriptlet的教程都应该被跳过。
我们也有很好的关于JSP , Servlets , JSTL和EL的维基页面,您可以在这里学习基本知识并find更多有用的链接。
Tomcat似乎是一个很好的Java Web服务器。
它是。 但是它的能力有限。 它基本上是一个准系统servlet容器,只实现了巨大的Java EE API的JSP / Servlet部分。 如果你想要去EJB或JPA,那么你想select另一个,例如WildFly , TomEE , Payara , Liberty , WebLogic等等。否则,你必须使用Spring而不是Java EE。 不用修改核心引擎就可以在tomcat中安装EJB,你基本上就是在重新创buildTomEE。 另请参见Java EE究竟是什么?
我知道有一个ORM的Hibernate。
以前,在J2EE时代,当JPA不存在,EJB2非常糟糕时,Hibernate是一个独立的框架,经常与Spring结合使用来代替EJB。 自Java EE 5引入JPA以来,Hibernate已经成为JPA的一个实现。 您可以在Java EE教程第八部分学习JPA。 另外,基于Spring的经验教训,EJB3得到了很大的改进。 另请参见何时使用Spring或EJB3或全部使用它们是必要的还是方便的?
Java有MVC吗? 那JSP呢? MVC和JSP可以在一起吗? JavaBeans的?
你可以 ,但是当把模型与视图绑定(转换,validation,改变监听器等等)时,对轮子进行了大量的改造 。 Java EE的MVC框架被称为JSF 。 在Java EE 6之前,它曾经运行在JSP上,这是一种相当传统的视图技术。 JSP被Facelets取代。 您可以在Java EE教程第三部分第7 – 17章学习JSF。 你也可以顺便在Tomcat上使用JSF,你只需要单独安装它。 只需从JSF主页下载javax.faces.jar
并将其放置在/WEB-INF/lib
。 WildFly,TomEE,Payara,Liberty,WebLogic等是一个完整的Java EE实现,已经包含JSF(以及EJB和JPA等)。 另请参见如何通过Maven正确安装和configurationJSF库?
也许是一本涵盖所有这些的书?
有几本书。 我build议先写一本关于Java EE的书,一本关注JSF的书,一本关于JPA的书。 确保你select了最新的这本书。 因此,对于Java EE 5或JSF 1.0来说,这不是一本旧书。
最后但并非最不重要的,请忽略业余爱好者维护的代码片段抓取网站,主要关注广告收入,而不是教学,如roseindia,tutorialspoint,javabeat,journaldev,javatpoint,codejava等。它们很容易被干扰广告链接/横幅。
也可以看看:
- JSF,Servlet和JSP有什么区别?
- servlets如何工作? 实例化,会话,共享variables和multithreading
- 当用户界面可以通过CSS,HTML,JavaScript,jQuery实现时,JSF有什么需要?
我究竟需要学什么?
微创,
- Java的语言
- Java的API,包括用于数据库访问的JDBC
- 一个IDE或者一个文本编辑器+ Ant
- Java EE,基本上,servlet和JSP
- 一个servlet容器(比如Tomcat)
Tomcat似乎是一个很好的Java Web服务器。
这是“体面的”。 如果你不在EJB中,可能你不需要学习任何东西。 Glassfish 3最近似乎很酷,但我还没有玩过很多。 请注意,它比networking服务器“更多”。 它是一个servlet容器(意味着它可以使用servlet技术运行应用程序)。
networking有哪些select?
关于几十个不同的框架。 真的,选一个真的很“难”。 尝试这一切都是非常诱人的,但最终是不可行的。
我知道有一个ORMhibernate。
我有点反ORM,但如果你需要一个“完整的”ORM,Hibernate是你需要的。 你也可以尝试“partial”ORM,比如Spring的JDBC支持或者iBatis。
Java有MVC吗? 那JSP呢? 可以MVC和JSP在一起吗? 豆?
是的,大多数Java Web框架都是MVC。 Spring的MVC很好,但我不能推荐其他东西(尤其是Struts 1!)。 JSP只是一个HTML(或XML)模板引擎。 带有embedded式Java代码的旧式JSP非常酷; 具有标签文件和库的现代JSP非常好。
我想大多数框架会让你使用JSP来呈现你的V; Spring的MVC和Struts做到了。 有些会让你使用别的东西(速度,Freemarker等)。
豆只是一个对象的约定。 基本上,这意味着你正在使用getter和setter(或者一些替代方法),你正在遵循一些规则。 这些应该让你的对象被某些工具操纵。 典型的例子是一个GUI,一些工具可以让你构buildGUI组件来编辑任意的bean(即它们将渲染一个窗体来编辑它的域)。
您需要HTML,CSS和JavaScript – 所有常见的Web开发嫌疑犯。
Tomcat内置了一个Web服务器,但是它是一个servlet / JSP引擎 。 Apache是纯粹的Web服务器。
您需要学习JSP,这是生成生成HTML输出的servlet的模板语言。 你会想要使用JSTL而不是脚本来编写它们。
如果您正在执行CRUD应用程序,则需要学习JDBC和关系数据库。 在尝试Hibernate或任何其他ORM之前,您应该这样做,因为它是构build它们的基础。
JavaBeans只是Java对象的标准。
如果你喜欢,我会推荐Spring框架。
Java有MVC吗?
Java有不同的框架,比如Struts2 , Spring MVC
那JSP呢?
JSP是模板库。 你可以试试像FreeMarker和Velocity这样的替代scheme。 AFAIK Freemarker是一个新兴的模板库。 它比JSP轻。 检查这个FreeMarker : 一个开放的替代JSP – JavaWorld
可以MVC和JSP在一起吗?
我把MVC作为前面提到的框架。 所有框架都支持JSP,但是您需要在各自的框架文档中检查对其他模板库的支持。 AFAIK Struts2对Freemarker有很好的支持。
豆?
我不太了解。 但是使用bean,我们可以直接将表单数据映射到数据库。
也许是一本涵盖所有这些的书?
每个框架都有自己的书。 对于Struts2 – Struts 2的行动
stringMVC – 看看问题什么是春季和春季MVC最好的书?
Fremarker有一个非常好的文档 – FreeMarker手册
为了开始在Java中的Web开发 –
http://www.amazon.com/SCWCD-Exam-Study-Kit-Certification/dp/1930110596
我认为大部分传统的Java Web开发选项是相当重的,还有一些很好的select:
-
Play是一个MVC框架,专注于轻量级,简单,快速开发 – 同时坚持使用纯Java,而不是更加dynamic的基于JVM的语言。 这是相当新的,但已经令人印象深刻,一个良好的社区已经迅速build立起来。
-
Grails是一个MVC框架,受Ruby on Rails的启发,它是用Java编写的脚本语言Groovy编写的。 Grails成熟,强大,受到广泛的尊重,拥有强大的社区。 Groovy基本上是Java的超集,具有更好的语法和闭包等一些很棒的特性,所以学习它是学习Java的好方法。
-
如果您需要/想要构buildREST风格的网站/服务/应用程序, Restlet是一个很棒的框架 – 我是一个很棒的粉丝。 这很简单,直接,而且很灵活。 伟大的社区也是。
-
Google的App Engine也是一个有趣的选项。 它的托pipe,这可能会或可能不感兴趣,但它有一个相当简单的API和一个很好的SDK。
我确定还有其他人,但这些是我能想到的。
祝好运并玩得开心点!
我是一个PHP / C编程,我发现groovy使我可以跳到Java而不学习Java编程中固有的所有类和范例。 Groovy使我能够快速提高工作效率,同时花时间学习更多关于java和所有可用的工具/框架/库的知识。
如果你不习惯使用html,css,xml,javascript等。
尝试Vaadin框架,它是有据可查的,易于学习,并使简单的方式,使良好的外观用户界面。 (只需编写Java代码,当然你需要一些servlet服务器,Tomcat或者Jetty都可以)
更好的学习java.then学习Servlets和JSP。然后去MVC去Struts或者Spring或者任何其他支持java / java的框架。
由于您是Java新手,我强烈build议您先学习基本语言。 无论您select哪种技术来执行您的Web应用程序,这将帮助您。
一个很好的在线资源是Sun Java教程 – http://java.sun.com/docs/books/tutorial/