【JAVA】Java Web 介绍

Web 概念:

表示Internet主机上供外界访问的资源。

Internet上供外界访问的Web资源分为:

  • 静态web资源(Static Web)

  • 指web页面中供人们浏览的数据始终是不变。

  • 静态技术有:HTML

  • 静态资源有:** .html、.htm**。

  • 动态web资源(Dynamic Web)

  • 指web页面中供人们浏览的数据是由程序产生的,不同时间点访问web页面看到的内容各不相同。

  • 动态技术有:JSP/Servlet、ASP、PHP等;

  • 动态资源有:** .jsp、.asp/.aspx、.php**。
      
    #在Java中,动态web资源开发技术统称为Java Web。

  • Client:客户端

  • Server:服务端

WEB应用程序(Web Application)

WEB应用程序指供浏览器访问的程序,通常也简称为web应用

  • 例如有a.html 、b.html……多个web资源,这多个web资源用于对外提供服务,此时应把这多个web资源放在一个目录中,以组成一个web应用(或web应用程序)
    一个web应用由多个静态web资源动态web资源组成,如:html、css、js文件,Jsp文件、java程序、支持jar包、配置文件等等。
    Web应用开发好后,若想供外界访问,需要把web应用所在目录交给web服务器管理,这个过程称之为虚似目录的映射

Static WEB (静态 WEB)

*htm、*html,这些是网页的后缀,如果现在在一个服务器上直接读取这些内容,那么意味着是把这些网页的内容通过网络服务器展现给用户。整个静态WEB操作的过程图如下:
  
在这里插入图片描述
在静态WEB程序中,客户端使用WEB浏览器(IE、FireFox等)经过网络(Network)连接到服务器上,使用HTTP协议发起一个请求(Request),告诉服务器我现在需要得到哪个页面,所有的请求交给Web Server,之后Web Server根据用户的需要,从文件系统(存放了所有静态页面的磁盘)取出内容。之后通过Web Server返回给客户端,客户端接收到内容之后经过浏览器渲染解析,得到显示的效果。

静态WEB中存在以下几个缺点:

  • 1、Web页面中的内容无法动态更新,所有的用户每时每刻看见的内容和最终效果都是一样的。为了可以让静态的WEB的显示更加好看,可以加入了JavaScript以完成一些页面上的显示特效,但是这些特效都是在客户端上借助于浏览器展现给用户的,所以在服务器上本身并没有任何的变化

#实现静态WEB客户端动态效果的手段:

  • JavaScript(实际上使用更多)

  • VBScript

  • 2、**静态WEB无法连接数据库,无法实现和用户的交互。**使用数据库保存数据是现在大多数系统的选择,因为数据库中可以方便地管理数据,增删改查操作可以使用标准的SQL语句完成。

Dynamic WEB (动态 WEB)

所谓的动态不是指页面会动,主要的特性的是:“WEB的页面展示效果因时因人而变”,而且动态WEB具有交互性,WEB的页面的内容可以动态更新。整个动态WEB操作的过程图如下:

在这里插入图片描述

动态WEB中,程序依然使用Client端和Server端,Client端依然使用浏览器(IE、FireFox等),通过网络(Network)连接到服务器上,使用HTTP协议发起请求(Request),现在的所有请求都先经过一个WEB Server Plugin(WEB伺服器插件)来处理,此插件用于判断是请求的是静态资源(.htm或者是.htm)还是动态资源。

如果WEB Server Plugin发现客户端请求的是静态资源(.htm或者是.htm),则将请求直接转交给WEB Server ,之后WEB Server从文件系统中取出内容,发送回客户端浏览器进行解析执行。

如果WEB Server Plugin发现客户端请求的是动态资源(.jsp、.asp/.aspx、.php),则先将请求转交给WEB Container(Web 容器),在WEB Container中连接数据库,从数据库中取出数据等一系列操作后动态拼凑页面的展示内容,拼凑页面的展示内容后,把所有的展示内容交给WEB服务器,之后通过WEB服务器将内容发送回客户端浏览器进行解析执行。

