黑马程序员技术交流社区

标题: 【成都校区】 day27javaweb核心 [打印本页]

作者: 你自己高兴就好    时间: 2019-5-9 13:36
标题: 【成都校区】 day27javaweb核心
day27javaweb核心
         Tomcat&Servlet
                 web相关内容回顾
                         软件架构
                                 C/S
                                         客户端/服务器
                                 B/S
                                         浏览器/服务器
                         资源分类
                                 静态资源
                                         所有用户访问后得到的结果都是一样的。如html css  JavaScript
                                 动态资源
                                         每个用户访问相同资源后,得到的结果可能不一样,如servlet/jsp,php,asp……
                                                 客户通过浏览器中地址栏,输入域名,访问对象的网址,浏览器会将请求传输给服务器,客户访问的资源有两种,一种是静态资源,一种是动态资源; 如果客户访问的是静态资源,则服务器会响应请求,直接将静态资源返回给浏览器,浏览器收到静态资源,会用浏览器自带的静态资源解析器进行解析展示在网页上; 如果客户访问的是动态资源,则浏览器会响应请求,先将动态资源转为静态资源,再按照静态资源的方式返回给浏览器
                         网络通信三要素
                                 IP
                                         电子设备在网络中的唯一标识
                                 端口
                                         应用程序在计算机中的为欸一标识  0~65536,自己写端口号不要写1024以内的端口号
                                 传输协议
                                         规定了数据通信(传输)的规则
                                         基础协议:tcp协议(安全可靠,三次握手)速度稍慢         udp:不安全协议,速度快
                 Tomcat(8.0版本) web服务器软件
                         什么是服务器
                                 安装了服务器软件的计算机
                         服务器软件
                                 接收用户的请求,处理请求,做出响应
                         web服务器软件
                                 在web服务器软件中,可以部署web项目,让用户通过浏览器来访问项目;例如html主页,css资源等放在web服务器软件中,让客户通过浏览器访问到这些项目 web服务器软件又称为web容器
                                 常见的Java相关的web服务器软件
                                         webLogic: oracle公司的,大型的JavaEE服务器,支持所有的JavaEE规范,收费的
                                         webSpghere:IBM公司,大型的JavaEE服务器,支持所有的JavaEE规范,收费的
                                         JBOSS:JBOSS公司的,大型的JavaEE服务器,支持所有的JavaEE规范,收费的
                                         Tomcat:Apache基金组织的,中小型JavaEE服务器,仅仅支持少量的JavaEE规范 ;开源的,免费的。
                                         JavaEE:Java语言在企业级开发中使用的技术规范的总和,一共规定了13项大的规范
                         tomcat软件
                                 软件目录结构
                                         bin:可执行文件
                                         conf:配置文件
                                         lib:依赖jar包
                                         logs:日志文件
                                         temp:临文件
                                         webapps:存放web项目
                                         work:存放运行时的数据
                                 启动
                                         bin目录-startup.bat文件,双击运行,开启tomcat软件,在不关闭的情况下,在浏览器中输入:http://127.0.0.1:8080;(8080是tomcat默认的端口号)或者http://localhost:8080
                                         启动中可能遇到的问题
                                                 1.黑窗口一闪而过
                                                         原因:没有正确配置JAVA_HOME环境变量: 解决方法:正确配置JAVA_HOME环境变量
                                                 2.启动报错
                                                         原因:端口号被占用 解决方法: 1.找到占用的端口号,并且找到对应的进程,杀死该进程         在dos窗口中输入netstat  -ano | findStr "8080"  在本地地址栏中找到结尾是8080的一行, 记住其PID,打开资源管理器,在上方菜单栏中选择查看——选择列,将PID勾选,再查询刚刚记住的PID,找到之后右键结束进程 2.修改本身程序的端口号 在安装目录中找到conf目录,找到server.xml,找到 port="8080",下面还有一个 8443   ,还有其他的端口号,都修改就可以了,不建议这样解决
                                 关闭
                                         正常关闭
                                                 在bin目录中点击shutdown.bat
                                                 2.在启动的窗口按ctrl+c 关闭
                                         强制关闭 不推荐
                                                 点击启动窗口的x
                                         后期会用集成开发软件进行tomcat的启动和关闭
                         配置(部署项目的方式)
                                 1.直接将项目放到webapps目录下,访问的时候在端口号后面加“/项目的虚拟路径” 简化部署:将项目打成一个war包,放在webapps目录下,会自动解压缩 缺点:需要拷贝
                                 2.配置conf/server.xml文件 在<Host>标签体中配置 <Context docBase="D:\hello" path="/hehe" /> * docBase:项目存放的路径 * path:虚拟目录
                                 3.3. 在conf\Catalina\localhost创建任意名称的xml文件。在文件中编写         <Context docBase="D:\hello" />         * 虚拟目录:xml文件的名称
                         静态项目和动态项目
                                 Java动态项目的目录结构:
                                         -- 项目的根目录         -- WEB-INF目录:                 -- web.xml:web项目的核心配置文件                 -- classes目录:放置字节码文件的目录                 -- lib目录:放置依赖的jar包
                         将tomcat集成到IDEA中,创建JavaEE的项目,部署项目 (很重要)
                 Servlet入门学习 (server applet)
                         概念
                                 运行在服务器端的小程序; Servlet就是一个接口,定义了Java类被浏览器访问到(tomcat识别)的规则
                         servlet执行原理
                                 用户在浏览器中输入一个url地址的时候,例如http://localhost:8080/ServletDemo01/demo02,首先服务器会通过地址的IP和端口号(localhost:8080)可以找到网络上的具体的某个主机和应用程序,比如8080就找到了tomcat这个程序,接着通过后面的虚拟目录(/ServletDemo01)找到tomcat下面部署的项目,然后再根据后面的资源路径(/demo02),tomcat会进行一个解锁的操作,会去web项目的核心配置文件web.xml里面去找<url-pattern>里面有没有一个demo02的,接着找到通过映射中的<servlet-class>去找到一个类的全类名,接着将全类名对应的类的字节码文件加载进内存,创建对象,然后调用这个类中的server方法,因为这个类实现了servlet接口,就必须要重写servlet中的抽象方法,抽象方法中就有service方法,所以tomcat知道这个类中一定会有service方法,所以在service中的代码会被执行
                         servlet生命周期
                                 servlet的方法
                                         innt方法:初始化方法;在servlet被创建时执行,只会执行一次
                                         service方法:提供服务方法;每一次servlet被访问时执行,会执行多次
                                         destroy方法:销毁方法;在服务器正常关闭时执行,只会执行一次;
                                         servletConfig:servlet的配置对象 返回servletConfig
                                         getservletinfo:获取servlet一些信息,如版本,作者等……
                         生命周期的详解
                                 init
                                         servlet什么时候被创建:默认情况下,第一次被访问时,servlet被创建;可以配置指定servlet的创建时机, 在<servlet>标签下配置,<load-on-startup>参数</load-on-startup> 服务器启动时创建,参数为负数,则第一次访问被创建,默认-1,如果时正数或者0(一般给0~10之间);则服务器启动时创建
                                         init方法只执行一次说明一个servlet在内存中只存在一个对象,servlet是单例(有且仅有一个对象)的; 多个用户同时访问时可能存在线程安全问题, 解决方法:尽量不要在servlet中不要定义成员变量。即使要定义成员变量,也不要对其修改值;
                                 service方法
                                         每次访问都被调用一次
                                         每请求一次,tomcat会为创建一个新的线程,在这个线程中调用service()方法
                                 destroy
                                         服务器关闭时,servlet被销毁,前提时正常关闭才执行,一般用于释放资源
                         servlet注解配置
                                 创建JavaEE项目,选择servlet的版本3.0以上,就可以不创建web.xml
                                 定义一个类,实现Servlet接口,覆写方法
                                 在类的上面使用@WebServlet注解,进行配置 @WebServlet("资源路径")





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2