从哪里开始呢?
还是从前段认识的朋友开始吧。
前段在圈里认识了一个朋友,当他聊到他用SSH开发了一套系统时,我思想意识中想到SSH应该是一个通讯协议,他用不可置否的语气说:大叔,你从事这一行业也这么多年了,难道不知道SSH?
说来惭愧,从事这行业时间真的不短了,好像没有真的从事过WEB方面的开发,当他说及SSH为Struts、Spring和Hibernate时,我才恍然明白SSH的缩写。事有凑巧,最近在设计一个原型时,垂直型的网站充斥着整个网站,脑子中想到中国医疗的混乱,若老百姓能有一个专业的交流平台,那常识性的小病可以自行解决,于是“斗医”这个词一直停留在脑海,下面就随着它进入我的WEB开发吧。
在开始之前,先忘记各种框架,这里暂不追求各种先进技术,一切都是伴着思维随性前进。我们知道用户使用浏览器(常用的IE、Firefox、Chrome等)查看网页,网页的数据是通过HTTP请求到服务端的,服务端靠着WEB容器(常用的Jetty、Tomcat、Weblogic等)接受HTTP请求,并根据请求获取不同的资源返回给浏览器,如图所示:
第一个问题会映入眼帘,WEB容器是如何解析HTTP请求的呢?这儿可不解答这个问题,这是各种WEB容器最基本的功能,否则就不能称为WEB容器了。但可以明确的是,无论哪种WEB容器,它解析的WEB应用是满足一定规范的,即WEB应用有一个WEB-INF文件夹,它下面有web.xml文件。下面在D:\medical\war\WEB-INF\下创建web.xml
【备注】:后面若无特殊声明,该WEB应用均在Windows操作系统下开发
第二个问题,我们使用哪个WEB容器呢?Tomcat吧(关于各种WEB容器之间的优劣性,可以在google上搜索的到)。在官网上有下载,下载解压放在D盘。
第三个问题,Tomcat如何加载这个medical应用呢?世界上没有无缘无故的爱恨情仇,得让Tomcat找到它吧:在D:\tomcat8\conf\Catalina\localhost\下创建medical.xml,其内容填写:
1 2 | < Context path = "" docBase = "D:\medical\war" debug = "0" privileged = "true" reloadable = "true" crossContext = "true" > </ Context > |
这就完事了?暂时还没有,试想一下D:\medical\war\WEB-INF\web.xml还是空的呢!其内容填写:
1 2 3 4 5 6 7 | <? xml version = "1.0" encoding = "UTF-8" ?> <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd"> < web-app > < welcome-file-list > < welcome-file >index.html</ welcome-file > </ welcome-file-list > </ web-app > |
这里<welcome-file>index.html</welcome-file>表示进入本应用系统,首先打开D:\medical\war\index.html页面,因为这里没有配置路径,表明是用WEB应用下的index.html。
亲,在index.html中随便输入些东西吧,比如I'm coming....
激动人心的时刻到来了,双击D:\tomcat8\bin\startup.bat脚本,闪烁消失了,我勒了个去。别紧张,是因为没有设置JAVA环境变量。
【备注】:不会设JAVA环境变量,就问google
1. 去下载个JDK
2. 假设安装在C:\JDK7下
3. 跑到桌面,右击“我的电脑”,选择“属性 > 高级 > 环境变量 > 系统变量 > 新建”
3.1 新建JDK目录变量: JAVA_HOME <-> C:\JDK7
3.2 追加Path设置: Path <-> ;%JAVA_HOME%\bin
3.3 添加类路径变量: CLASS_PATH <-> .;%JAVA_HOME%\lib
好了,激动人心的时刻再度到来,双击D:\tomcat8\bin\startup.bat脚本,Tomcat服务正常启动后,在chrome中输入,可以看到如下的结果:
再仔细体味一下吧,浏览器的HTTP找Tomcat,Tomcat找WEB-INF/web.xml,web.xml找index.html,index.html返回给浏览器,浏览器解析index.html展显给用户。
【备注】:有可能存在如下的几种情况导致这个例了运行不起来
1. JDK与Tomcat的版本不匹配(这里JDK使用了7u15,Tomcat使用了tomcat8)
2. 8080端口号被占用
若上述没有运行起来可以私信给我。