zoukankan      html  css  js  c++  java
  • JavaWeb

    1.Web相关概念回顾

      1.软件架构

        1.C/S:客户端/服务器端

        2.B/S:浏览器/服务器端

      2.资源分类

        1.静态资源:所有用户访问后,得到的结果都是一样的,称为静态资源。静态资源可以直接被浏览器解析

          *如:html、css、Javascript

        2.动态资源:每个用户访问相同的资源后,得到的结果可能不一样。称为动态资源。动态资源被访问后,需要先转换为静态资源,再返回给浏览器。(响应)

          *如:servelet/jsp,php,asp...

      3.网络通信三要素

        1. IP:电子设备(计算机)在网络中的唯一标识

        2. 端口:应用程序在计算机中的唯一标识。0 - 65536

        3. 传输协议:规定了数据传输的规则

          1.基础协议:

            1.tcp:安全协议,三次握手。速度稍慢

            2.udp:不安全协议,速度快

     

     2.web服务器

      * 服务器:安装了服务器软件的计算机

      * 服务器软件:接收用户的请求、处理请求、作出响应

      * web服务器软件:接收用户的请求、处理请求、作出响应

        * 在web服务器软件中,可以部署web项目,让用户通过浏览器来访问这些项目

        * web容器

      * 常见的java相关的web服务器软件:

        * webLogic:oracle公司的,大型的javaEE服务器,支持所有的javaEE规范,收费的。

        * webSphere:IBM公司的,大型的javaEE服务器,支持所有的javaEE规范,收费的。

        * JBOSS:JBOSS公司的,大型的javaEE服务器,支持所有的javaEE规范,收费的。

        * Tomcat:Apache基金组织,中小型的javaEE服务器,仅仅支持少量的javaEE规范,如servlet/jsp。开源的,免费的。

      * javaEE:Java语言在企业级开发中使用的技术规范的总和,一共规定了13项大的规范

      * Tomcat:web服务器软件

        1.下载:https://tomcat.apache.org/

        2.安装:解压压缩包即可

          * 注意:安装目录不要有中文和空格

        3.卸载:删除目录

        4.启动

          * bin/startup.bat,双击运行该文件即可

          * 访问:在浏览器输入:http://localhost:8080 回车访问 输入别人的ip也可以访问别人的tomcat

          *可能遇到的问题

            1.黑窗口一闪而过:

              * 原因: 没有正确的配置JAVA_HOME环境变量

              * 解决: 正确配置环境变量

            2.启动报错

              1.暴力解决:找到占用的端口号,并且找到对应的进程,杀死该进程

                * cmd窗口下输入  : netstat -ano  查找占用8080端口号的程序 并关闭

              2.温柔解决:修改自身的端口号

                * conf/server.xml

                * 一般会将tomcat的默认端口号修改为80。80端口号是http协议的默认端口号

                  * 好处:在访问时,就不用输入端口号

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

        5.关闭

          1.正常关闭:bin/shutdown.bat 或者 ctrl + C

          2.强制关闭:点击启动窗口的X

        6.配置:

          *部署项目的方式:

            1.直接将项目放到webapps目录下即可

              * /hello :项目的访问路径 -  - > 虚拟目录

              * 简化部署:将项目打成一个war包,再将war包放置到webapps目录下

                * war包会自动解压缩

            2. 配置conf server.xml 文件

              *在<host> 标签体中配置

                <Context docBase="项目存放的绝对路径" path="想起的虚拟目录名称" />

            3. 在conf Catalina localhost 创建任意名称的xml文件。在文件中编写(热部署)

              <Context docBase="项目存放的绝对路径" />

              * 虚拟目录:xml的文件名称

          *静态项目和动态项目:

            目录结构:

              * java动态项目的目录结构:

                - - 项目的根目录

                  - - WEB - INF 目录:

                    - - web.xml :web项目的核心配置文件

                    - -  classes目录:放置字节码文件的目录

                    - -  lib目录:放置依赖的jar包

          *将Tomcat集成到IDEA中,并且创建JavaEE项目,部署项目

            * run下 Edit Configuration 然后Tomcat Server部署

    3. Servlet入门 server applet

      * 概念:运行在服务器端的小程序

        * Servlet 就是一个接口,定义了Java类被浏览器访问到(被tomcat识别的)的规则

        * 将来我们自定义一个类,实现Servlet接口,复写方法

      * 快速入门:

        1. 创建javaEE项目

          *记得勾选Web Application

        2. 在src下定义一个类,实现Servlet接口

        3. 实现接口中的抽象方法

        4. 配置Servlet

          在web.xml中配置

        <!-- 配置Servlet-->
        <servlet>
            <servlet-name>demo01</servlet-name>
            <servlet-class>web.servlet.ServletDemo01</servlet-class> //全类名标识文件位置信息 *tomcat通过反射将全类名对于的字节码文件加载进内存 Class.forName();
        </servlet>
    
        <!-- 映射的网址-->    
        <servlet-mapping>
            <servlet-name>demo01</servlet-name>
            <url-pattern>/demo01</url-pattern>
        </servlet-mapping>

       Servlet执行原理:

     文字版:

    4.Servlet的生命周期和方法

      1. 被创建:执行init方法,只执行一次。说明Servlet在内存中只存在一个对象,Servlet是单例的。多个用户同时访问时,可能存在线程安全问题

        * Servlet什么时候被创建?

          * 默认情况,第一次被访问时,Servlet被创建

          * 可以配置执行Servlet的创建时机(在<Servlet标签下配置>)

         *init方法,只执行一次。说明Servlet在内存中只存在一个对象,Servlet是单例的。多个用户同时访问时,可能存在线程安全问题

          解决:尽量不要在Servlet中定义成员变量。即使定义了成员变量,也不要对其修改值

        <servlet>
            <servlet-name>demo01</servlet-name>
            <servlet-class>web.servlet.ServletDemo01</servlet-class>
            <!--
                1.指定Servlet的创建时机
                    1.第一次访问时创建,
                        *<load-on-startup>的值为负数时
                    2.在Tomcat服务器启动时创建,
                         *<load-on-startup>的值为0或正整数数时
            -->
            <load-on-startup>0</load-on-startup>
        </servlet>

     

      2. 提供服务:执行service方法,执行多次

        * 每次访问Servlet时,service方法都会被调用一次

      3. 被销毁:执行destroy方法,只执行一次

        * Servlet被销毁时执行。服务器关闭时,Servlet被销毁

        * 只有服务器正常关闭时才会执行destroy方法

        * destroy方法在Servlet被销毁之前执行,一般用于释放资源

      4. Servlet3.0:

        * 好处:

          *支持注解配置。可以不需要web.xml了

        * 步骤:

          1. 创建JavaEE项目,选择Servlet的版本3.0以上,可以不创建web.xml

          2. 定义一个类实现Servlet接口

          3. 复写方法

          4. 在类上使用@WebServlet注解,进行配置 

            * @webServlet("资源路径")  既配置文件中的urlPattern

     

    5.IDEA与tomcat的相关配置

      1. IDEA会为每一个tomcat部署的项目单独建立一份配置文件

        * 查看控制台的log:Using CATALINA_BASE:   "C:Userslenovo.IntelliJIdea2017.3system omcat\_java_html"

      2. 工作空间项目  和 tomcat部署的web项目

        * tomcat真正访问的是“tomcat部署的web项目”,“tomcat部署的web项目”对应着“工作空间项目”的web目录下的所有资源  

        * WEB-INF目录下的资源不能被浏览器直接访问

        * 断点调试:使用“小虫子”debug启动

  • 相关阅读:
    [分享]解决Ubuntu 16.04安装Vitis 2019.2失败的问题
    ZCU102 休眠到内存(suspend-to-ram)对DDR复位信号的设计
    PetaLinux使用bitbake提前下载所有软件包
    Ubuntu 16.04执行基本命令失败,恢复Python版本后正常
    Upgrade Zynq-7000 XIP reference design to Xilinx SDK 2018.3
    区块链入门到实战(26)之以太坊(Ethereum) – 挖矿
    区块链入门到实战(25)之以太坊(Ethereum) – 以太币单位
    区块链入门到实战(24)之以太坊(Ethereum) – 网络节点
    区块链入门到实战(23)之以太坊(Ethereum) – 虚拟机架构
    区块链入门到实战(22)之以太坊(Ethereum) – 账号(地址)
  • 原文地址:https://www.cnblogs.com/caixiaowu/p/13276569.html
Copyright © 2011-2022 走看看