java web基础1Tomcat服务器基本知识

一.Tomcat安装

(1)先安装JDK,并配置环境变量JAVA_HOME。Tomcat服务器的配置需要JDK的JAVA_HOME环境变量。

并在系统path变量添加%JAVA_HOME%/bin。

(2)下载安装Tomcat安装文件,并配置CATALINA_HOME环境变量。

(3)测试是否安装成功,打开tomcat/bin目startup.sh,运行服务器。在浏览器输入http://localhost:8080。出来猫就成功了。

二.Eclipse配置Tomcat

(1)下载Eclipse,解压即可,不需安装。

(2)Eclipse添加Tomcat,打开Eclipse工作界面,选中windows->preferences->

server->runtimr->add添加Toomcat版本,并填写Tomcat路径。

(3)成功。

三.Tomcat基本配置

Tomcat是根据server.xml的配置启动的。根目录下conf/server.xml。

Server.xml标签有:

Server>、<Service>、<Connector>、<Engine>、<Host>、<Context>、<logger>、<Value>、

其中最重要的connector标签,它有以下属性:

<Connector>元素

<Connector>是直接与用户交互的组件,负责接受用户请求和向客户返回响应结果。

在server.xml中的connector标签里可以配置服务器的线程数,最大连接数,等待超时时间等。

属性说明:


属性


说明


port


Connector所监听的端口。在浏览器中可以通过输入url:port的方式提交给对应的Connector。因为浏览器的默认端口是80,所以如果把Connector的port设成80的话,可以直接使用url进行访问,不用在后边再跟一个端口号。


protocol


设定Http协议,默认是HTTP/1.1


minThreads


服务器启动时创建的处理用户请求的线程数


maxThreads


可以创建的最大的处理用户请求的线程数


minSpareThreads


最小备用线程数


maxSpareThreads


最大备用线程数


acceptCount


当所有可以使用的处理请求的线程都被用光时,可以放到处理队列中的请求数,超过这个数的请求将不予处理,而返回Connection refused错误。


redirectPort


服务器正在处理http请求时收到了一个SSL传输请求后重定向的端口号。(即当请求是https时,将它转发到的端口)


enableLookups


如果为true,表示支持域名解析,则可以在web应用中通过调用request.getRemoteHost()进行DNS查询来得到远程客户端的实际主机名;若为false则不进行DNS 查询,而是返回其ip地址。默认值为true。


connectionTimeout


等待超时的时间数(以毫秒为单位),如果为-1表示不限制客户连接的时间。

四.Tomcat服务器虚拟目录映射

Web应用开发好后,若想供外界访问,需要把web应用所在目录交给web服务器管理,这个过程称之为虚似目录的映射

tomcat服务器会自动管理webapps目录下的所有web应用,并把它映射成虚似目录。

只需要将写好的项目放在tomcat服务器webapps目录下,外界就可以直接访问。

  例如:把F盘下的JavaWebDemoProject这个JavaWeb应用直接copy到tomcat服务器webapps目录中,如下图所示:

  此时Tomcat服务器就会自动为JavaWebDemoProject这个JavaWeb应用映射一个同名的虚拟目录"/JavaWebDemoProject",然后就可以使用浏览器访问这个JavaWeb应用的资源了,

五.浏览器与服务器的交互过程

(1)浏览器发送http报文:

浏览器将http数据流发送到服务器上,服务器上监听相应端口的软件,得到http请求体(数据流)

http请求报文就是浏览器告诉W服务器要访问服务器里面的哪个Web应用下的Web资源。形式如下:

其中的,http请求体,accept/user-agent/host/connection等属性,是浏览器自动生成的。

换句话说就是,浏览器会自动生成http header。

关于浏览器自动生成http header,可以参考知乎回答http://www.zhihu.com/question/34603729

(2)服务器收到http请求报文,返回http响应报文

服务器接收到浏览器传输的数据后,开始解析接收到的数据,解析"GET /JavaWebDemo1/1.jsp HTTP/1.1"里面的内容,知道客户端浏览器要访问的是JavaWebDemo1应用里面的1.jsp这个Web资源,并读取1.jsp这个Web资源里面的内容,将读到的内容再以Stream(流)的形式传输给浏览器,如下图所示:

