JavaWeb开发入门
一、Web开发的相关知识
1. WEB,在英语中web即表示网页的意思,它用于表示Internet主机上供外界访问的资源。
2. Internet上供外界访问的web资源分为:
- 静态web资源(如HTML页面):指web页面*人们浏览的数据始终是不变。
- 动态web资源:指web页面*人们浏览的数据是由程序产生的,不同时间点访问web页面看到的内容各不相同。
3. 静态web资源开发技术
- HTML
- CSS
- JavaScript
4. 常用动态web资源开发技术:
- JSP/Servlet
- ASP
- PHP
二、WEB服务器
学习web开发,需要先安装一台web服务器,然后再在web服务器中开发相应的web资源,供用户使用浏览器访问。
ServerSocket server = new ServerSocket(9999);
Socket socket = server.accept();
OutputStream out = socket.getOutputStream();
InputStream in = new FileInputStream("/Users/xie/Documents/a.html");
int i = 0;
byte b[] = new byte[1024];
while((i=in.read(b))!=-1){
out.write(b,0,i);
}
in.close();
out.close();
三、常见WEB服务器
1. WebLogic是BEA公司的产品,是目前应用最广泛的WEB服务器,支持JavaEE规范,而且不断的完善以适应新的开发要求。
2. 另外一个常用的Web服务器是IBM公司的WebSphereAS,支持JavaEE规范。
3. 大名鼎鼎的红帽的产品,原来属于开源组织JBossAS,后被红帽收购。支持JavaEE规范,免费。
4. 在小型的应用系统或者有特殊需要的系统中,可以使用一个免费的web服务器:Tomcat,该服务器支持全部JSP以及servlet规范。
四、Tomcat简介
1. Tomcat是在Sun公司推出的小型servlet/JSP调试工具的基础上发展起来的一个优秀的Servlet容器,Tomcat本身完全用Java语言编写。目前是Apache开源软件组织的一个软件项目,它的官方网址为http://tomcat.apache.org。得到了广大开源代码志愿者的大力支持,且可以和目前大部分的主流Web服务器(IIS、Apache服务器)一起工作,它运行稳定、可靠且高效。已成为目前开发企业Javaweb应用的最佳servlet容器选择之一。
2. 我们后面的Javaweb学习都是基于Tomcat服务器的。
五、Tomcat服务器
1. Tomcat官方站点:http://tomcat.apache.org
2. 获取Tomcat安装程序包
tar.gz文件是Linux操作系统下的安装版本
exe文件是Windows系统下的安装版本
zip文件是Windows系统下的压缩版本
六、Tomcat启动方式
- 使用Tomcat服务程序(安装版)
- 使用Tomcat程序组中的快捷菜单(安装版)
- 使用Tomcat.exe程序(安装版)
- 使用批处理程序(解压版)
七、Tomcat服务器
- 双击bin目录下的startup.bat文件
- 输入http://localhost:8080/,显示正确界面代表安装成功。
八、常见启动问题
Java_Home环境变量:
- 在windows中设置java_home环境变量
- 只要在setclasspath.bat批处理文件第一次使用JAVA_HOME环境变量之前的任何地方,将JAVA_HOME环境变量设置为JDK的主目录,就可以使用startup.bat文件启动Tomcat了。
端口占用问题(更改默认端口)
Catalina_Home环境变量的设置问题
九、Tomcat目录结构
bin:存放启动和关闭Tomcat的脚本文件
conf:存放Tomcat服务器的各种配置文件
lib:存放Tomcat服务器的支撑jar包
logs:存放Tomcat的日志文件
temp:存放Tomcat运行时产生的临时文件
webapps:web应用所在目录,即供外界访问的web资源的存放目录
work:Tomcat的工作目录
十、Javaweb应用程序
1. web应用程序指供浏览器访问的程序,通常也称为web应用。
2. 一个web应用由多个静态web资源和动态web资源组成,如:
- HTML、CSS、js文件
- JSP文件、java程序、支持jar包
- 配置文件
- ……
3. web应用开发好后,若想供外界访问,需要把web应用所在目录交给web服务器管理,这个过程称之为虚拟目录的映射。
4.打war包:jar -cvf myapp.war .
十一、JavaWeb应用的组成结构
开发web应用时,不同类型的文件有严格的存放规则,否则不仅可能会使web应用无法访问,还会导致web服务器启动报错。
十二、Web组件URL
无论是开放式目录结构还是打包文件方式发布web应用,web应用的默认URL入口都是web应用的根目录名。例如要访问MyApp应用,它的URL入口为/MyApp,如访问本地服务http://localhost:8080/MyApp(http://127.0.0.1:8080/MyApp)
十三、Tomcat的组成结构
Tomcat本身由一系列可配置的组件构成,其中核心组件是servlet容器组件,它是所有其他Tomcat组件的顶层容器。每个组件都可以在Tomcat安装目录/conf/server.xml文件中进行配置,每个Tomcat组件在server.xml文件中对应一种配置元素。以下用XML的形式展示了各种Tomcat组件之间的关系。
十四、Tomcat体系架构
十五、虚拟目录的映射方式
在server.xml文件的host元素中配置,例如:
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
<context path="/it" docBase="/Users/xie/Documents/apps"/>
</Host>
在Context元素中"/it"为虚拟目录名称,"/Users/xie/Documents/apps"为web应用所在目录
在Tomcat6中,不再建议在server.xml文件中配置context元素,细节查看Tomcat服务器关于context元素的说明。
让Tomcat自动映射:Tomcat服务器会自动管理webapps目录下的所有web应用,并把它映射成虚拟目录。换句话说,Tomcat服务器webapps目录中的web应用,外界可以直接访问。
十六、Context元素
Tomcat6.x提供了多种配置<Context>元素的途径。当其加载一个web应用时,会依次按照以下五种方式尝试查找web应用的<Context>元素,直到找到为止。
1. 到Tomcat安装目录/conf/context.xml文件中查找<Context>元素。
2. 到Tomcat安装目录/conf/[enginename]/[hostname]/context.xml.default文件中查找<Context>元素
[enginename]:表示<Engine>的name属性
[hostname]:表示<Host>的name属性
3. 到Tomcat安装目录/conf/[enginename]/[hostname]/[contextpath].xml文件中查找<Context>元素。
[contextpath]:表示单个web应用的URL入口
4. 到web应用的META-INF/context.xml文件中查找<Context>元素。
5. 到Tomcat安装目录/conf/server.xml文件中查找<Context>元素。只适用于单个Web应用。
如果仅仅为单个web应用配置<Context>元素,可以优先采用第三种配置方式。
十七、Context元素的属性
十八、web.xml文件
通过web.xml文件,可以将web应用中的:
- 某个web资源配置为网站首页
- 将servlet程序映射到某个URL地址上
- ……
- 但凡涉及到对web资源进行配置,都需要通过web.xml文件
注意:web.xml文件必须放在web应用\WEB-INF目录下。
十九、配置虚拟主机
- 假如两家公司Web应用都发布在同一个Tomcat服务器上,可以为两家公司分别创建一个虚拟主机
- 尽管以上两个虚拟主机位于同一个主机,但是当客户通过以上两个不同虚拟主机名访问web应用时,会感觉到这两个应用分别拥有独立的主机。
- 如果需要在web服务器中配置一个网站,需要使用Host元素进行配置,例如:<Host name="site1" appBase="C:\app"></Host>
- 配置的主机(网站)要想被外部访问,必须在DNS服务器或Windows系统中注册。
- 配置多个网站
- 缺省虚拟主机
二十、WEB开发的前景
软件开发的两种架构:c/s 和 b/s