我是否需要了解servlet和JSP才能学习Spring或Hibernate或任何其他Java Web框架?[关闭]


17

我一直在问很多人从哪里开始学习Java Web开发,我已经知道核心Java(线程,泛型,集合,对(JDBC)有一点经验),但是我不知道JSP和Servlet。我使用服务器端使用PHP以及客户端使用HTML,CSS,Javascript和HTML5的几个基于Web的应用程序完成了我的开发工作。

我要求的大多数人都告诉我立即进入Hibernate,而有些人则告诉我不需要学习servlet和jsps,我应该立即学习Spring框架。这是真的?我不需要学习servlet和JSP来学习休眠或Spring吗?

他们所有的答案使我感到困惑,现在我完全失去了学习或学习的知识。我觉得如果我不学习JSP和servlet,就会错过很多重要的概念,这些概念将来肯定会对我有帮助。

因此,问题是,我是否需要具有基础/知识servlet和JSP才能学习spring或hibernate或任何其他Java web框架。


3
请注意,休眠只是数据库抽象层,仅此而已,它可以用于将数据源插入任何类型的Java应用程序中,而不仅仅是Web应用程序。
Ed Griebel 2012年

1
了解servlet和JSP并不会受到伤害,请查看“ Head First-Servlet和JSP”。一本通俗易懂的书,但内容也很多。
Jaydee 2012年

@Jaydee我目前由Marty Hall + Murach的Servlet和JSP负责Core Servlet和JSP。
KyelJmD 2012年

我认为这个问题没有得到足够的回答。Bear Bibeault,一位著名的开发人员和作者坚持认为,在学习ANY框架之前,必须先学习JSP和Servlet。有人愿意证明为什么这可能在今天适用吗?这是他的帖子-coderanch.com/t/521300/JSP/java/JSP-servlets-struts
Borat Sagdiyev 2014年

好的,我从那里得到了一些答案Bear Bibeault。看到这两个环节- coderanch.com/t/633527/Spring/...coderanch.com/t/633526/JSP/java/...
波拉特Sagdiyev

Answers:


17

如果您对HTML,CSS和JavaScript有很好的了解,那么很多最终从事Web开发的人都会有所帮助。JSP背后的概念与PHP非常相似。怪癖是不同的。servlet是服务于请求的Java代码块的名称。就是这样。整个原始的Struts框架是一个servlet。

我会将TomcatJetty添加到您要学习的技术列表中。Tomcat是原始的Java Servlet容器实现,并且碰巧也是功能齐全且颇受欢迎的Web服务器。GlassFish建立在其之上。我在较新的项目中一直使用Jetty代替Tomcat,因为它更简单,更灵活,更快捷。Jetty旨在提供与Web应用程序不同的Web服务。但是,Web应用程序只是提供服务HTML来响应原始HTTP请求的Web服务,因此,如果您了解HTTP(可以在几小时到一天的时间内学习其中的重要内容),则使用起来非常容易。

您可以使用Tomcat和JSP(这里的教程或JSF)来创建一个小型网站,了解您所知道的知识,并花几个小时来阅读这些教程。这样一来,您就可以从舒适的地方开始,然后再伸展。然后制作一个javax.servlet.http.HttpServlet,它写为“ <html> <head> <title> Hi </ title> </ head> <body> <h1> Hello World </ h1> </ body> </ html >”到响应对象,在Tomcat web.xml中列出它,然后从Web浏览器发送HTTP请求。这不是火箭科学。所有Java Web框架都是这两个基本活动的变体。

如果您沿着码头路线走,它的结构甚至会更少。看看这个Hello Jetty示例。

如果您只是要建立博客或标准电子商务网站,那么我将从SquareSpaceWordpress之类的东西开始。您已经获得了很多东西,没有办法证明自定义代码的合理性了。

Java对于Web应用程序的优势在于其可靠性,可维护性和性能。PHP或Ruby / Rails比较简单,但是Java可以根据您的需要进行扩展。我不被任何Java Web框架所困扰。当您有一个团队在大型Web应用程序上工作时,或者您需要使用Hibernate时,像Spring这样的框架确实会发光。春天是最受欢迎的。当您对servlet和JSP / JSF有所了解时,然后学习Spring如何将它们与数据模型联系在一起。

如果您要创建博客或内容管理系统,则可以使用NoSQL数据库。但是我认为NoSQL数据库基本上只是文件系统上的缓存层,而不是替换关系数据库。我认为很少有一个适合NoSQL数据库的项目适合使用Java开发。

仍然需要自定义的高性能代码(使用Java,PHP或其他语言)的事物可能将具有关系/ SQL数据库来为其提供支持。我建议您首先对SQL和JDBC(Java数据库连接)有基本的了解。在熟悉了Java对象,关系数据库和SQL的世界之后,您可以学习Ebean / JPA(Java持久性API)/ ORM(对象到关系映射),它将对象世界与关系世界联系起来。

ORM既棘手又怪异。最终,大多数人都值得为之奋斗。Ebean是我所知道的最简单的一个。在8个月之后,我比在12年之后使用Hibernate感到更舒服。我知道很多人将Spring和Hibernate一起使用,他们似乎没有任何麻烦,甚至没有特别了解Hibernate是什么或做什么,所以我想说如果您要使用Hibernate,请这样做通过春天。也许只是因为我已经使用了更长的时间,所以我设法通过几个哈希映射完全测试了Hibernate,以进行测试,这太了不起了(可根据要求提供概述)。