(3)浏览器拿到http响应报文后,进行解析。

服务器发送回来的数据:

 1HTTP/1.1 200 OK
 2Server: Apache-Coyote/1.1
 3Content-Type: text/html;charset=ISO-8859-1
 4Content-Length: 102
 5Date: Mon, 19 May 2014 14:25:14 GMT
 6 7<html> 8<head> 9<title>JavaWebDemo1</title>10</head>11<body>12        JavaWebDemo1
1314</body>15</html>

(4)浏览器对静态资源的读取

注意:如果http响应报文中,传回来的html代码包含jpg,css,js等静态资源文件。浏览器这时会一边渲染html代码,同时再次发送http请求来获得这些静态资源。

例如,服务器返回的html代码包括

图片http://static.ak.fbcdn.net/rsrc.php/z12E0/hash/8q2anwu7.gifhttp://static.ak.fbcdn.net/rsrc.php/zBS5C/hash/7hwy7at6.gif…CSS 式样表http://static.ak.fbcdn.net/rsrc.php/z448Z/hash/2plh8s4n.csshttp://static.ak.fbcdn.net/rsrc.php/zANE1/hash/cvtutcee.css…JavaScript 文件http://static.ak.fbcdn.net/rsrc.php/zEMOA/hash/c8yzb6ub.jshttp://static.ak.fbcdn.net/rsrc.php/z6R9L/hash/cq2lgbs8.js

读取这些静态文件,都会经历一个类似读取html代码的过程。

需要记住的是,这些静态资源,浏览器可以对它们进行缓存。服务器的响应报文中包含了静态文件的保存期限。这样,当下次浏览器访问相同网页时就可以在浏览器内存中读取这些静态资源,从而加快了网页读取速度。

概括:服务器先返回html代码,浏览器然后再次请求静态资源。俩步骤。

浏览器与服务器交互过程,具体可考http://www.360doc.com/content/13/0809/16/13264825_305872743.shtml

六.Tomcat jar包

在tomcat的根目录lib文件夹下,所有的jar包以供服务器上所有应用共同使用。

jar包放在WEB-INF下比放在tomcat下有什么好处?

tomcat自动加载WEB-INF/lib下的jar包。

在Tomcat的lib目录下,这些jar都是会被所有的部署应用共享使用到的,而单独应用的WEB-INF下的,是自己独立使用的。如果放到Tomcat下,可能多个应用之间对于某个项目不同版本有依赖,这个时候就比较难处理。毕竟ClassLoader只能加载一份。

七.WEB应用的组成结构

一张图说明解决

图片来自http://www.cnblogs.com/xdp-gacl/p/3734395.html,感谢作者

时间: 2024-10-25 10:12:08

java web基础1Tomcat服务器基本知识的相关文章

Java web基础总结三之—— java web 服务器

Java web基础总结三之-- java web 服务器 一.什么是java web服务器 首先来看一下什么是web服务器,它一般指网站服务器,是指一个再互联网一个主机上的一个程序.它可以解析客户端发送来的遵循http协议的请求,并且经过逻辑业务处理后,以http协议向浏览器等Web客户端提供文档. 互联网上供外界访问的Web资源可以分为两种:一个是静态web资源(如html 页面),指web页面中供人们浏览的数据始终是不变.另一个动态web资源,指web页面中供人们浏览的数据是由程序动态产生

Java Web基础知识之Filter:过滤一切你不想看到的事情

不要相信客户端, 所以做后端的人都应该铭记的事情.因为前端传过来的数据并不总是合法和有效的,所以后端是对访问资源的最后一道保护伞.之前我们在Spring中说到过AOP编程,AOP基础知识,它就可以在执行我们的方法之前进行一些预处理和验证来保护后端的资源.不难想到她的实现方式和本篇要说的过滤器的实现原理应该是相同的,都是通过Java的动态代理实现的(自己的理解). 在Java Web的开发中,过滤器用于拦截请求,并对ServletRequest对象进行处理,我们可以想到的,它可以用来验证权限.加密

Java Web基础 --- Jsp 综述(上)

