作者:吴为36 | 来源:互联网 | 2023-09-18 19:30
Apache & Tomcat Apache 1、C语言实现的,专门用来提供HTTP服务。 2、特性:简单、速度快、性能稳定、可配置(代理),主要用于解析静态文本,并发性能高,侧重于HTTP服务; 3、支持静态页(HTML),不支持动态请求如:CGI、Servlet/JSP、PHP、ASP等; 4、具有很强的可扩展性,可以通过插件支持PHP,还可以单向Apache连接Tomcat实现连通。Apache是世界使用排名第一的Web服务器。 Tomcat 1、是Java开发的一个符合JavaEE的Servlet规范的JSP服务器(Servlet容器),是 Apache 的扩展。免费的Java应用服务器 2、主要用于解析JSP/Servlet,侧重于Servlet引擎; 3、支持静态页,但效率没有Apache高;支持Servlet、JSP请求; 4、Tomcat本身也内置了一个HTTP服务器用于支持静态内容,可以通过Tomcat的配置管理工具实现与Apache整合。 Apache + Tomcat:两者整合使用的优点: 如果请求是静态网页则由Apache处理,并将结果返回;如果是动态请求,Apache会将解析工作转发给Tomcat处理,Tomcat处理后将结果通过Apache返回。这样可以达到分工合作,实现负载远衡,提高系统的性能。 Apache是一个web服务器环境程序,可以作为web服务器使用。不过只支持静态网页,如(asp,php,cgi,jsp)等动态网页的就显得无能为力。如果要在Apache环境下运行jsp的话就需要一个解释器来执行jsp网页,而这个jsp解释器就是Tomcat, 还需要jdk,jsp需要连接数据库的话,就要jdk来提供连接数据库的驱程,所以要运行jsp的动态web服务器平台就需要Apache+tomcat+jdk。 静态网页 & 动态网页 静态网页: 1、在静态Web程序中,客户端使用Web浏览器(IE、FireFox等)经过网络(Network)连接到服务器上,使用HTTP协议发起一个请求(Request),告诉服务器我现在需要得到哪个页面,所有的请求交给Web服务器,之后WEB服务器根据用户的需要,从文件系统(存放了所有静态页面的磁盘)取出内容。之后通过Web服务器返回给客户端,客户端接收到内容之后经过浏览器渲染解析,得到显示的效果。 2、为了让静态页面显示更加好看,使用Javascript/Vbscript/ajax(AJAX即“Asynchronous Javascript And XML”(异步Javascript和XML),是指一种创建交互式网页应用的网页开发技术。)但是这些特效都是在客户端上借助于浏览器展现给用户的,所以在服务器上本身并没有任何的变化。 3、静态页面无法连接数据库; 4、由于现在的web页面中,大量使用JS,导致浏览器打开页面,就会占用大量的内存,服务端的压力是减轻了,但压力转移到了客户端。 5、运行在客户端的程序、网页、插件、组件,属于静态网页,例如:html,Javascript等等,他们可以脱离服务器运行于浏览器客户端。 6:静态网页的内容相对稳定,URL地址相对于动态网页的更加容易被搜索引擎识别,所以网站进行SEO优化的时候一般都是建议采用静态网页。 7:静态网页无需数据库的支持,所以访问速度上较之动态网页比较快,不过随着浏览器以及宽带速度提升,这种差别会越来越小。 动态网页: 1、动态WEB中,程序依然使用客户端和服务端,客户端依然使用浏览器(IE、FireFox等),通过网络(Network)连接到服务器上,使用HTTP协议发起请求(Request),现在的所有请求都先经过一个WEB Server来处理。 2、如果客户端请求的是静态资源(.htm或者是 .htm),则将请求直接转交给WEB服务器,之后WEB服务器从文件系统中取出内容,发送回客户端浏览器进行解析执行。
3、常用动态web资源开发技术:JSP/Servlet、ASP、PHP等。如果客户端请求的是动态资源(.jsp、 .asp/.aspx、 .php),则先将请求转交给WEB Container(WEB容器),在WEB Container中连接数据库,从数据库中取出数据等一系列操作后动态拼凑页面的展示内容,拼凑页面的展示内容后,把所有的展示内容交给WEB服务器,之后通过WEB服务器将内容发送回客户端浏览器进行解析执行。 4、再进一步深入分析动态web的访问过程:浏览器访问web时,看似是直接访问的jsp页面,其实是,最先到达的地方是服务器,服务器创建好req和resp对象后再给jsp页面使用。JSP的前身是servlet;在jsp中完成设置字符集和取得表单参数后再调用servlet,完成业务处理。然后返回到jsp,jsp就会生成相应的html页面。该页面会返回到服务器,再由服务器,通过response对象返回给客户端。
5、运行在服务器端的程序、网页、组件&#xff0c;属于动态网页&#xff0c;例如&#xff1a;JSP,ASP,PHP等&#xff0c;它们会随不同客户、不同时间&#xff0c;返回不同的网页。 6、为什么需要web服务器&#xff1f;(web server) 1&#xff09;不管什么web资源&#xff0c;想被远程计算机访问&#xff0c;都必须有一个与之对应的网络通信程序&#xff0c;当用户来访问时&#xff0c;这个网络通信程序读取web资源数据&#xff0c;并把数据发送给来访者。 2&#xff09;WEB服务器就是这样一个程序&#xff0c;它用于完成底层网络通迅&#xff0c;处理http协议。使用这些服务器&#xff0c;We应用的开发者只需要关注web资源怎么编写&#xff0c;而不需要关心资源如何发送到客户端手中&#xff0c;从而极大的减轻了开发者的开发工作量。 静态网页和动态网页区别的简单描述 1、静态页面就是设计者把页面上所有东西都设定好、做死了&#xff0c;然后放上去&#xff0c;不管是谁在任何时候看到的页面内容都是一样的&#xff0c;一成不变&#xff08;除非手动修改页面内容&#xff09;。运行于客户端的程序、网页、插件、组件&#xff0c;属于静态网页&#xff0c;例如html页、Flash、Javascript、Vbscript等等&#xff0c;它们是永远不变的。静态html页面文件&#xff0c;可以直接用本地的浏览器打开。比如&#xff1a;file:///Users/Phil/Documents/DevOps/HBuilderProjects/testJSP/index.html。静态页面放到什么地方都能运行的。动态页面则不行。 2、程序是否在服务器端运行&#xff0c;这个是判断网页属不属于动态网页的重要标志。动态页面是需要服务器解释的。动态页面的内容一般都是依靠服务器端的程序来生成的&#xff0c;不同人、不同时候访问页面&#xff0c;显示的内容都可能不同。网页设计者在写好服务器端的页面程序后&#xff0c;不需要手工控制&#xff0c;页面内容会按照页面程序的安排自动更改变换。在服务器端运行的程序、网页、组件&#xff0c;属于动态网页&#xff0c;它们会随不同客户、不同时间&#xff0c;返回不同的网页&#xff0c;例如ASP、PHP、JSP、ASP.net、CGI等。 3、动态网页相比静态网页的交互性更高&#xff0c;可以实现更多的功能&#xff0c;如用户注册、登录等一系列用户需要与网站发生互动的功能基本都需要由动态网页来满足。动态网页&#xff0c;与网页上的各种动画、滚动字幕等视觉上的“动态效果”没有直接关系&#xff0c;动态网页也可以是纯文字内容的&#xff0c;也可以是包含各种动画的内容&#xff0c;这些只是网页具体内容的表现形式&#xff0c;无论网页是否具有动态效果&#xff0c;采用动态网站技术生成的网页都称为动态网页 4、动态网页不是一个独立存在服务器上的网页&#xff0c;当用户发送请求时&#xff0c;服务器可能还要拼凑其他元素才会返回一个完整的网页&#xff0c;而静态网页一旦上传到服务器上&#xff0c;就是实实在在保存在服务器上的网页文件。 5、html是w3c规范的一种网页书写格式&#xff0c;是一种统一协议语言&#xff0c;静态网页。我们上网看的网页都是大部分都是基于html语言的。jsp是一种基于动态语言&#xff0c;jsp可以实现html的所有任务&#xff0c; 6、HTML&#xff08;Hypertext Markup Language&#xff09;文本标记语言&#xff0c;它是静态页面&#xff0c;和Javascript一样解释性语言&#xff0c;为什么说是解释性语言&#xff1f;因为&#xff0c;只要你有一个浏览器那么它就可以正常显示出来&#xff0c;而不需要指定的编译工具&#xff0c;只需在TXT文档中写上HTML标记就可以正常显示。JSP&#xff08;Java Server Page&#xff09;是Java服务端的页面&#xff0c;所以它是动态的&#xff0c;它是需要经过JDK编译后把内容发给客户端去显示&#xff0c;我们都知道&#xff0c;Java文件编译后会产生一个class文件&#xff0c;最终执行的就是这个class文件&#xff0c; 7、html和jsp的表头不一样&#xff0c;这个是JSP的头“ <%&#64; page language&#61;”java” import&#61;”java.util.*” pageEncoding&#61;”gbk”%>”在表头中有编码格式和倒入包等。也是很好区分的&#xff0c;在jsp中用<%%>就可以写Java代码了&#xff0c;而html没有<%%>。 8、不认识jsp或者asp什么什么的&#xff0c;但是有时候界面需要逻辑控制&#xff0c;所以我们就用相应的技术来实现&#xff0c;这样比较方便。而jsp在后台通过服务器解析为相应的html&#xff0c;然后在供浏览器识别显示。例如 <if (flag &#61;&#61; a){a } else {b }
服务器在读取到这段代码后&#xff0c;根据相应的业务逻辑&#xff0c;编译成相应的servlet&#xff0c;再由servlet输出到页面&#xff08;输出的就是html&#xff09;。 9、总之而言&#xff0c;静态网页适合更新较少的网站&#xff0c;一般适用于展示型的网站&#xff0c;而动态网页则更新较多&#xff0c;一般用于用户互动较多的网站。 静态网页和动态网页实验测试 1、在HBuilder中创建jsp页面&#xff0c;其内置的web静态服务器不能解析jsp表头&#xff0c;只能作为文本显示输出&#xff0c;但是可以解析其中的html部分。浏览器不能直接打开jsp文件。jsp页面如果想正确的显示&#xff0c;需要web容器进行解析。
2、在IntelliJ中创建web application&#xff0c;需要启动tomcat&#xff0c;才能运行jsp&#xff0c;可以顺利解析jsp的表头。