A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 庞帅 初级黑马   /  2018-5-21 14:58  /  667 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

Tomcat
【软件的架构】
C/S架构的软件:
* Client / Server 客户端和服务器端的软件. 都是需要在PC端安装的软件. 比如 QQ,迅雷,暴风...
* 优点:效果炫,一部分代码写到客户端(速度快).
* 缺点:服务器端更新,客户端都需要更新.
B/S架构的软件:
* Browser / Server 浏览器端和服务器端的软件. 不需要安装到PC端,只需要有一个浏览器即可. 比如 京东,网银,WEBQQ,WEB迅雷...
* 优点:服务器端更新,客户端浏览器不需要进行更新.
* 缺点:效果不炫,所有的代码运行都在服务器端,导致服务器压力过大.
    * 效果:使用HTML5,CSS3可以做出很炫效果.
    * 服务器端压力:搭建服务器的集群.而且还有AJAX技术.
WEB的资源】
静态资源:
* HTML,CSS,JS,图片...
动态资源:
* PHP:
* ASP:
* Servlet/JSP:
【服务器】
硬件:其实就是一台配置很高的电脑.
软件:必须在一台电脑上安装服务器软件.这台电脑称为是WEB服务器.
【常见WEB服务器】
Apache:发布PHP的.LAMP:Linux Apache MySQL PHP.
IIS:发布ASP的.
(面试加分项)
WebSphere:IBM公司研发,收费的大型服务器软件,支持EE的所有的开发规范.
WebLogic:BEA公司研发,收发的大型服务器软件,支持EE的所有的开发规范.
Tomcat:Apache组织研发,免费的小型的服务器软件,支持Servlet/JSP的开发规范.
JBoss:
WEB动态资源目录结构】
2.5规范的:
website
    |-----静态资源
    |-----WEB-INF
                |-----web.xml:必须的
                |-----classes:可选的
                |-----lib:可选的
Tomcat的安装:
【下载Tomcat】
【了解Tomcat的目录结构】
* bin:tomcat的执行的文件.
* conf:tomcat的配置文件.
* lib:tomcat运行的需要的jar包.
* logs:tomcat的运行的日志文件.
* temp:tomcat产生临时文件存放的路径.
* webapps:tomcat发布的web项目的路径.
* work:tomcat运行JSP的时候,JSP翻译成Servlet的代码存放的路径.
发布一个WEB项目到Tomcat中.
发布一个WEB工程到Tomcat中共有三种方式:
* 1.直接将工程copy到tomcat/webapps下.
* 2.配置tomcat虚拟路径:
* 3.配置tomcat虚拟路径:
【方式一:直接将项目copy到webapps下】
* 将工程复制到webapps即可.
【方式二:配置tomcat的虚拟路径-不推荐】
* 在tomcat/conf/server.xml文件中进行配置:
* 在<Host>标签下配置:
    * <Context path="/itheima" docBase="C:/website"/>
【方式三:配置tomcat的虚拟路径-官方推荐】
* 在tomcat/conf/Catalina/localhost/xxx.xml
* 配置<Context docBase="C:/website"/>
* xxx作为虚拟路径的名称.
Tomcat常见问题:
【没有配置JAVA_HOME引发tomcat一闪消失】
* 一定要配置JAVA_HOME环境变量.
【端口号冲突的问题】
* 一种:将占用端口的应用结束.
    * netstat -ano
    * 打开任务管理器结束:
* 二种:修改自身应用的端口号.
    * tomcat/conf/server.xml
Servlet
协议:
* 什么是协议:规定双方需要遵守的规则.
HTTP协议:
* HTTP协议:用来规定浏览器与服务器之前需要遵守的规则.
HTTP协议的作用:规范浏览器和服务器之间的数据传递.
HTTP协议的特点:
* 基于请求和响应的模型.
* 必须先有请求后有响应.
* 请求和响应必须成对出现.
* 默认的端口号是80.
HTTP协议的版本:
* 1.0:每次响应后即刻关闭了连接.
* 1.1:现在使用.不是每次响应后挂断,等待长时间以后没有请求会挂断.
HTTP协议的详解】
请求部分
* 请求行
    * 提交方式:
* 提交方式有很多,常用的GET和POST:
        * GET和POST的区别:
            * GET的提交的参数会显示到地址栏上,而POST不显示.
            * GET往往是有大小限制的,而POST没有大小的限制.
            * GET没有请求体,而POST有请求体.
    * 提交路径:
    * 协议版本:
* 请求头
    * 都是键值对的形式显示的.一般一个key对应一个value,也有个别的是一个key对应多个value.
* User-Agent                                :代表浏览器的类型. --- 文件下载:下载中文文件:IE使用URLEncodor进行编码,而Firefox使用Base64编码.
    * Referer                                :代表的是网页的来源. --- 防盗链.
    * If-Modified-Since                :通常与响应中的头Last-Modified一起使用查找本地缓存.
* 请求体
    * 就是POST提交方式的提交的参数.
响应部分
* 响应行:
    * 协议版本
    * 状态码
* 200        :成功
        * 302        :重定向
        * 304        :查找本地缓存
        * 404        :资源不存在
        * 500        :服务器内部错误
    * 状态码描述
* 响应头:键值对,一般一个key对应一个value,也有一个key对应多个value.
* Last-Modified :与请求中的If-Modified-Since一起使用查找本地缓存.
    * Content-Dispostion        :文件下载的时候使用的一个头信息.
    * Location                        :重定向的跳转的路径.
    * Refresh                                :定时刷新/定时跳转.