动态WEB的实现手段现时非常多,较为常见的有以下几种:

  • Microsoft ASP、ASP.NET
  • PHP
  • JAVA Servlet/JSP

Servlet/JSP介绍

  • 这是SUN公司(SUN现在已经被Oracle公司收购)主推的B/S架构的实现语言,是基于JAVA语言发展起来的,因为JAVA语言足够简单,而且很干净。
  • Servlet/JSP技术的性能也是非常高的,不受平台的限制,各个平台基本上都可以使用。而且在运行中是使用多线程的处理方式,所以性能非常高。
  • SUN公司最早推出的WEB技术推出的是Servlet程序,Servlet程序本身使用的时候有一些问题,所有的程序是采用JAVA代码+HTML的方式编写的,即,要使用JAVA输出语句,一行一行地输出所有的HTML代码,之后,SUN公司受到了ASP的启发,发展出了JSP(Java Server Page),JSP某些代码的编写效果与ASP是非常相似的。这样可以很方便地使一些ASP程序员转向JSP的学习,加大市场的竞争力度。

B/S架构 (B/S Architecture) 是什么?

  • 随着Internet和WWW的流行,以往的主机/终端和C/S都无法满足当前的全球网络开放、互连、信息随处可见和信息共享的新要求,于是就出现了B/S型模式,即Broser/Server结构。
  • 它是C/S架构的一种改进,可以说属于三层C/S架构。主要是利用了不断成熟的WWW浏览器技术,用通用浏览器就实现了原来需要复杂专用软件才能实现的强大功能,并节约了开发成本,是一种全新的软件系统构造技术。
  • 更详细介绍:https://blog.csdn.net/zhengqijun_/article/details/53056624

在这里插入图片描述

Web Server (Web 伺服器)

  • 是指驻留于因特网上某种类型计算机的程序,是可以向发出请求的浏览器提供文档的程序。
    在这里插入图片描述
  • 服务器是一种被动程序:只有当Internet上运行在其他计算机中的浏览器发出请求时,服务器才会响应。
    在这里插入图片描述
  • Web服务器不仅能够存储信息,还能在用户通过Web浏览器提供的信息的基础上运行脚本和程序。
  • Web服务器可以解析HTTP协议。
  • 常见WEB Server如下:WebLogic/WebSphere/Tomcat/IIS

疑问:学习web开发,为什么必须要先装一个WEB Server?
在本地计算机上随便创建一个web页面,用户是无法访问到的,但是如果启动tomcat服务器,把web页面放在tomcat服务器中,用户就可以访问了。这说明什么问题?

  • 1、不管什么web资源,想被远程计算机访问,都必须有一个与之对应的网络通信程序,当用户来访问时,这个网络通信程序读取web资源数据,并把数据发送给来访者。
  • 2、WEB服务器就是这样一个程序,它用于完成底层网络通迅。使用这些服务器,We应用的开发者只需要关注web资源怎么编写,而不需要关心资源如何发送到客户端手中,从而极大的减轻了开发者的开发工作量。

Web Container (Web 容器)

  • 是可以部署多个WEB应用程序的环境。
  • 是一种服务程序,在服务器一个端口就有一个提供相应服务的程序,而这个程序就是处理从客户端发出的请求,如JAVA中的Tomcat容器,ASP的IIS或PWS都是这样的容器。一个服务器可以有多个容器。
  • Servlet没有main()方法。Servlet受控于另一个Java应用,这个Java应用称为容器。Tomcat就是这样一个容器。如果web服务器应用得到一个指向servlet的请求(而不是其他请求,如请求一个普通的静态HTML),此时服务器不是把这个请求交给servlet本身,而是交给部署该servlet的容器,要由容器调用servlet的方法,如doPost()或doGet()。

