java web学习记录

来源:互联网 发布:二维数组是线性结构吗 编辑:程序博客网 时间:2024/06/05 20:58

前言:本篇文章借鉴于大牛博客http://www.cnblogs.com/xdp-gacl/p/3744053.html进行自己的思路总结,如表述不清,请移步该网址查看完整版。

一、基本概念

**

1.1、WEB开发的相关知识

  WEB,在英语中web即表示网页的意思,它用于表示Internet主机上供外界访问的资源。
  Internet上供外界访问的Web资源分为:

静态web资源(如html 页面):指web页面中供人们浏览的数据始终是不变。动态web资源:指web页面中供人们浏览的数据是由程序产生的,不同时间点访问web页面看到的内容各不相同。

  静态web资源开发技术:Html
  常用动态web资源开发技术:JSP/Servlet、ASP、PHP等
  在Java中,动态web资源开发技术统称为Javaweb。
  

1.2 WEB应用程序

WEB应用程序指供浏览器访问的程序,通常也简称为web应用。例如有a.html 、b.html…..多个web资源,这多个web资源用于对外提供服务,此时应把这多个web资源放在一个目录中,以组成一个web应用(或web应用程序)

  一个web应用由多个静态web资源和动态web资源组成,如:html、css、js文件,Jsp文件、java程序、支持jar包、配置文件等等。
  Web应用开发好后,若想供外界访问,需要把web应用所在目录交给web服务器管理,这个过程称之为虚似目录的映射

1.3 动态和静态的概念

静态的web资源,如html,css,js,图片等资源文件,任意时刻都显示同样的模式。动态web资源,如jsp,servlet等可以和用户进行交互的资源,根据用户的请求,响应不同的资源。

二、WEB服务器

2.1、WEB服务器简介

  1、Web服务器是指驻留于因特网上某种类型计算机的程序,是可以向发出请求的浏览器提供文档的程序。当Web浏览器(客户端)连到服务器上并请求文件时,服务器将处理该请求并将文件反馈到该浏览器上,附带的信息会告诉浏览器如何查看该文件(即文件类型,MIME类型)。
  2、不管什么web资源,想被远程计算机访问,都必须有一个与之对应的网络通信程序,当用户来访问时,这个网络通信程序读取web资源数据,并把数据发送给来访者。
 

2.2 、 tomcat服务器

Tomcat官方站点:http://jakarta.apache.org

  下载Tomcat安装程序包:http://tomcat.apache.org/
  注意:
tar.gz文件是Linux操作系统下的安装版本
exe文件是Windows系统下的安装版本
zip文件是Windows系统下的压缩版本

2.3 、tomcat的目录层次结构

bin:存放启动和关闭Tomcat的脚本文件
conf:存放Tomcat服务器的各种配置文件
lib:存放Tomcat服务器的jar包
logs:存放tomcat的日志文件
temp:存放tomcat运行时产生的临时文件
webapps:web应用所在目录,即供外界访问的web资源的的存放目录
work:tomcat的工作目录

测试:1、进入目录,点击startup.bat文件启动服务器

2.4、Tomcat服务器端口的配置

 tomcat所有的配置文件都在conf目录下,其中的server.xml是配置文件的核心文件。

进入server.xml文件,找到Connector结点进行修改:

<Connector port="8080" protocol="HTTP/1.1"                connectionTimeout="20000"                redirectPort="8443"   />

将port=”8080”修改问8888,然后重启即可。

2.5、Tomcat服务器虚拟目录的映射方式

 Web应用开发好后,若想供外界访问,需要把web应用所在目录交给web服务器管理,这个过程称之为虚似目录的映射。那么在Tomcat服务器中,如何进行虚拟目录的映射呢?总共有如下的几种方式:

2.5.1、虚拟目录的映射方式一:在server.xml文件的host元素中配置
在这对标签加上即可将在F盘下的JavaWebDemoProject这个JavaWeb应用映射到JavaWebApp这个虚拟目录上,JavaWebApp这个虚拟目录是由Tomcat服务器管理的,JavaWebApp是一个硬盘上不存在的目录,是我们自己随便写的一个目录,也就是虚拟的一个目录,所以称之为”虚拟目录”,代码如下

<Host name="localhost"  appBase="webapps"              unpackWARs="true" autoDeploy="true"              xmlValidation="false" xmlNamespaceAware="false">          <Context path="/JavaWebApp" docBase="F:\JavaWebDemoProject" />  </Host>