您已经拥有一些最重要的技能。一次带别人一个,尽量不要不知所措。


您是否有任何链接或教程可以开始学习上述技术?或一本书的好建议。从SQL Server到简单的MySQl,我制作的大多数应用程序都使用RDBMS。
KyelJmD 2012年

我整理了答案,并按要求添加了链接。Hibernate / JPA和各种Web框架需要时间来学习和掌握。对于大多数其他技术,您已经足够了解,应该可以在几个小时或一天之内完成工作。我不知道Spring,但请查看其网站上的文档或在Amazon上获得高评价的书。
GlenPeterson 2012年

我看不出这如何回答问题。Bear Bibeault,一位著名的开发人员和作者坚持认为,在学习ANY框架之前,必须先学习JSP和Servlet。努力说明为什么这可能在今天适用或不适用?这是他的帖子-coderanch.com/t/521300/JSP/java/JSP-servlets-struts
Borat Sagdiyev 2014年

@GlenPeterson,“整个原始的Struts框架是一个servlet。” 含义?它不会使每个http通话变慢吗?
Pacerier,

@Pacerier我们以前将Struts 1作为servlet加载到Tomcat中。Struts Controller Servlet将以Web服务器相同的方式将不同的请求发送到不同的线程,只是在Servlet级别而不是容器级别。我认为开销很小。往往最慢的是数据库调用。第二慢,构建HTML并将其返回给客户端。当时很流行使用单独的服务器获取静态内容以提高速度,因此可以解决问题。
GlenPeterson

4

我建议学习基本的JSP和Servlet,因为它将帮助您掌握Spring中简化的概念。由于您具有基于PHP的CGI的经验,因此大多数JSP / Servlet只会以不同的方式处理您熟悉的事情,因此应该相当快地进行。您可能会发现,最困难的事情是掌握Java世界中的独特用法。

就Hibernate而言,我会同意MebAlone并说,如果需要的话,请学习它。但是,如果它已经设置好了,那么您只需抄写他人所做的事情就可以完成90%的工作。


2

听起来您想学习使用Java进行服务器端Web开发。有许多框架。实际上,Spring MVC是最受欢迎的,它已经成熟,功能非常强大并且是一个很好的框架。Spring MVC和其他Java Web框架从程序员那里提取Java Servlet API-从技术上讲,您不需要知道它。但我建议您学习基础知识,尤其是关键课程。一天的学习应该可以帮助您。

至于JSP,如果您了解PHP,那么您已经了解了要点。JSP是Java的服务器端脚本版本。

Hibernate是JPA的实现(最受欢迎),它是将对象持久存储到RDBMS的Java规范。随着NOSQL数据库(Hadoop,Mongo等)的广泛使用,与18个月前相比,Hibernate的“必须知道”要少得多。我个人是在需要了解的基础上学习存储技术的,因为其中有很多技术,并且您会丢失不用的东西。


您能为Spring MVC推荐哪本书?Spring和Spring MVC有什么区别?
KyelJmD 2012年

Spring是一个Java技术堆栈,其中包含各种项目。Spring MVC是服务器端Web框架。Spring的在线文档和示例应用程序是学习Spring MVC的最佳方法。
MebAlone 2012年

2

简短的回答:不,您不需要学习Servlet和JSP作为Spring MVC和许多其他Java Web框架的先决条件。

让我们首先让Hibernate脱颖而出。这是一个持久层框架,与Servlet和JSP没有任何关系。

Servlet API是几乎所有Java Web框架的最低级别。甚至JSP都被编译为servlet。

Spring MVC是Servlet API之上的一层,具有许多有用的扩展和与Spring Core的集成。您可以将JSP用作Spring MVC的呈现机制。Spring MVC教程将带您从头开始创建Web应用程序。在学习过程中,您将学习有关JSP的知识,并且还具备了了解Servlet API的能力。


您建议学习哪种书籍或视频教程来学习Spring MVC?
KyelJmD 2012年


1
@YuriyZubarev-我看不到如何回答这个问题。Bear Bibeault,一位著名的开发人员和作者坚持认为,在学习ANY框架之前,必须先学习JSP和Servlet。努力说明为什么这可能在今天适用或不适用?这是他的帖子-coderanch.com/t/521300/JSP/java/JSP-servlets-struts
Borat Sagdiyev 2014年

-1

似乎您陷入了我最近遇到的问题。我的目标是学习Java的服务器端开发。因此,我从servlet开始,了解了它们的工作原理,并编写了一些简单的程序在TomCat服务器上运行。TomCat是先决条件。如果您想继续前进,一定要熟悉TomCat。就struts2或Spring而言,struts2和spring是基于servlet构建的框架,如果您想加强基础知识,那么对servlet的深入了解必不可少。我从Java Brains教程开始。对于初学者来说,这些教程很棒。雅各布·詹科夫(Jakob Jenkov)在他的博客上的一些作品也确实很棒。当您知道servlet时,Struts2和Spring确实变得更加简单。就休眠而言,我建议您首先真正熟悉JDBC。逐步介绍servlet,struts,JDBC,Spring,Hibernate。希望我的回答有帮助:)。


这篇文章很难阅读(文字墙)。您介意将其编辑为更好的形状吗?
gnat 2015年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.