Tomcat
1,软件的架构:
Client/Server 客户端和服务器端的软件,都是需要在PC端的软件,如
QQ。迅雷,暴风等。。。
优点:效果炫,一部分代码写到客户端(速度快);
缺点:服务器端更新,客户端都需要更新。
Browser/Server :浏览器端和服务端的软件,不需要安装PC端,只要有一个
浏览器即可,如:京东,网银WEBQQ,WEB迅雷等
优点:服务器端更新,客户端浏览器不需要进行更新
缺点:效果不炫,所有代码都在服务端,导致服务器压力过大。
效果:使用HTMLS,CSS3可以做出很炫的效果。
服务器端压力:搭建服务器的集群,而且还有AJAX技术。
2,WEB的资源:
- 静态页面:HTML,CSS,JS,图片,,,
- 动态资源:
PHP
ASP
Servlet/JSP:
3,服务器
- 硬件:其实就是一台配置很高的电脑
- 软件:必须在一台电脑上安装服务器软件,这台电脑称为是WEB服务器
4,常见WEb服务器(中间件):
- Apsche:发布PHP的。
- IIS:发布ASP的。
- WebSphere:IBM公司研发,收费的大型服务器软件,支持EE的所有
的开发规范.
- WebLogic:BEA公司组织研发,收费的大型服务器软件,支持EE的所
有的开发规范。
- Tomcat:Apache组织研发,免费的小型的服务器软件,支持
Eervlet/JSP的开发规范。
5,WEB动态资源目录结构
|-------静态资源
|-------WEB-INF
|------web.xml(必须有,项的配置)
|------classes
|------lib(用到的第三方东西(jar包)等要引入的东西的时
候要用)
6,Tomcat目录结构(.bat 在wendows执行 .sh是linux执行):
- bin:执行文件。
- conf: tomact配置文件
- lib: tomact运行需要的jar包
- logs: tomact运行的日志文件
- temp: tomact产生临时文件的存放路径
- webapps: tomact发布的web项目路径
- work: tomact运行JSP的时候,JSP翻译成Servlet的代码存放的路径。
- backup:备份软件。
7,发布一个WEB项目到Tomcat中(三种方式)
- 1,直接将工程copy到tomcat/webapps下,
- 2,配置tomcat虚拟路径(修改核心文件,不推荐)。
在tomcat/conf/server.xml文件中间配置
在tomcat/conf/Catalina/localhost/xxx.xml
配置<Context docBase=";路径“/>
8,Tomcat运行常见问题
- 没有配置JAVA_HOME引发tomcat一闪而消失。
- 端口号冲突问题:
1,将占用的端口的应用结束。
netstat -ano(查看占用这个端口的软件)
打开任务管理器结束这个端口
2,修改自身的端口号,
Servlet
1,HTTP协议:
什么是协议:规定双方需要遵守的规则。
HTTP协议:用来规定浏览器与服务器之间需要遵守的规则。
HTTP协议作用:规范浏览器和服务器之间的数据传递。
HTTP协议特点:
HTTP协议版本:
- 1.0 :每次响应后即刻关闭了连接.
- 1.1 :现在使用.不是每次响应后挂断,等待长时间以后没有请求会挂断.
2,HTTP协议的详解:
提交方式有很多,常用GET和POST,两者区别:
1,get的提交的参数会显示到地址栏上,而POST不显示
2,GET往往是有大小限制的,而POST没有大小显示
3,GET没有请求体,而POST有请求体。
- 请求头(中间部位)
- 都是键值对形式显示的,一般一个key对应一个value,也有个别的是一个key对象
多个value
- User-Agent:代表浏览器的类型。----文件下载:下载中文件:
- Referer :代表的是网页的来源。----防盗链。
- If-Modified-Since:通常与响应中的头Last-Modified一起使用查
找本地缓存。
:就是Post提交方式的参数(get没有此项)
- 响应部分
- 响应行
- 协议版本
- 状态码:
- 200:成功
- 302:重定向(结合响应头location来用)
- 304:查找本地缓存
- 404:资源不存在
- 500:服务器内部错误
- 状态码描述
- 响应头:键值对,一般一个key对应一个value,也有个别的是一个key对象多个value
- Last-Modified: 与请求中的If-Modified-Since 一起使用查找本地缓存。
- Content-Dispostion:文件下载的使用的一个头信息。
- Location:重定向的跳转的路径
- Refresh:定时刷新/定时跳转。
- 响应体:显示浏览器的页面的内容。
3,Servlet概念:
- 概念:就是一个运行在WEB服务器 删改的小的JAVA程序,用来接
受和响应从客户端发送过来的请求,通常使用HTTP协议。是
SUN公司提 供的一个动态网页开发技术。
- 作用:用来处理从客户端浏览器发送的请求,并且可以对请求作出
相应
- 使用Servlet:
- 编写一个类实现Servlet接口
- 将编写的这个类配置到服务器中。
4,Servlet的实现的关系:
Servlet :接口
|
GenericServlet :通用的Sevrlet
|
HttpServlet :HttpServlet
5,ServletRequest接受参数API:
*String getParameter (String name) 用于接受一个名称对应一个值的数据
*String[] getParameterValue(String name) 用于接受一个名称对应多个值的数据
*Map getParameterMap(); 用于接受表单中的所有的数据,Map的key是表单提交的参数名称,Map的value是提交的参数的值
Enumeration getParmeterNames() 用于获取表单中提交的所有的参数的名称
6,总结:
Servlet生命周期:
- Servlet的生命周期:就是一个对象从创建到销毁的过程。
- Servlet生命周期就是它从创建到销毁的过程。
何时创建:用户第一次访问Servlet创建Servlet的实例
何时销毁:当项目从服务器中移除,或者关闭服务器的时候
- 用户第一次访问Servlet的时候,服务器会创建一个Servlet的实例,那么Servlet中init方法就会执行,任何一次请求服务器都会创建一个新的线程访问Servlet中的servlet方法,在Servlet方法内部根据请求的方式不同调用doxxx的方法,(get请求调用doGet,post请求调用doPost)。当Servlet中服务器中移除,或者关掉服务器,Servlet的实例就会被销毁,那么destroy方法就会执行。Servlet是单例的,整个过程有且只有一个
Servlet的相关配置:
Servlet默认是在第一次被访问的时候创建的,现在让Servlet在服务器启动的时候创建好,进行对Servlet的配置;
<load-on-startup>2</load-on-startup>------传入正整数,数值越小被创建的优先级越高
例如: /ServletDemo4 , /aaa/ServletDemo5 , /aaa/bbb/ServletDemo6
例如: /* ,/aaa/* ,/aaa/bbb/*
例如: *.do , *.action
优先级:完全路径匹配>目录匹配>扩展名匹配
有一些资源需要初始化很耗时:
第一次访问的时候初始化资源(耗时)
7,开发中的路径的编写:
- 相对路径:都是需要找位置相对的关系,不能以 / 开始
- 绝对路径(分客户端路径和服务端路径):不需要找位置相对关系,以 / 开始的。
8,addHeader(String key,String value);-------针对一个key对应多个value的响应头
- addDateHeader(String name , long date)
- addIntHeader(String name, int value)
setHeader(String key,String value);-------针对一个key对应一个value的响应头
- setDateHeader(String name , long date)
- setInheader(String name , int value)
9,ServletContext对象(用来存储数据 (重要)):
setAttrubute :用来想ServletContext中存入数据。
getAAtubute:用来从Servletcontext中获取数据
removeAttribute:用来从Servletcontext移除数据。
ServleContext是一个域对象。
作用范围:整个web工程
创建:服务器启动的时候,tomcat服务器为每个web项目创建一个单独的ServletContext对象。
销毁:服务器关闭的时候,或者项目从服务器中移除的时候。
ServletContext作用:
1,用来获得全局初始化参数
2,用来获得文件的MIME的类型
3,作为域对象存储数据
单例秘模式不能定义变量属性, 多线程进行访问抢夺资源容易引发隐患
10,ServletConfig:获得配置信息
String getServletName();获得Servlet在web.xml中配置的name值。
String getInitParameter(String name);获得Servlet的初始化参数
Enumeration getInitPArameterNames();获得所有Servlet的初始化参数的名称
11,ServletContext的作用:
* 1.用来获得全局初始化参数.
* 2.用来获得文件的MIME的类型.
* 3.作为域对象存取数据.
ServletContext是一个域对象.
* 作用范围:整个web工程.
* 创建:服务器启动的时候,tomcat服务器为每个web项目创建一个单独ServletContext对象.
* 销毁:服务器关闭的时候,或者项目从服务器中移除的时候.
* 4.用来读取web项目下的文件.
|
|