中,Context表示上下文,代表的就是一个JavaWeb应用,Context元素有两个属性:
  Ⅰ.path:用来配置虚似目录,必须以”/”开头。
  Ⅱ.docBase:配置此虚似目录对应着硬盘上的Web应用所在目录。
  
2.5.2、虚拟目录的映射方式二:让tomcat服务器自动映射
tomcat服务器会自动管理webapps目录下的所有web应用,并把它映射成虚似目录。换句话说,tomcat服务器webapps目录中的web应用,外界可以直接访问。
例如:把F盘下的JavaWebDemo目录下的project_name这个JavaWeb应用直接copy到tomcat服务器webapps目录中,启动tomcat,然后就可以在浏览器中访问该JavaWeb应用的资源了。

2.6、Tomcat服务器配置虚拟主机

2.6.1、配置虚拟主机
配置虚似主机就是配置一个网站。
  在Tomcat服务器配置一个虚拟主机(网站),需要修改conf文件夹下的server.xml这个配置文件,使用Host元素进行配置,打开server.xml,可以看到Tomcat服务器自带的一个名称为localhost的虚拟主机(网站) 
平时我们将开发好的JavaWeb应用放到webapps文件夹下,然后就可以使用”http ://localhost:端口号/JavaWebAppName”的方式去访问了,其实访问的就是name是”localhost”的那台虚拟主机(Host),这台虚拟主机管理webapps文件夹下的所有web应用。

  例如:”http ://localhost:8080/JavaWebDemoProject/1.jsp”,这个URL地址访问的就是名称是localhost的那台虚拟主机下的JavaWebDemoProject这个应用里面的1.jsp这个web资源。
  我们可以使用如下的方式配置一个虚拟主机,例如:   

<Host name="www.gacl.cn"appBase="F:\JavaWebApps"></Host>

这里我们新配置一个虚拟主机,虚拟主机的name是”www.gacl.cn”,虚拟主机”www.gacl.cn”现在管理着JavaWebApps文件夹下的所有web应用,平时我们在互联网上使用域名”www.baidu.com”访问百度的网站时,其实就是在访问一个名称是”www.baidu.com”的虚拟主机,所以当我们要访问name是”www.gacl.cn”的这个虚拟主机时,就可以使用”域名(www.gacl.cn)”去访问,注意一下appBase=”F:\JavaWebApps”,这里的JavaWebApps文件夹代表的不是一个项目的根目录,而是一个存放了一个或者多个JavaWeb应用的文件夹,就好像是Tomcat服务器的webapps文件夹一样,里面存放了很多的JavaWeb应用。

三、 Tomcat的体系结构

这里写图片描述
Tomcat服务器的启动是基于一个server.xml文件的,Tomcat启动的时候首先会启动一个Server,Server里面就会启动Service,Service里面就会启动多个”Connector(连接器)”,每一个连接器都在等待客户机的连接,当有用户使用浏览器去访问服务器上面的web资源时,首先是连接到Connector(连接器),Connector(连接器)是不处理用户的请求的,而是将用户的请求交给一个Engine(引擎)去处理,Engine(引擎)接收到请求后就会解析用户想要访问的Host,然后将请求交给相应的Host,Host收到请求后就会解析出用户想要访问这个Host下面的哪一个Web应用,一个web应用对应一个Context。

<?xml version='1.0' encoding='utf-8'?><Server port="8005" shutdown="SHUTDOWN">  <Service name="Catalina">    <Connector port="8080" protocol="HTTP/1.1"               connectionTimeout="20000"               redirectPort="8443" />    <Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol"               maxThreads="150" SSLEnabled="true" scheme="https" secure="true"               clientAuth="false" sslProtocol="TLS"                keystoreFile="conf/.keystore" keystorePass="123456"/>    <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />    <Engine name="Catalina" defaultHost="localhost">      <Host name="localhost"  appBase="webapps"            unpackWARs="true" autoDeploy="true">        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"               prefix="localhost_access_log." suffix=".txt"               pattern="%h %l %u %t &quot;%r&quot; %s %b" />      </Host>      <Host name="www.gacl.cn" appBase="F:\JavaWebApps">        <Context path="" docBase="F:\JavaWebApps\JavaWebDemo1"/>      </Host>    </Engine>  </Service></Server>
原创粉丝点击