我想学习,至少在基础层面,如何构建Java Web应用程序(来自.NET背景).我希望能够从头开始构建,部署一个简单的CMS类型应用程序.
我究竟需要学习什么?
Tomcat似乎是一个很好的Java Web服务器.
网络有哪些选择?我知道有一个ORM的Hibernate.
Java有MVC吗?JSP怎么样?MVC和JSP可以在一起吗?NetBeans?
也许这本书涵盖了所有这些?
(2018年9月更新)
我究竟需要学习什么?
我假设您已经熟悉HTML,CSS和JS等客户端技术,所以我不会详细介绍.我还假设你已经熟悉了基本的Java.遵循Oracle的The Java Tutorials,如果可能的话,也可以获得OCA书籍或课程.
然后,您可以从JSP/Servlet开始学习Java Web开发的基本概念.可以在Oracle的Java EE 5教程第二部分第3章和第8章以及Coreservlets.com(初级 - 中级和高级,也是JDBC)中找到好的教程.请注意,从Java EE 6开始,JSP从Java EE教程中删除,转而使用JSF,从那时起JSP基本上没有改变.这就是为什么你可以安全地使用相当旧的Java EE 5教程.关于JSP最重要的事情是,自2003年以来,官方不鼓励使用<%
scriptlet 在JSP文件中编写普通Java代码%>
.另请参阅如何避免JSP文件中的Java代码?因此,任何仍然包含scriptlet的教程都应该被忽略,因为它们肯定会让你陷入学习不良实践的恶性循环中.
我们还有关于JSP,Servlets,JSTL和EL的不错的wiki页面,您可以在其中学习基本知识并找到更多有用的链接.
Tomcat似乎是一个很好的Java Web服务器.
它是.但是它的能力有限.它基本上是一个准系统servlet容器,只实现巨大的Java EE API的JSP/Servlet部分.如果你想进入EJB或JPA,那么你想选择另一个,例如WildFly,TomEE,Payara,Liberty,WebLogic等.否则你必须使用Spring而不是Java EE.在没有修改核心引擎的情况下,无法在完整的servlet容器中安装EJB,如果Tomcat基本上重新发明了TomEE.另请参阅Java EE究竟是什么?
我知道有一个ORM的Hibernate.
以前,在J2EE时代,当JPA不存在且EJB2很糟糕时,Hibernate是一个独立的框架,经常与Spring结合使用以取代EJB.自从Java EE 5(2006)中引入JPA以来,Hibernate已成为JPA实现.您可以在Java EE第八部分学习JPA .此外,根据从Spring学到的经验教训,EJB3得到了很大的改进.另请参见何时将Spring或EJB3或所有这些一起使用或一起使用是否必要或方便?
Java有MVC吗?JSP怎么样?MVC和JSP可以在一起吗?JavaBeans的?
你可以,但是当涉及到模型与视图(转换,验证,更改侦听器等)绑定时,这是轮子的重新发明.Java EE的MVC框架称为JSF.在Java EE 6之前,它曾经在JSP上运行,这是一种相当传统的视图技术.JSP已被Facelets取代.您可以在Java EE教程第三部分第7-17章学习JSF .顺便说一下,你也可以在Tomcat上使用JSF,你只需要单独安装它.安装说明可在Mojarra主页上找到.WildFly,TomEE,Payara,Liberty,WebLogic等作为一个完整的Java EE实现已经开箱即可提供JSF(以及CDI,BV,JSONP,JAX-RS,EJB,JPA等),因此您不需要单独安装.另请参见如何通过Maven正确安装和配置JSF库?
也许这本书涵盖了所有这些?
有几本书.我建议首先阅读一本专注于Java EE的书,一本更侧重于JSF的书,以及一本更侧重于JPA的书.确保您选择涵盖主题的最新书籍.因此,不是Java EE 5或JSF 1.0左右的旧书.
最后但并非最不重要的是,请忽略由业余爱好者维护的代码片段抓取网站,主要关注广告收入而不是教学,例如roseindia,tutorialspoint,javabeat,journaldev,javatpoint,codejava等.它们很容易通过令人不安的广告链接识别/包含scriptlet的横幅和JSP代码片段.
JSF,Servlet和JSP有什么区别?
servlet如何工作?实例化,会话,共享变量和多线程
当使用jQuery和AngularJS等JavaScript库实现UI时,JSF的需求是什么
我究竟需要学习什么?
微创,
Java语言
Java API,包括用于数据库访问的JDBC
IDE,或文本编辑器+ Ant
Java EE,基本上就是servlets和JSP
一个servlet容器(如Tomcat)
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等).
豆只是物体的惯例.基本上,这意味着您正在使用getter和setter(或一些替代方案)并且您遵循一些规则.这些应该让某些工具操纵您的对象.典型的例子是GUI,一些工具可以让你构建GUI组件来编辑任意bean(即它们将呈现一个表单来编辑它的字段).
您需要HTML,CSS和JavaScript - 所有常见的Web开发嫌疑人.
Tomcat内置了一个Web服务器,但它是一个servlet/JSP引擎.Apache是纯Web服务器.
您需要学习JSP,它是一种用于生成生成HTML输出的servlet的模板语言.您将要使用JSTL而不是scriptlet编写它们.
如果您正在进行CRUD应用程序,则需要学习JDBC和关系数据库.你应该在尝试Hibernate或任何其他ORM之前这样做,因为它是它们构建的基础.
JavaBeans只是Java对象的标准.
如果您愿意,我会推荐Spring框架.
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 - Struts 2 in Action
字符串MVC - 看看这些为Spring和Spring MVC推荐书籍的问题.Spring框架和Spring Books的书籍建议:选择哪一个
Fremarker有一个非常好的文档 - FreeMarker手册
对于开始使用Java进行Web开发 -
替代文字http://ecx.images-amazon.com/images/I/5140T7T6WJL._BO2,204,203,200_PIsitb-sticker-arrow-click,TopRight,35,-76_AA240_SH20_OU01_.jpg
http://www.amazon.com/SCWCD-Exam-Study-Kit-Certification/dp/1930110596
我认为大多数传统的Java Web开发选项都相当繁重,并且有一些不错的选择:
Play是一个MVC框架,致力于轻量级,简单明了并支持快速开发-同时坚持使用纯Java,而不是基于动态JVM的语言。它相当新,但已经令人印象深刻,并且很快就建立了一个良好的社区。
Grails是一个受Ruby on Rails启发的MVC框架,该框架使用基于Java的脚本语言Groovy编写并使用。Grails具有成熟,强大且受到广泛尊重的强大社区。Groovy基本上是Java的超集,具有更好的语法和一些很棒的功能(例如闭包),因此学习它是学习Java的好方法。
如果您需要/想要构建RESTful网站/服务/应用程序,Restlet是一个很棒的框架-我非常喜欢。它简单,直接但又灵活。社区也很棒。
Google的App Engine也是一个有趣的选择。它是托管的,可能不感兴趣,但它具有相当简单的API和良好的SDK。
我敢肯定还有其他人,但是我能想到的就是这些。
祝好运并玩得开心点!