• JavaWeb


    考:
    博客笔记
    B站狂神

    1、基础概念

    静态web:html、css。给人看的数据始终不会发生改变。(数据无法持久化,用户无法交互)
    动态web:①、淘宝、几乎所有网站;
    ②、给人看的数据始终会发生改变;
    ③、技术栈Servlet/JSP、ASP、PHP
    在Java中,动态web资源开发的技术统称为JavaWeb。
    Web应用程序,可以提供浏览器访问的程序。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    2、web服务器讲解

    2.1、流行服务器技术种类

    2.1.1、ASP

    ①、微软:国内最早流行的就是ASP
    ②、在html中嵌入了VB的脚本,ASP+COM
    ③、在ASP开发中,基本一个页面都是几千行的业务代码,页面极其乱
    ④、维护成本高
    ⑤、C#
    ⑥、IIS

    2.1.2、PHP

    ①、PHP开发速度很快,功能很强大,跨平台,代码很简单
    ②、无法承载大访问量的情况(局限性)

    2.1.3、JSP/Servlet:

    B/S:浏览器和服务器
    C/S:客户端和服务器
    ①、sun公司主推的B/S架构
    ②、基于java语言的(所有的发送四,或者一些开源的组件,都是用java写的)
    ③、可以承载三高(高并发、高性能、高容量)问题带来的影响
    ④、语法像ASP

    2.2、Tomcat

    Tomcat官网
    在这里插入图片描述
    核心配置文件:conf/server.xml
    1)、可以配置端口号:
    tomcat的默认端口为:8080
    mysql默认端口:3306
    http默认端口:80
    https默认端口:443

    2)、可以配置主机的名称
    默认的主机名为:localhost — 127.0.0.1
    默认网站应用存放的位置为webapps

    3)、高难度面试题:
    请你谈谈网站是如何进行访问的?
    输入一个域名;回车
    检查本机的配置文件C:\Windows\System32\drivers\etc\hosts下有没有这个域名的映射
    有:直接返回对应的ip地址,这个地址中,有我们需要放的web程序,可以直接访问
    没有:去DNS服务器找,找到的话就返回,找不到就返回找不到
    在这里插入图片描述

    2.2.1、网站应该有的结构

    在这里插入图片描述

    3、Http

    超文本传输协议(Hyper Text Transfer Protocol,HTTP)是一个简单的请求-响应协议,它通常运行在TCP之上。

    3.1、Http请求

    比如百度首页的请求:

    Request URL: https://www.baidu.com/    请求地址
    Request Method: GET     get方法/post方法
    Status Code: 200 OK     状态码:200
    Remote Address: 14.215.177.38:443
    
    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
    Accept-Encoding: gzip, deflate, br
    Accept-Language: zh-CN,zh;q=0.9
    Cache-Control: no-cache
    Connection: keep-alive
    Cookie: BIDUPSID=E915D8DAC0FCA4159DF81414176EBD43; PSTM=1618281055; BAIDUID=E915D8DAC0FCA415F0B2ABB582D30135:FG=1; __yjs_duid=1_042d578ea86bfb698f35ffbf7e97f5ff1619488718760; BAIDUID_BFESS=E915D8DAC0FCA415F0B2ABB582D30135:FG=1; COOKIE_SESSION=16414_3_8_4_7_1_1_0_7_1_0_0_16416_0_3_0_1625410778_1625394325_1625410775%7C9%2379260_3_1625394323%7C2; BD_LAST_QID=9581266030928333830
    Host: www.baidu.com
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    3.1.1、请求行

    • 请求行中的请求方式:GET
    • 请求方式:**GET,POST,**HEAD,DELETE,PUT,TRACT…

    get:请求能够携带的参数比较少,大小有限制,会在浏览器的URL地址拦显示数据内容,不安全,但是高效
    post:请求能都携带的参数没有限制,大小没有限制,不会再在浏览器的URL地址拦显示数据内容,安全,但是不高效。

    3.1.2、消息头

    Accept: 高速浏览器,它所支持的类型
    Accept-Encoding: 支持哪种编码格式  GBK  UTF-8 GB2312  ISO8859-1
    Accept-Language: 告诉浏览器,它的语言环境
    Cache-Control: 缓存控制
    Connection: 告诉浏览器,请求完成是断开还是保持连接
    Host:主机
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    3.2、响应

    百度首页例子:

    Cache-Control: private                 缓存控制
    Connection: keep-alive                 连接保持
    Content-Encoding: gzip                 编码
    Content-Type: text/html;charset=utf-8  类型
    
    • 1
    • 2
    • 3
    • 4

    3.2.1、响应体

    Accept: 高速浏览器,它所支持的类型
    Accept-Encoding: 支持哪种编码格式  GBK  UTF-8 GB2312  ISO8859-1
    Accept-Language: 告诉浏览器,它的语言环境
    Cache-Control: 缓存控制
    Connection: 告诉浏览器,请求完成是断开还是保持连接
    Host:主机
    Refresh:高速客户端,多久刷新一次
    Location:让网页重新定位
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    3.2.2、响应码

    • 200:请求响应成功
    • 3xx:请求重定向
      重定向:你重新到我给你的新位置去
    • 4xx:找不到资源 404
      资源不存在
    • 5xx:服务器代码错误 500 502(网关错误)

    4、maven

    在javaweb开发中,需要使用大量的jar,我们手动去导入;
    Maven自动帮我导入和配置这个jar包。
    Maven的核心思想:约定大于配置
    官网:https://maven.apache.org/
    仓库地址:https://mvnrepository.com/

    4.1、环境变量配置

    • M2_HOME maven目录下的bin目录
    • MAVEN_HOME maven的目录
    • 在系统的Path中配置%MAVEN_HOME%/bin

    (M2_HOME ,有说是maven2及以上新版要用,有说是Spring等框架要用。)
    测试Maven是否安装成功:(cmd)mvn -version

    4.2、配置文件

    apache-maven-3.6.1\conf\settings.xml

    4.2.1、国内镜像

    阿里云镜像

        <mirror>
    	  <id>nexus-aliyunid>
    	  <mirrorOf>*,!jeecg,!jeecg-snapshotsmirrorOf>
    	  <name>Nexus aliyunname>
          <url>http://maven.aliyun.com/nexus/content/groups/publicurl> 
        mirror>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    4.2.2、本地仓库

    在本地的仓库,建立一个本地仓库。
    D:/mavenRepository

    5、idea中使用maven

    5.1、创建maven项目

    5.1.1、创建普通java项目

    new Project、右边选maven、取消使用模板
    在这里插入图片描述

    5.1.2、创建javaweb项目

    ①、new project
    在这里插入图片描述
    ②、等待项目初始化完毕
    在这里插入图片描述
    ③、可以选择导入源码
    在这里插入图片描述

    5.2、设置项目结构

    使用idea标记文件夹功能。
    参考maven标准结构,标记下各类型文件夹。
    在这里插入图片描述

    两种方法:
    ①、右键项目;
    ②、在项目结构中设置。
    在这里插入图片描述
    在这里插入图片描述

    5.3、pom.xml文件

    在这里插入图片描述

    
    
    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
      <modelVersion>4.0.0modelVersion>
    
      
      <groupId>com.zyygroupId>
      <artifactId>javaweb-mavenartifactId>
      <version>1.0-SNAPSHOTversion>
      
      <packaging>warpackaging>
    
      <name>javaweb-maven Maven Webappname>
      
      <url>http://www.example.comurl>
    
      
      <properties>
        
        <project.build.sourceEncoding>UTF-8project.build.sourceEncoding>
        
        <maven.compiler.source>1.8maven.compiler.source>
        <maven.compiler.target>1.8maven.compiler.target>
      properties>
    
      
      <dependencies>
        <dependency>
          <groupId>junitgroupId>
          <artifactId>junitartifactId>
          <version>4.11version>
          <scope>testscope>
        dependency>
      dependencies>
    
      
      <build>
        <finalName>javaweb-mavenfinalName>
        <pluginManagement>
          <plugins>
            <plugin>
              <artifactId>maven-clean-pluginartifactId>
              <version>3.1.0version>
            plugin>
            
            <plugin>
              <artifactId>maven-resources-pluginartifactId>
              <version>3.0.2version>
            plugin>
            <plugin>
              <artifactId>maven-compiler-pluginartifactId>
              <version>3.8.0version>
            plugin>
            <plugin>
              <artifactId>maven-surefire-pluginartifactId>
              <version>2.22.1version>
            plugin>
            <plugin>
              <artifactId>maven-war-pluginartifactId>
              <version>3.2.2version>
            plugin>
            <plugin>
              <artifactId>maven-install-pluginartifactId>
              <version>2.5.2version>
            plugin>
            <plugin>
              <artifactId>maven-deploy-pluginartifactId>
              <version>2.8.2version>
            plugin>
          plugins>
        pluginManagement>
      build>
    project>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72
    • 73
    • 74
    • 75
    • 76
    • 77

    maven的高级之初在于它会帮你导入这个jar包所依赖的其他jar包

    maven由于他的约定大于配置,我们之后可能会遇到我们写的配置文件,无法被导出或者生效的问题,解决方案:

        
      <build> 
        <resources>
          <resource>
            <directory>src/main/resourcesdirectory>
            <includes>
              <include>**/*.propertiesinclude>
              <include>**/*.xmlinclude>
            includes>
            <filtering>falsefiltering>
          resource>
          <resource>
            <directory>src/main/javadirectory>
            <includes>
              
              <include>**/*.propertiesinclude>
              <include>**/*.xmlinclude>
            includes>
            <filtering>falsefiltering>
          resource>
        resources>
      build>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
  • 相关阅读:
    大厂敲门砖,在阿里工作十年的朋友,总结出这份java面试必看手册
    C语言学习之原码、反码、补码
    Windows下osg+Qt搭建三维开发环境
    力扣第121题 买卖股票的最佳时机 c++ 动态规划解法 熟练dp思维 之简单题 附Java代码
    Debian 11启用大页
    新零售mysql设计(采购表 入库信息表 入库商品表)
    【js&vue】联合gtp仿写一个简单的vue框架,以此深度学习JavaScript
    jvm-类加载步骤
    java计算机毕业设计基于安卓Android的教学考勤系统APP
    Mathtype公式自动转Word自带公式
  • 原文地址:https://blog.csdn.net/weixin_41544662/article/details/128106262