如:

  • TOMCAT(小项目、个人用、本地开发)(tomcat严格上说是servlet和jsp容器,但也有人叫它服务器,这没什么不行)
  • jetty/apache hpptd(Linux用)
  • JBOSS/weblogic(大型项目)

容器能提供什么?

  • 通信支持:利用容器提供的方法,你能轻松地让servle与Web服务器对话;
  • 生命周期管理:容器控制着servlet的生与死。它会负责加载类、实例和初始化servlet、调用servlet方法,并使servlet实例能够被垃圾回收。
  • 多线程支持:容器会自动地为它接收的每个servlet请求创建一个新的java线程。针对客户机的请求,如果servlet已经运行完相应的HTTP服务方法,这个线程就会结束(也就是会死掉)。
  • 声明方式实现安全:利用容器,可以使用XML部署描述文件配置(和修改)安全性,而不必将其硬编码写到servlet(或其他)类代码中。
  • JSP支持:负责把JSP代码翻译成真正的java。

web应用程序需要部署到web容器中才能运行,两者都必须符合javaEE规范。

Java Web(动态Web资源开发技术)概念:

Java Web,是用Java技术来解决相关web互联网领域的技术总和。

  • web包括:web服务器和web客户端两部分。
  • Java在客户端的应用有java applet,不过使用得很少,Java在服务器端的应用非常的丰富,比如Servlet,JSP和第三方框架等等。
  • Java技术对Web领域的发展注入了强大的动力。

Jar包和War包的介绍与区别:

其实jar包和war包都可以看成压缩文件,用解压软件都可以打开。
jar包和war包所存在的原因是:为了项目的部署和发布,通常把项目打包,通常在打包部署的时候,会在里面加上部署的相关信息。这个打包实际上就是把代码和依赖的东西压缩在一起,变成后缀名为.jar和.war的文件,就是我们说的jar包和war包。
但是这个“压缩包”可以被编译器直接使用,把war包放在/tomcat/webapp下,tomcat服务器在启动的时候可以直接使用这个war包。
通常tomcat的做法是解压、编译里面的代码,所以当文件很多的时候,tomcat的启动会很慢。

区别:
通俗来说,jar包是java打的包,war包可以理解为javaweb打的包。
jar包是用java来写的项目打包来的,里面只有编译后的class和一些部署文件。
而war包里面的东西就更复杂,包括写的代码编译成的class文件,依赖的包,配置文件,所有的网站页面,包括html,jsp等等。一个war包可以理解为是一个web项目,里面是项目的所有东西。

什么时候使用jar包或war包?
当项目在没有完全完成的时候,不适合用war文件,因为你的类会由于调试之类的经常改,这样来回删除、创建war文件很不方便,来回修改,来回打包。
最好是你的项目已经完成了,不做修改的时候,就打个war包。这个时候一个war文件就相当于一个web应用程序;而jar文件就是把类和一些相关的资源封装到一个包中,便于程序中引用。

打包Java Web应用 (via .War):

在Java中,使用"jar"命令来对将JavaWeb应用打包成一个War包,执行完之后,就可以得到一个JavaWebDemoProject.war文件,平时开发完JavaWeb应用后,一般都会将JavaWeb应用打包成一个war包,然后将这个war包放到Tomcat服务器的webapps目录下,当Tomcat服务器启动时,就会自动将webapps目录下的war包解压。

比如现在将放到放到Tomcat服务器的webapps目录下,Tomcat服务器启动后会自动Deploying web application,将这个war文件解压缩,生成一个同名directory:JavaWebDemoProject

参考博客:
http://www.cnblogs.com/xdp-gacl/p/3729033.html
https://blog.csdn.net/zhengqijun_/article/details/53056624
https://www.cnblogs.com/xdp-gacl/p/3744053.html
https://blog.csdn.net/qq_38663729/article/details/78275209

猜你喜欢

转载自blog.csdn.net/weixin_42915286/article/details/84107718