IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> Javaweb学习笔记 -> 正文阅读

[Java知识库]Javaweb学习笔记

Javaweb

概念

动态web资源开发的技术统称为JavaWeb

web应用程序

web应用程序:可以提供浏览器访问的程序

web应用程序若想提供给外部访问:需要一个服务器统一管理Tomcat;

web应用程序组成:

  • html,CSS,js
  • jsp/servlet
  • Java程序
  • jar包
  • 配置文件(Properties)

动态web

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VNBQq8kY-1638718858450)(JavaWeb概念.assets/image-20211203235107788.png)]

开发技术

ASP:微软,国内最早流行;
php:

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

JSP/Servlet:

  • sun公司主推的B/S架构;
  • 基于Java语言的(所有的大公司,或者一些开源的组件,都是用Java写的);
  • 可以承载三高问题带来的影响;(高并发,高可用,高并行)
  • 语法像ASP;

web服务器

服务器是一种被动的操作,用来处理用户的一些请求和给用户一些响应信息;

IIS:微软的,运行ASP,Windows自带;
tomcat:Apache软件基金,java编写的,轻量级,初学web最佳。运行JSP页面和Servlet。

Tomcat

  1. 安装
  2. 了解配置文件及目录结构
  3. 这个东西的作用

1、目录结构

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QBZovCh2-1638718858451)(JavaWeb概念.assets/image-20211204000343316.png)]

2、启动和配置

启动访问:http://localhost:8080/

配置:server.xml文件

配置端口号

  • tomcat默认端口:8080
  • mysql:3306
  • http:80
  • https:443
    <Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />

主机名称

  • 默认主机名:localhost->127.0.0.1
  • 默认网站应用存放的位置:webapps
      <Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true">

3、发布一个web网站

  • 将自己写的网站,放到Tomcat服务器中指定的web应用文件夹(webapps)下,就可以访问了。

网站是如何进行访问的

  1. 输入一个域名;回车

  2. 检查本机的C:\Windows\System32\drivers\etc\hosts配置文件下有没有这个域名映射;

    1. 有:直接返回对应的ip地址,这个地址中,有我们需要访问的web程序,可以直接访问

      127.0.0.1	localhost
      
    2. 没有:去DNS服务器找,找到的化就返回,找不到就返回找不到

localhost和127.0.0.1的区别

localhot(local)是不经网卡传输!这点很重要,它不受网络防火墙和网卡相关的的限制。

127.0.0.1是通过网卡传输,依赖网卡,并受到网络防火墙和网卡相关的限制。

HTTP

1、Http是什么

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

  • 文本:html,字符串…
  • 超文本:图片,音乐,视频,定位,地图…
  • 80

Https:安全的

  • 443

2、http两个时代

http1.0:HTTP/1.0客户端可以与web服务器连接后,只能获得一个web资源,断开连接;

http2.0:HTTP/1.1客户端可以与web服务器连接后,可以获取多个web资源;

3、Http请求

1、请求行

  • 请求方式:Get,Post,HEAD,DELETE,PUT,TRCT…

2、消息头

百度例子:

General概况

Request URL: https://www.baidu.com/		请求地址
Request Method: GET						请求方法get/post
Status Code: 200 OK						状态码
Remote Address: 14.215.177.39:443		远程地址
Referrer Policy: origin-when-cross-origin

Request Headers请求头

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			告诉浏览器,它支持的编码格式:GBK utf-8 GB2312 io是859-1
Accept-Language: zh-CN,zh;q=0.9				告诉浏览器,它的语言环境
Cache-Control: max-age=0					缓存控制
Connection: keep-alive						告诉浏览器,请求完成是断开还是保持连接
Cookie: BAIDUID=50A354D020AE4E363F6B193397CE5D10:FG=1; __yjs_duid=1_8deec826354462b4964e8656959b22981636727703661; BIDUPSID=50A354D020AE4E363F6B193397CE5D10; PSTM=1636728447; channel=baidusearch; baikeVisitId=d7ef514f-7af5-4de7-9903-0d62a70de219; BAIDUID_BFESS=7D3EAC75153CE930B7A71A0EA68D5FB7:FG=1; BDUSS=XlzOHVsSWtiSFBvODg4RzlSRGpKSHlSRC1VZnRLYXZVQ2lKdEtndjZCUENYc2hoRVFBQUFBJCQAAAAAAAAAAAEAAABvpNwxcWNoNzM2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMLRoGHC0aBhY; BDUSS_BFESS=XlzOHVsSWtiSFBvODg4RzlSRGpKSHlSRC1VZnRLYXZVQ2lKdEtndjZCUENYc2hoRVFBQUFBJCQAAAAAAAAAAAEAAABvpNwxcWNoNzM2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMLRoGHC0aBhY; BD_UPN=12314753; ZD_ENTRY=bing; ab_sr=1.0.1_NjZmNjUxZjUyYjY0NjUzODU0NDhjM2I2ZTczMjNjODAxZWZmZjJkZGQ5ODM2NWIwZWZhMmUyYTA3OGQ4ODAzODVhYmRmYjkyMTFiY2Q1MjY0MDYzYjYyNDllMTcyNWY5YmJhMmE2MDhiNWVlNTk5NTYzNzNhNjc1M2ZhZmM2MmYyMzk5MzhmYTY3NDkwNmJlZGQwY2I1NDYwZGIyOTc2MTE2YjZkMzlkN2I3MjVhZGExMWY2MjNiZGFjNjY0YTZm; BD_HOME=1; H_PS_PSSID=35359_35105_31253_34584_34504_35245_34578_34606_35325_26350_35301; BA_HECTOR=8l258h2g85ak0501hs1gqkinp0q
Host: www.baidu.com
Referer: https://cn.bing.com/
sec-ch-ua: " Not A;Brand";v="99", "Chromium";v="96", "Google Chrome";v="96"
sec-ch-ua-mobile: ?0
sec-ch-ua-platform: "Windows"
Sec-Fetch-Dest: document
Sec-Fetch-Mode: navigate
Sec-Fetch-Site: cross-site
Sec-Fetch-User: ?1
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.45 Safari/537.36