摘要: J2EE是一套规范,而Servlet/Jsp是J2EE规范的一部分,是Tomcat的主要实现部分.在最初的应用实践中,当用户向指定Servlet发送请求时,Servlet利用输出流动态生成HTML页面,这导致Servlet开发效率极为低下.JSP技术通过实现普通静态HTML和动态部分混合编码,使得逻辑内容与外观相分离,大大简化了表示层的实现,提高了开发效率.本文以JSP的本质是Servlet为主线,结合JSP转译后所得的Servlet,详细探讨了JSP的原理.执行过程.脚本元素.编译指令

Java Web基础 --- Jsp 综述(下)

摘要: JSP脚本中包含九个内置对象,它们都是Servlet-API接口的实例,并且JSP规范对它们进行了默认初始化.本文首先通过一个JSP实例来认识JSP内置对象的实质,紧接着以基于请求/响应架构应用的运行机制为背景,引出JSP/Servlet的通信方式与内置对象的作用域,并对每个内置对象的常见用法进行深入介绍和总结. 一. JSP 九大内置对象概述及相关概念说明 JSP脚本中包含九个内置对象,这九个内置对象都是 Servlet API 接口的实例,并且JSP规范对它们进行了默认初始化(由 J

Java Web基础 --- Servlet 综述(实践篇)

摘要: 伴随 J2EE 6一起发布的Servlet 3.0规范是Servlet规范历史上最重要的变革之一,它的许多新的特性都极大的简化了 Java Web 应用的开发.本文从一个简单的 Servlet 例子开始,说明了如何开发.配置一个 Servlet.此外,还重点叙述了Servlet的一些新特性,包括Servlet 异步处理.Servlet 非阻塞IO 以及 Servlet 文件上传等内容,以便我们对Servlet有一个更全面的了解. 本篇主要介绍 Servlet 实践方面的知识,更多关注于S

Java Web 基础 --- Filter 综述

摘要: 伴随J2EE一起发布的Servlet规范中还包括一个重要的组件--过滤器(Filter).过滤器可以认为是Servlet的一种加强版,它主要用于对用户请求进行预处理以及对服务器响应进行后处理,是个典型的处理链.Servlet规范使用了三个接口对过滤器进行了抽象,即Filter是对具体过滤器的抽象,FilterChain是基于AOP理念对责任链方面的抽象,FilterConfig则是对Filter配置的抽象.本文概述了Filter的提出动机.工作原理.使用流程和应用实例,并指出Java W

Java Web基础(HTML、Servlet/JSP)

要成为牛逼的JavaWeb程序员, Java Web的基础非常重要,现在有各种成熟的设计框架例如JQuery.Spring.Struts.Mybatis,将Java Web基础的复杂且通用的逻辑进行封装,减少了程序员的代码量,提高了编码效率,但是这些框架非常不利于我们了解Java Web底层如何运作,甚至不知道HTML(HyperText MarkupLanguage).HTTP(HyperText Transfer Protocol).URL(Uniform Resource Locator)

Java web基础总结二之—— http协议

Java web基础总结之二--http协议 由于java web是基于B/S的,所以http协议是java web 最基础,也非常重要的知识.HTTP协议用于定义客户端与web服务器之间进行通信的格式.从web服务器中获得某个web资源或者web 服务器接受客户端的请求都需要遵守一定的通讯格式,就是http协议. 一.HTTP协议是什么? HTTP协议是学习java web的基石,同时也是管理和维护一些复杂的WEB站点的必备的基础,如果你想要深入的理解java web的服务器的实现,就更需要掌

Java Web基础 --- Servlet 综述(理论篇)

摘要: Web 技术成为当今主流的互联网 Web 应用技术之一,而 Servlet 是 Java Web 技术的核心基础.本文首先从请求/响应架构应用的大背景谈起 Servlet 的由来,明确 Servlet 的产生动机,并揭示了 Servlet 的本质以及其在标准MVC模式中所扮演的角色.紧接着,给出了 Servlet族的继承结构,并对族内的接口和抽象类作了进一步的介绍,并给出开发一个Servlet程序的常用做法.在此基础上,我们图文并茂地介绍了 Servlet 的生命周期与执行流程,清晰展现