WEB发展史TomcatWord格式.docx
《WEB发展史TomcatWord格式.docx》由会员分享,可在线阅读,更多相关《WEB发展史TomcatWord格式.docx(15页珍藏版)》请在冰豆网上搜索。
在整个的静态WEB之中,可以发现使用的是HTTP(超文本传输协议),而且主要的传输的内容基本上都是HTML代码或者是一些图片信息等等。
例如:
现在要想访问:
Request),之后这个请求被WEB服务器接收,接收之后,根据用户请求的内容(hello.htm),从文件系统之中读取此文件,并使用HTTP协议将内容发给客户端,整体的流程每一个人所见都是一样的。
静态WEB就好比一个没有大脑的看门者,不管是否具有权限,每个人都可以看。
后来到了1995年之后,Java技术产生了,java基础产生之后,可以发现静态WEB的执行图之中客户端发生了重大的变化,增加了JVM,一旦有了JVM之后,则表示现在的客户端可以执行各种动态的处理效果,就好比之前的JavaScript程序一样,这些程序没有服务器可以执行,所以这些操作都属于客户端操作。
3.1.2、动态WEB(重点)
动态WEB为现在的WEB的主要使用阶段。
在动态WEB之中,可以发现,客户端回到了最原始的操作状态,只是使用了一个普通的浏览器,但是这个时候服务器端中增加了一些内容,最早的静态WEB,所有的请求都直接使用WebServer进行接收,但是现在却增加了一个WebServerPlugin,这个插件的主要功能是用于区分用户所发出的请求是静态还是动态:
·
如果是静态操作,则将请求交给WEBServer,之后WEBServer直接从文件系统之中读取用户所需要的内容,并且通过WebServer将内容发还给客户端,这一点与最早的静态WEB是完全一样的;
如果现在的请求是动态操作,则会将所有的内容交给WebContainer(WEB容器),WEB容器主要是所有程序代码执行的空间,在此空间之中,将动态的拼凑出要显示的代码,最后再通过WebServer发还给客户端。
如果现在非要区分动态和静态的区别,也可以有以下两点:
动态WEB的代码都不是固定的,动态WEB可以进行资源操作(例如:
文件、数据库);
静态WEB的代码都是固定的,静态WEB无法操作资源;
动态WEB最大特点是具备交互性,而交互性的最大工具就是HTML的表单,所以之前的表单验证就显得极其重要。
但是,语言的发展永远是属于百花齐放的过程,所以现在主要的动态WEB程序有如下几种开发语言:
CGI:
公共网关接口,是一个动态WEB的实现标准,可以使用任意的语言实现,本身是多进程处理;
ASP:
最早的简单的动态WEB的开发技术,在国内比较流行,其本身的性能是很差,但是ASP.NET的性能相对较高,可是ASP.NET主要使用的是C#的开发语言,由于此操作属于微软的平台,所以本身最大的限制也在于平台上,只能在windows操作系统之中,使用IIS服务器,并且只能使用SQLServer这个数据库;
PHP:
一直算是一个不温不火的语言,但是其本身有一个天生的弊病——民间组织,没有任何一个专业的国际的大公司支持,而且PHP是在Linux下发展起来的,所以本身只能在Apache(或IIS)下运行,并且只能使用MySQL数据库;
JSP/Servlet:
是使用Java实现的CGI程序,由于本身采用的是多线程的处理形式,所以其性能要高很多,而且最重要的是这个开发平台被大多数的公司所支持,IBM、Oracle、HP这些大公司统一支持,而且最重要的是,可以使用Java进行各种的复杂的程序业务功能的实现。
而且网络程序的开发模式主要有以下两种:
C/S程序(Client/Server):
类似于QQ、MSN之类的使用的时候需要单独下载客户端,而且更新的时候要同时更新,但是速度相对较快,而且安全性要高;
B/S程序(Browser/Server):
直接使用动态WEB进行开发,例如:
论坛、管理系统等等,这些程序都是保存在了服务器端,那么以后维护的时候只需要维护一端代码即可,但是由于是基于WEB的,所以安全性不高。
3.2、Tomcat服务器的安装及配置(核心重点)
在动态WEB之中,核心的部分就在于WEB容器,所以这个WEB容器可以直接通过Tomcat获得,因为Tomcat是一个符合于JAVAEEWEB标准的,最小的WEB容器,而且是免费的。
一些大的WEB服务器:
Websphere、WebLogic、JBoss、SunApplication。
如果要想获得Tomcat可以直接从Apache(www.apache.org)上下载到使用的版本,Tomcat有以下两种安装包:
Windows的自动安装版:
安装完成之后会自动的在windows中注册Tomcat服务;
手工配置版:
下载后需要直接解压缩,需要自己进行配置。
Tomcat有如下几个版本:
Tomcat4.1.x:
是在JDK1.4下运行的,其本身与今天的最新的Tomcat没有什么太大的区别;
Tomcat5.0.x:
Tomcat5.1.x:
Tomcat5.0.x可以在JDK1.4和JDK1.5下使用,Tomcat5.1只能在JDK1.5下运行;
Tomcat6.0.0:
算是现在的最新版,而且相对稳定,可以运行在JDK1.6下。
而且如果你们日后的开发的时候,千万绝对肯定的不要使用最新版本,就使用最稳定的版本,包括JDK1.6也不要使用就使用JDK1.5。
3.2.1、Tomcat安装
Tomcat服务器本身是需要JDK的支持的,所以在最早的时候如果要想安装Tomcat,则一定要配置一个JAVA_HOME,主要的功能是表示出要使用的是那一个JDK。
如果现在安装的版本较高,可以不指定此路径。
安装之前注意先将防火墙暂时关闭,否则出了问题,本人概不负责。
安装的时候会提示用户选择默认的执行端口,关于端口以后解释,此处暂时将其设置为8080,同时又设置了后台管理员的密码,密码设置为“admin”。
此处出现的是要使用的JRE路径,Tomcat6.0.x之前的代码必须通过JAVA_HOME指定,否则无法找到。
3.2.2、Tomcat主要目录的作用
Tomcat安装完成之后会自动在服务中注册。
正经的开发人员是不会使用此方法启动服务的,因为在调试的时候不好使,主要是进入到命令中执行。
No.
文件夹
描述
1
bin
所有的可执行的二进制文件
2
conf
所有配置文件所在的目录,此操作最为重要
3
lib
存放所有第三方的jar文件
4
logs
存放服务器的日志文件,做维护使用
5
webapps
属于热部署项目的文件夹
6
work
所有的临时生成的文件所保存的路径
关于work文件夹的解释:
此文件夹中的所有代码都是临时代码,当每次程序运行的时候基本上都会向此文件夹之中生成一些临时的代码数据,如果发现开发的时候,某些操作无论修改了多少遍,都不会发生改变的时候,就可以考虑将此文件夹中的所有内容清除干净。
下面可以直接通过bin文件夹之中的tomcat6.exe直接启动Tomcat服务器。
此时的服务器将在8080端口上监听用户的请求操作,但是记住了,服务器可不能关闭。
随后输入:
http:
//localhost:
8080/,就可以访问Tomcat的服务了,页面如下。
3.2.3、配置虚拟目录
由于JSP的开发都需要在Tomcat中进行,所以此时就必须配置一个开发的目录,而这个目录可以直接保存我们所开发的代码,但是这样的一个目录有一个前提,必须有一个WEB-INF/web.xml的文件。
所以这个时候可以直接从D:
\Tomcat6.0\webapps\ROOT将此文件夹中的WEB-INF复制出来到我们要使用的目录上。
文件夹配置完成之后,现在的Tomcat还不知道有这样一个文件夹,所以就需要修改conf/server.xml文件,将此目录配置到Tomcat之中。
<
Contextpath="
/mldn"
docBase="
D:
\testweb"
/>
在此配置之中作用如下:
<
Context>
:
表示配置一个上下文,可以理解为一个工作区,代码在此中保存;
|-path:
表示从浏览器中访问此文件夹的路径,此名称必须有“/”(/mldn),这个时候的路径:
8080/mldn;
|-docBase:
表示一个虚拟目录对应的绝对路径,此文件夹中存在WEB-INF/web.xml文件。
由于现在修改的是配置文件,所以修改之后服务器需要重新启动。
但是现在发现运行之后出现了404的HTTP状态码,此状态码表示的是客户端的访问路径错误,之所以现在无法访问,主要的原因是Tomcat之中将默认的目录列表关闭了,要想打开的话,则需要修改conf/web.xml文件,修改如下部分;
servlet>
servlet-name>
default<
/servlet-name>
servlet-class>
org.apache.catalina.servlets.DefaultServlet<
/servlet-class>
init-param>
param-name>
debug<
/param-name>
param-value>
0<
/param-value>
/init-param>
listings<
true<
load-on-startup>
1<
/load-on-startup>
/servlet>
重新启动服务器,再次运行,就可以发现程序的列表。
3.2.4、修改端口
如果现在机器上的Oracle的服务是默认启动的话,则肯定会有端口冲突,因为一个端口只能绑定一个服务,而Oracle会自动的占了8080端口,此时,就需要进行端口的修改。
如果现在希望在程序执行的时候可以不输入端口号,就可以将端口号设置为80端口,这样将默认访问,要想修改的话,则必须修改server.xml文件:
Connectorport="
80"
protocol="
HTTP/1.1"
connectionTimeout="
20000"
redirectPort="
8443"
/>
修改完之后重新启动服务器,则修改起作用,输入:
//localhost/mldn/emp/
一个服务器在实际的运行之中,端口肯定是80。
3.2.5、第一个JSP程序
下面使用JSP编写一个页面中输出“HelloWorld”的操作,所有的JSP文件的后缀都是*.jsp。
范例:
编写hello.jsp
html>
head>
title>
HELLO.jsp<
/title>
/head>
body>
%//此处编写java程序
out.println("
HelloWorld!
!
"
);
%>
/body>
/html>
现在的程序中存在了java代码,所以必须使用服务器运行,输入:
//localhost/mldn/hello.jsp
在这里面特别需要注意的是,现在程序中的out.println()输出肯定是带换行的,但是此换行将被HTML忽略,所以如果要想换行,则必须手工编写“<
BR>
”元素。
br>
通过此代码中可以发现,JSP就是嵌入在HTML中的JAVA程序,而且JSP可以控制HTML和JS的输出。
3.2.6、JSP的执行流程
从刚才运行的代码之中,可以发现,一个JSP文件第一次执行的时候速度会慢一些,而第二次会快一些,主要的原因是因为程序在第一次运行(或者修改后运行)都会自动的生成一些临时的文件,这些文件保存在work目录之中。
下图给出了一个JSP程序的执行流程;
1、客户端向服务器端发出请求,要求找到hello.jsp的文件;
2、服务器端接收到请求之后,会找到hello.jsp;
3、但是服务器不会直接将hello.jsp交给客户端,而是要将其生成*.java的文件;
4、由于所有的java程序都是依靠*.class执行的,所以Tomcat还需要将*.java自动的编译成*.class文件;
5、将生成的*.class文件执行;
6、将执行之后动态拼凑出来的代码通过服务器端发还给客户端。
可以发现,由于JSP程序在第一次执行的时候要完成:
*.jsp*.java*.class的转换流程,所以第一次会比较慢,而之后的执行由于已经生成了*.class的话,则可以直接运行*.class文件执行。
而这些文件都可以在work中找到。
3.2.7、交互性的体现
之前讲解过,动态WEB的最大特点就是交互性,而交互性依靠表单完成,下面完成一个简单的功能,表单输入数据,之后JSP端负责显示。
定义输入表单——input.htm
JavaScript程序<
scriptlanguage="
javascript"
>
functionvalidate(){
if(document.all("
msg"
).value=="
){//没有输入
alert("
您还没有输入任何的内容!
document.all("
).focus();
//获得焦点
returnfalse;
}
returntrue;
}
/script>
formaction="
input.jsp"
method="
post"
onsubmit="
returnvalidate()"
请输入内容:
inputtype="
text"
name="
<
submit"
value="
提交"
/form>
由于此处提交的页面是input.jsp这个动态页面,所以程序必须放在浏览器上执行:
//localhost/mldn/input.htm
如果现在一个JSP文件要想接收用户表单中的提交内容,则依靠如下的一个操作:
接收表单内容:
request.getParameter(StringparamName),此操作返回的是String型的数据。
定义input.jsp接收输入的信息
Stringstr=request.getParameter("
h1>
+str+"
/h1>
这条操作是以后开发中使用最多的。
4、总结
1、动态WEB的执行流程;
2、Tomcat的配置、执行流程、request.getParameter()的使用。
5、预习任务
1、JSP基础语法部分;
2、再次重新巩固一下JDBC的基本操作,因为动态WEB离不开数据库。