* 响应体:显示浏览器的页面的内容.
【使用ServletRequest接收参数】
* String getParameter(String name):用于接收一个名称对应一个值的数据.
* String[] getParameterValues(String name):用于接收一个名称对应多个值的数据.
* Map getParameterMap():用于接收表单中的所有的数据,Map的key是表单提交的参数名称,Map的value是提交参数的值.
* Enumeration getParameterNames():用于获取表单中提交的所有的参数的名称.
Servlet的实现的关系】
Servlet:接口
   |
GenericServlet:通用的Servlet
   |
HttpServlet:HttpServlet
* 编写一个类继承HttpServlet,重写doGet和doPost方法.
* 配置
Servlet的生命周期:(*****)
生命周期:就是一个对象从创建到销毁的过程.(面试)
Servlet生命周期:Servlet从创建到销毁的过程.
* 何时创建:用户第一次访问Servlet创建Servlet的实例
* 何时销毁:当项目从服务器中移除的时候,或者关闭服务器的时候.
用户第一次访问Servlet的时候,服务器会创建一个Servlet的实例,那么Servlet中init方法就会执行.任何一次请求服务器都会创建一个新的线程访问Servlet中的service的方法.在service方法内部根据请求的方式的不同调用doXXX的方法.(get请求调用doGet,post请求调用doPost).当Servlet中服务器中移除掉,或者关闭服务器,Servlet的实例就会被销毁,那么destroy方法就会执行.
Servlet的相关的配置:
【启动时创建Servlet】
Servlet默认是在第一次访问的时候创建的.现在让Servlet在服务器启动的时候创建好.进行对Servlet的配置:
在web.xml中在<servlet></servlet>标签中配置:
* <load-on-startup>2</load-on-startup> --- 传入正整数,整数越小,被创建的优先级就越高.
有一些资源初始化很耗时
第一次访问的时候初始化资源耗时,以后访问都无需再初始化,
把这个耗时的操作放在服务器启动的时候
【url-pattern的配置】
url-pattern配置方式共有三种:
完全路径匹配:以 / 开始  例如:/ServletDemo4,/aaa/ServletDemo5 , /aaa/bbb/ServletDemo6
目录匹配          :以 / 开始 需要以 * 结束.例如: /* ,/aaa/* ,/aaa/bbb/*
扩展名匹配  :不能以 / 开始 以 * 开始的. 例如: *.do , *.action
***** 错误的写法: /*.do
如果访问地址:
***** 完全路径匹配 > 目录匹配 > 扩展名匹配
// 解决向页面输出中文的乱码问题!!!
response.setContentType("text/html;charset=UTF-8");
开发中的路径的编写:
相对路径:都是需要找位置相对关系.不能以 / 开始的.
* ./ 当前路径  ../上一级目录
* 使用相对路径访问:
    * http://localhost:8080/day09/ServletDemo6
绝对路径:不需要找位置相对关系. 以 / 开始的.
* 绝对路径中分为客户端路径和服务器端路径:
    * 客户端路径一定要加工程名./day09/ServletDemo6
    * 服务器端路径不需要加工程名./ServletDemo6
【使用Http协议中的Refresh头信息】
Refresh之前已经介绍可以定时页面跳转.需要使用程序设置头信息才可以.
【response中设置响应头】
* addHeader(String name,String value);--针对一个key对应多个value的响应头.
    * addDateHeader(String name,long date);
    * addIntHeader(String name,int value);
* setHeader(String name,String value);--针对一个key对应一个value的响应头.
    * setDateHeader(String name,long date);
    * setIntHeader(String name,int value);
例如:头信息: xxx:aaa
    * addHeader(xxx,bbb);-->xxx:aaa,bbb
    * setHeader(xxx,bbb);-->xxx:bbb
ServletContext对象】
在servlet类中获得ServletContext对象
***** ServletContext对象存取数据,存的数据都是有一定的作用的范围的.这种对象称为是域对象.
* 用来存取数据:
Void setAttribute(String name,Object object)
* 用来向ServletContext中存入数据.
Object getAttribute(String name)
* 用来从ServletContext中获取数据.
Void removeAttribute(String name)
* 用来从ServletContext中移除数据.
总结:
ServletConfig:了解.获得Servlet的配置信息.
* String getServletName();获得Servlet在web.xml中配置的name的值.
* String getInitParameter(String name);获得Servlet的初始化参数的.
* Enumeration(枚举:是一个接口) getInitParameterNames();获得所有Servlet的初始化参数的名称.
ServletContext:重要
作用域最大
ServletContext的作用:
* 1.用来获得全局初始化参数.
* 2.用来获得文件的MIME的类型.
* 3.作为域对象存取数据.
ServletContext是一个域对象.
    * 作用范围:整个web工程.
    * 创建:服务器启动的时候,tomcat服务器为每个web项目创建一个单独ServletContext对象.
    * 销毁:服务器关闭的时候,或者项目从服务器中移除的时候.
* 4.用来读取web项目下的文件.
【使用ServletContext对象读取WEB项目下的文件】
* InputStream getResourceAsStream(String path); --- 根据提供路径读取文件返回一个文件的输入流.
* String getRealPath(String path); --- 返回一个路径的磁盘绝对路径.
读取数据:
getResourceAsStream:
getRealPath:
【功能一:读取全局初始化参数】
【功能二:获得文件的MIME的类型】
* 获得文件的MIME的类型.
类加载器读取文件

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马