WEB开发的相关知识
- WEB,在英语中web即表示网页的意思,它用于表示Internet主机上供外界访问的资源;
Internet上供外界访问的Web资源分为:
– 静态web资源(如html页面):指web页面中供人们浏览的数据始终是不变的;
–动态web资源:在web页面中供人们浏览的数据是由程序产生的,不同时间点访问web页面看到的内容各不相同;静态web资源开发技术:html
- 常用动态web资源开发技术:
–JSP/Servlet、ASP、PHP等
–在Java中,动态web资源开发技术统称为Javaweb;Java技术开发动态的web资源,即动态web页面;
实例
静态网页与IE浏览器的交互:
连接程序:Server.java
import java.io.FileInputStream;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;
public class Server {
public static void main(String[] args) throws Exception {
ServerSocket server = new ServerSocket(9999);
Socket sock = server.accept();
FileInputStream in = new FileInputStream("F:\\java0601\\HtmlDemo\\one.html");
OutputStream out = sock.getOutputStream();
int len = 0;
byte[] buffer = new byte[1024];
while((len = in.read(buffer)) > 0) {
out.write(buffer, 0, len);
}
in.close();
out.close();
sock.close();
server.close();
}
}
静态网页:one.html
注意:静态网页one.html与连接程序Server.java要在同一个目录下,且在DOS下编译和运行连接程序,再在IE中输入URL地址,此处实例的地址是:http://localhost:9999 ;
- 目录结构:
- DOS下编译和运行Server.java
- 在IE浏览器中输入URL:http://localhost:9999 ;
WEB服务器
- 在web开发之前,需要先安装一台web服务器,然后再在web服务器中开发相应的web资源,供用户使用浏览器访问;
- 学习web开发,为何必须要先装一个web服务器?
–
常见WEB服务器
apache
- 在小型的应用系统或者有特殊需要的系统中,可以使用一个免费的Web服务器:Tomcat,该服务器支持全部JSP以及Servlet规范;
WebSphere
- IBM公司的WebSphere,支持J2EE规范;
WebLogic
- BEA公司的产品,是目前应用最广泛的Web服务器,支持J2EE规范,且不断的完善以适应新的开发要求;
Tomcat
- 在小型的应用系统或者有特殊需要的系统中,可以使用一个免费的Web服务器:Tomcat,该服务器支持全部JSP以及Servlet规范。
常用协议及其对应端口
http 80 //Web常用
- 例如:http://www.sina.com,中http会指向80端口;http协议,默认端口为80;www.sina.com为主机名;sina.com为域名,一般购买的指的就是域名,可以搭建多个网站,例如:http://mail.sina.com;URL地址为:http://www.sina.com;如果需要指定端口号,则:http:\www.sina.com:8080;
sntp 25
pop3 110
ftp 23
https 443
tomcat服务器无需使用端口8080即可打开Apache网页的设置,而使用http默认端口80;
1、在conf文件夹中,将server.xml文件中connector port改为80;
2、如果遇到80端口被占用,请先将占用所对应的程序关闭,是80端口无指向;
3、在IE中直接输出URL:http:localhost即可
注意:
1、不要在读个盘符中放置tomcat服务器文件夹;
2、用Cataline_home设置tomcat服务器环境变量时,如果存在多个盘符中有服务器时,该设置会指向设定目录下的服务器,因此,该环境变量最好是不用设置为好;
tomcat服务器目录结构
该文件结构指的是文件夹版,并非安装版;
bin-存放启动和关闭Tomcat的脚本文件;
conf-存放Tomcat服务器的各种配置文件;
lib-存放Tomcat服务器的支撑jar包;
logs-存放Tomcat的日志文件;
temp-存放Tomcat运行时产生的临时文件;
webapps-web应用所在目录,即供外界访问的web资源的存放目录;
work-Tomcat的工作目录;
WEB应用程序
- WEB应用程序指供浏览器访问的程序,通常也简称为web应用;
- 一个web应用由多个静态web资源和动态web资源组成,如:
–html、css、js文件
–Jsp文件、java程序、支持jar包
–配置文件等……
–组成web应用的这些文件通常我们会使用一个目录组织,这个目录称之为web应用所在目录 - Web应用开发好后,若想供外界访问,需要把web应用所在目录交给web服务器管理,这个过程称之为虚拟目录的映射;
web应用想供外界访问方式一
1、在tomcat服务器中conf文件夹下,修改server.xml文件,添加语句
<Context path="/itcast" docBase="F:\java0601\News"/>
在News文件夹下,有one.html和two.html,其中,itcast为虚拟文件夹,事实上,电脑硬盘上是不存在的。
在网页打开URL前,如果已经开过tomcat服务器,请重启一下!
在网页中打开URL:http://localhost:8080/itcast/two.html或者http://localhost:8080/itcast/one.html
缺点:在实际开发中,该方法是不行的,因为服务器在上线后,是不能重启(特殊情况外)。
如果想要配置成缺省的web应用,则可将代码修改为(记得重启tomcat服务器再使用):
<Context path="" docBase="F:\java0601\News"/>
web应用想供外界访问方式二
备注:该方法来源于apache tomcat上下文容器Context的定义上下文方法;
首先,请将conf文件下server.xml文件中添加的语句删除,如下图所示;
<Context path="/itcast" docBase="F:\java0601\News"/>
然后,在下面所示路径下,新建abc.xml文件
H:\Program Files\Apache Software Foundation\Tomcat 7.0\conf\Catalina\localhost
其中,abc.xml文件内容为
注意,此处代码不需要虚拟路径,且tomcat服务器也不用重启
最后,在浏览器中输入URL:[http://localhost:8080/abc/one.html],其中abc文件夹,是从abc.xml文件名派生而来。
如果要显示多级下的*.html文件,则创建的上下文配置文件命名为 d#e#f.xml,在浏览器中的URL为
http://localhost:8080/d/e/f/one.html
特技:如果将abc.xml更改为ROOT.xml(称之为缺省的web应用),则在浏览器中的URL为:
http://localhost:8080/one.html
注意,此处记得清重启一下tomcat服务器
方式二为推荐使用方式;
- 在tomcat中,不建议在server.xml文件中配置context元素,在上述实例中可知;
- 让tomcat自动映射:tomcat服务器会自动管理webapps目录下的所有web应用,并把它映射成虚拟目录。换句话说,tomcat服务器webapps目录中的web应用,外界可以直接访问。
则直接可以使用URL:http:localhost:8080\News\one.html
WEB应用的组成结构
- 开发WEB应用时,不同类型的文件有严格的存放规则,否则不仅可能会使web应用无法访问,还会导致web服务器启动报错。
- 将mail的web应用中three.html文件内容置于首页
1、记得将tomcat服务中servel.xml、context.xml删除添加的内容,否则服务器启动会出现问题;
2、将tomcat服务器中conf-web.xml文件的头和尾复制到mail-WEB-INF下的web.xml中;
关键代码内容如下:
<?xml version="1.0" encoding="ISO-8859-1"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
version="3.0">
<welcome-file-list>
<welcome-file>three.html</welcome-file>
</welcome-file-list>
</web-app>
其中,three.html文件是mail目录下的静态网页文件
3、在浏览器中URL:http://localhost:8080/mail
4、如果在URL中不指定mail,则需要在tomcat服务器中conf-server.xml中进行设置
注意:记得重启服务器
<Context path="" docBase="H:\Program Files\Apache Software Foundation\Tomcat 7.0\webapps\mail"/>
server.xml中添加后文件:
网页URL:http://localhost:8080
记住:要重启服务器
如果将server.xml文件中:
修改前:
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
修改后:
<Connector port="80" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
则此时的URL:http://localhost
记得在修改过server.xml文件后,一定要重启服务器,且事后记得恢复默认
5、web.xml文件
web.xml文件是整个web应用中最重要的配置文件,它必须放在WEB-INF目录中。在开发web应用时,但凡涉及到对web应用中的web资源进行配置,通通是在web.xml文件中进行配置。例如:
–某个web资源配置为网站首页
–将servlet程序映射到某个URL地址上
–为web应用配置监听器
–为web应用配置过滤器
–……认识web.xml文件的作用:
1)通过web.xml文件把某个web资源配成网站首页。
配置虚拟主机
- 在一个tomcat服务器中可以放置多个网站,所谓配置虚拟主机,就是在tomcat服务器中配置一个网站。
- 如需在WEB服务器中配置一个网站,需使用Host元素进行配置,例:
该步是添加在tomcat服务器conf的server.xml文件中
<Host name="site1" appBase="c:\app"></Host>
- 配置的主机(网站)要想被外部访问,必须在DNS服务器或windows系统中注册。
- 配置多个网站。
- 缺省虚拟主机。
示例:配置一个www.sina.com的网站
在此路径(F:\java0601\sina)下创建sina的文件夹,该文件夹下包含news & mail
同时,在mail文件夹下创建one.html文件
在tomcat-conf文件夹下修改server.xml文件,添加内容为:
<Host name="www.sina.com" appBase="F:\java0601\sina">
<Context path="/mail" docBase="F:\java0601\sina\mail"/>
</Host>
同时,将8080端口修改为80
<Connector port="80" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
- 在路径C:\Windows\System32\drivers\etc下,修改hosts文件,添加内容如下所示:
192.168.0.103 www.sina.com
此处的ip地址为,本人电脑的本地IP
查询方法:在运行中输入cmd,DOS下输入ifconfig,如下图所示:
4. 在浏览器中输入URL:http://www.sina.com/mail/one.html
记住,在修改过server.xml文件后,记得要重启tomcat服务器
5.如何将URL中的mail去掉,同时,将one.html设置为网页首页?
将server.xml中的Host进行修改,即path=”“
<Host name="www.sina.com" appBase="F:\java0601\sina">
<Context path="" docBase="F:\java0601\sina\mail"/>
</Host>
再在mail文件夹下新建WEB-INF文件夹,新建文件web.xml,其内容为:
可以将one.html设置首页
<?xml version="1.0" encoding="ISO-8859-1"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
version="3.0">
<welcome-file-list>
<welcome-file>one.html</welcome-file>
</welcome-file-list>
</web-app>
浏览器中现在的URL可以为:http//www.sina.com
其它问题
- 画图演示web资源的访问过程;
- 打包web应用为war
运行-DOS下进入sina文件夹,利用java专门的打包工具对mail打包
打包后的mail.war文件
因为tomcat服务器认识war格式的文件
将mail.war文件发布到(拷贝到)tomcat服务器中去
此处的tomcat识别war文件,需要服务器开启 - 配context元素的reloadable元素,让tomcat自动加载更新后的web应用
例如:在server.xml中添加reloadable属性,在之后的开发中,java程序更改后,会自动更新mail应用(但实际开发中并不建议使用,防止服务器出现溢出),此处是指定的web应用
<Host name="www.sina.com" appBase="F:\java0601\sina">
<Context path="/mail" docBase="F:\java0601\sina\mail" reloadable="true"/>
</Host>
如果在context.xml文件中添加在属性值,则会出现所有的web应用会自动加载,此处是全局性的配置
<Context reloadable="true">
<!-- Default set of monitored resources -->
<WatchedResource>WEB-INF/web.xml</WatchedResource>
<!-- Uncomment this to disable session persistence across Tomcat restarts -->
<!--
<Manager pathname="" />
-->
<!-- Uncomment this to enable Comet connection tacking (provides events
on session expiration as well as webapp lifecycle) -->
<!--
<Valve className="org.apache.catalina.valves.CometConnectionManagerValve" />
-->
</Context>
tomcat的体系结构和配置https连接器 公钥 私钥
–keytool -genkey -alias tomcat -keyalg RSAtomcat服务器管理平台
- web应用的开发前景B/S c/s
Tomcat体系结构
配置tomcat的https连接器
- 在运行cmd-DOS中输入:
keytool -genkey -alias tomcat -keyalg RSA
会出现秘钥库密码提示,如果是第一次键入密码,是看不到密码显示的;具体如下图所示:
在C盘账户中生成了.keystore
即已经拥有了网站的数字证书了。
- 将C盘中生成的.keystore文件剪切到tomcat-conf文件夹中。
- 在server.xml文件中配置一个加密的连接器,但此加密连接器默认是被注释掉的,将其打开。
<Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol"
maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS" />
该段代码为默认被注释掉的连接器语句,可以将注释去掉,启用他
但是如何将秘钥连接器和秘钥结合起来使用呢?
这里可以查看Apache tomcat的http连接器
关于keystore的两个属性
keystoreFile-指定秘钥库文件的位置
keystorePass-秘钥库密码
配置好后的结果如下所示:
再重启服务器
此时,浏览器访问的是加密的端口,URL为:https://localhost:8443
由于创建的数字证书为添加的受信任的证书(CA数字证书机构),浏览器会提示证书错误
可以点击“错误证书”将其添加到受信任
测试完成后,将localhost数字证书删除步骤:
Internet选项-内容-证书-受信任的根证书颁发机构-查找localhost,删除。
tomcat管理平台
- 首先启动tomcat服务器,用URL(http://localhost:8080)在浏览器中打开apache tomcat
点击Host Manager后,会出现用户名和密码,它们是可以配置的,在conf-tomcat-users.xml文件中进行配置。
将被注释的内容启用并添加管理员,其代码为:
<role rolename="tomcat"/>
<role rolename="role1"/>
<role rolename="manager-gui"/>
<user username="tomcat" password="tomcat" roles="tomcat"/>
<user username="both" password="tomcat" roles="tomcat,role1"/>
<user username="role1" password="tomcat" roles="role1"/>
<user username="manager" password="tomcat" roles="manager-gui"/>
此处自行配置的用户名和密码分别是:
用户名:manager
密码:tomcat
登入后的界面为:
如果在本机路径(H:\Program Files\apache-tomcat-7.0.82\webapps)添加项目,tomcat网页应用管理也会同步,如下图所示:
其中:
reload-重新加载应用
undeploy-删除应用
通过tomcat网页应用管理,可以实现远程控制web应用,所以用户名和密码千万不能泄露出去。
记住,测试之后,请注意恢复tomcat-users.xml默认的设置