web项目(java)与学习概况

前言(Preface)

本文致力于从宏观角度理解web项目,通过java语言对web项目进行简单的剖析。关于更加具体的专有名词,技术细节,参见博主或其他网络文献,本文内容如下:
web:(World Wide Web)全球广域网,或称万维网。它是一种基于HTTP(HyperText Transfer Protocol超文本传输协议)网络协议的信息交互系统。

1.What is the Web Project

简单来说,所谓的web项目就是,我们是通过浏览器,通过网页去访问的这个项目 (比如说,我们能够通过浏览器访问百度,淘宝等,他们就是web项目)。在一个标准的web项目里,程序是运行在三个地方:一部分程序是运行在浏览器。一部分程序运行在服务器上。还有一些程序运行在数据库里。运行在不同部位的程序是不一样的,这些程序都是由不同的语言完成的。如下图所示。
web项目之java实现

2.服务端(Server-side programming)

服务器端使用java语言,分为Java基础和JavaSE(Java核心API)两个部分。在一个正式的,完整的web项目中,关于java语言,它是怎么运用的,能解决什么问题,如何与数据库进行交互,如何与浏览器进行交互,仅仅使用java语言是远远不够的。

3.客户端(Client-side programming)

浏览器上得有运行的网页,这也是程序。我们想做网页,需要由HTML(Hyper Text Markup Language),CSS(Cascading Style Sheets),JS(JavaScript),这三门技术结合在一起,才能开发出来。

4.数据库(Database)

数据库端所用的语言是sql(Structured Query Language),分为,DDL,DML,DQL,TCL,DCL五个部分,我们平时写,可能写的更多使用DML和DQL。(DQL: Data Query Language, DML: Data Manipulation Language, DDL: Data Definition Language, DCL:Data Control Language, TCL: Transaction Control Language)

5.浏览器与服务器交互(client-server interaction)

在浏览器和服务器之间,有一个交互的关系(比如说,我打开浏览器访问淘宝,淘宝得给我返回来点什么东西,给我返回数据来)。当做出网页之后,这个网页还得和服务器有交互,这个交互是基于HTTP协议进行的。在服务器端,由Servlet进行处理这个交互。有了Servlet之后,浏览器,服务器,数据库,这三者相互就能够串接起来,它们之间的关系就打通了。此时,才可以正真做出一个完整的web项目。

6.服务器和数据库交互(server-database interaction)

我通过浏览器访问淘宝,访问的是他的服务器,淘宝的服务器数据来源于他的数据库。我们访问的是淘宝的服务器,而淘宝的服务器,要访问它的数据库,在服务器和数据库之间要有一个交互,这个交互,是通过jdbc技术来实现的。

7.框架(Framework)

  • 通过java,sql,html,css,js,这5门语言,再加上jdbc和Servlet两项技术,就可以做出一个完整的web项目了。但是还不够,为了降低成本,在投标时提升公司的竞争力,公司要求我们开发项目,速度得快(如果别人能够用一年开发出来,我们团队只需半年时间,在抢项目报价时,别人报100w,我们可以报50w,因为我们成本低,这就具有竞争力了)。
  • 为了提升web项目的开发效率,我们还需要引入一些工具,这些工具统称为框架。框架是对开发web项目基本的底层技术加以封装,能够提高我们的编程效率。
  • 浏览器,我们也叫前端,有一个框架,叫jQuery。使用jQuery开发网页的效率会高一点。但其实jQuery主要提升的是JS的开发 效率。
  • 服务器,有一个框架叫,Spring,它能够对整个服务端的所有对象,加以管理;还可以整合所有的第3方框架,是服务端最为核心的管理框架。
  • 服务器与数据库交互,针对于jdbc访问数据库,目前市场上最为流行的框架是Mybatis。同类框架还有Hibernate(了解)。
  • 浏览器与服务器交互,对于如何处理浏览器的请求,提升开发效率,目前市场上最为流行的是SpringMVC,SpringMVC不仅仅底层封装了Servlet,还简化了开发模式,对程序进行了分层解耦。同类框架还有Struts2(了解)。

8.关于新技术(NewTechnology)

  • 在未来的工作,还是学习中,因为,这个市场的技术太多了,企业选择的话,千差万别。而为了顺应时代的潮流,在所难免的,也会遇到一些推陈出新的技术,都是我们所没有接触过的技术。那么,自主学习的能力就尤为重要。web项目架构体系里的内容,都是最基础的,最核心的,最常用的。还有一些不常用的,尤其在工作的时候,也可能被企业所使用。我们任何一个阶段,在面对任何一项新技术,是怎么去入门,遇到的时候,怎么去学习,以及如何安排学习计划。其实这个套路都差不多。这个技术,它是什么东西。能解决什么问题。它的结构是什么。它的使用步骤又是什么样,然后呢,写一些helloworld案例,大概就是这样。
  • 那么在后续的人生长河里,学习任何内容的时候,无论是自主学习,还是取人之渔,都应该是有这么一个意识,我们不单是要学这个技术,学语法,更重要的是理解自己或他人,对这个课程的这个安排。为什么这样去学习或这样讲授这个课程,我们应该关注在第一天的入门儿时,一般都介绍什么,或者需要学习什么,为什么以这个内容为切入点等等。
  • 其实对于每一个新事物的学习,第一天的安排,这个思路,都是大同小异。完全可以依据自己已有的学习经验,给自己一个参考,做一个依据,从而更好的学习和接受新的事物。

9.总结(Summary)

仅仅通过学习java语言,就可以做出一些小项目了,比如说一些单机小游戏,飞机大战,俄罗斯方块等。再加上数据库sql语言,就可以做出一些CS(Client-Server)架构的项目,但是要做BS(Browser-Server)架构的项目,即web项目,就必须至少会java,sql,html,css和js,这5门语言,还有jdbc和Servlet两项技术进行支持,最后为了提升开发效率,再对相应的框架进行学习,如此,对于初学编程而言,学习顺序适合为,

  1. java,sql,jdbc
  2. html, css和js,再加jQuery
  3. Servlet,SpringMVC
  4. Spring,Mybatis等框架。
  5. Springboot,dubbo,SpringCloud

另外,对于不同的程序员,比如.net程序员,php程序员,python程序员。我们说他是什么程序员,更多的是从服务端来说的。我们说 java程序员,因为我们的服务器,是用java语言写的;我们说 .net程序员,因为他的服务器,是用C#写的;我们说php程序员,因为他的服务器是用php写的,所以不管是什么程序员,想完成一个完整的web项目,他都得会数据库。都得会网页及其他部分的内容,所以不同的程序员之间是有交集的,正因为有交集,如果想转其他方向的程序员,是完全可行的,无需从头开始,只需要学一个服务端语言就可以了,而往往这些语言都是大同小异的。

参考文献(References)

文中如有侵权行为,请联系me。。。。。。。。。。。。。
文中的错误,理解不到位的地方在所难免,也请指教!在成长过程中,也将继续不断完善,不作为专业文章。不喜勿喷。

发布了7 篇原创文章 · 获赞 0 · 访问量 196

猜你喜欢

转载自blog.csdn.net/qq_41765518/article/details/103648966
今日推荐