4、http响应

ResponseHeaders响应头

Cache-Control: private					缓存控制
Connection: keep-alive					连接
Content-Encoding: gzip					编码
Content-Type: text/html;charset=utf-8	类型
Date: Fri, 03 Dec 2021 16:51:09 GMT
Expires: Fri, 03 Dec 2021 16:51:09 GMT
Server: BWS/1.1
Set-Cookie: BDSVRTM=303; path=/
Set-Cookie: BD_HOME=1; path=/
Set-Cookie: H_PS_PSSID=35359_35105_31253_34584_34504_35245_34578_34606_35325_26350_35301; path=/; domain=.baidu.com
Strict-Transport-Security: max-age=172800
Traceid: 1638550269025443994618078961669056469914
Transfer-Encoding: chunked
X-Frame-Options: sameorigin
X-Ua-Compatible: IE=Edge,chrome=1

响应体

Accept:text/html		告诉浏览器,它所支持的数据类型
Accept-Encoding: 		告诉浏览器,它支持的编码格式:GBK utf-8 GB2312 io是859-1
Accept-Language:		告诉浏览器,它的语言环境
Cache-Control: 			缓存控制
Connection: 			告诉浏览器,请求完成是断开还是保持连接
Host:					主机
Refresh:				告诉客户端,多久刷新一次
Location:				让网页重新定位

5、响应状态码

状态码含义
200请求响应成功
3xx请求重定向
4xx找不到资源
5xx服务器代码错误

Servlet

简介

  • servlet是sun公司开发动态web的一门技术。

  • sun在这些API中提供了一个Servlet接口,开发一个Servlet程序只需要两步:

    • 编写一个类,实现Servlet接口;
    • 把开发好的Java类部署到web服务器中;

实现Servlet

1、环境

  1. 新建一个maven-web项目
  2. 添加servlet、jsp依赖
  3. web.xml为最新
  4. 目录搭建

2、编写一个Servlet程序

  1. 编写一个普通类

  2. 实现Servlet接口,我们继承HttpServlet,重写get、post方法

    package com.zui.servlet;
    
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import java.io.IOException;
    import java.io.PrintWriter;
    
    public class HelloServlet extends HttpServlet {
        @Override
        protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
            PrintWriter writer = resp.getWriter();// 响应流
            writer.print("holle servlet");
        }
    
        @Override
        protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
            doGet(req,resp); // 业务逻辑一样,请求方式不同直接调用;
        }
    }
    
  3. 编写Servlet的映射

    为什么需要映射:我们写的是Java程序,但是要通过浏览器访问,而浏览器需要连接web服务器,所以我们需要再web服务器中注册我们写的Servlet,还需要给一个浏览器能够访问的路径;

    <?xml version="1.0" encoding="UTF-8"?>
    <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
                          http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
             version="4.0"
             metadata-complete="true">
        <!--注册servlet
            name:服务名字
            class:注册的类
        -->
        <servlet>
            <servlet-name>hello</servlet-name>
            <servlet-class>com.zui.servlet.HelloServlet</servlet-class>
        </servlet>
    
        <!--Servlet的请求路径
            name:请求服务的名字
            pattern:请求路径
        -->
        <servlet-mapping>
            <servlet-name>hello</servlet-name>
            <url-pattern>/hello</url-pattern>
        </servlet-mapping>
    
    </web-app>
    
  4. 配置Tomcat

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BOgjVxPD-1638718858452)(JavaWeb概念.assets/image-20211205182311067.png)]

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xJz3qwBP-1638718858452)(JavaWeb概念.assets/image-20211205201601654.png)]

  5. 启动

Servlet原理

Servlet由web服务器调用的

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Fk9mVo6M-1638718858453)(JavaWeb概念.assets/image-20211205221509188.png)]

mapping

  1. 一个Servlet可以对应一个映射路径
  2. 一个Servlet可以对应多个映射路径

优先级:固有的路径优先级最高,如果找不到走默认的请求

	<!--默认请求路径-->
	<servlet-mapping>
        <servlet-name>hello</servlet-name>
        <url-pattern>/*</url-pattern>
    </servlet-mapping>
	<!--指定一些前后缀-->
	<servlet-mapping>
        <servlet-name>hello</servlet-name>
        <url-pattern>*.abc</url-pattern>
    </servlet-mapping>
  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2021-12-06 15:07:02  更:2021-12-06 15:08:16 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 4:23:49-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码