JavaWeb

发布时间 2023-09-20 20:08:12作者: wolaile1

JavaWeb

1.基本概念

1.1前言

web开发:

  • web, 网页的意思

  • 静态web

    • html,css
    • 提供给所有人看的数据始终不会发生变化!
  • 动态web

    • 淘宝或者其它几乎所有的网站都是用动态web的形式
    • 提供给所有人看的数据始终会发生变化,每个人在不同的事件,不同的地点看到的信息各不相同。

    在Java中,动态Web资源开发的技术统称为javaWeb

1.2、web应用程序

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

  • a.htm、b.html.....多个web资源可以被外界访问,对外界提供服务;

  • 能访问到任何一个页面或者资源,都存在这个时间的某一个角落的计算机上

  • URL

  • 这个从一的web资源会被放在同一个文件夹下,web应用程序---> Tomcat: 服务器

  • 一个web应用由多个部分组成(静态web,动态web)

    • html,css,js
    • jsp,servlet
    • java程序
    • jar包
    • 配置文件(Properties)

    web应用程序编写完毕后,若想提供给外界访问:需要一个服务器来统一管理;

    1.3静态web

    • *.html, *.css,这些都是网页的后准,如果服务器上存在这些东西,我们就可以直接读取

image-20230801153258443

  • 静态web存在的缺点
    • web页面无法动态更新,所有用户看到的都是同一个页面
      • 轮播图,点击效果:伪动态
      • JavaScript【实际开发中,它用的最多】
      • VBScript(微软环境下的轻量级的解释型语言)
    • 它无法和数据库交互(数据无法持久化,用户无法交互)

1.4动态web

页面会动态展示:

image-20230801154326527

缺点:

  • 加入服务器的动态web资源出现了错误,我们需要重新编写我们的后台程序

有点:

  • web页面可以动态更新,用户看到的不是同一个页面
  • 它可以与数据库交互(数据持久化:注册,用户信息)

2、web服务器

2.1技术语言

ASP

ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境,可用来创建动态交互式网页并建立强大的web应用程序。

  • 微软:国内最早流行的。
  • 在HTML中嵌入了VB的脚本,ASP+COM;
  • 早ASP开发中,基本一个页面都有几千行的业务代码,页面机器乱
  • 维护成本高
  • 使用C#语言

PHP

  • PHP开发速度很快,功能很强大,跨平台,代码很简单(国内大约70%网页使用,中小型开发)

  • 无法承载大访问量的情况(局限性)

JSP/Servlet:

B/S:浏览器和服务器

C/S:客户端和服务器

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

2.2web服务器

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

IIS(IIS一般指互联网信息服务。 互联网信息服务(英语:Internet Information Services,简称IIS),是由微软公司提供的基于运行Microsoft Windows的互联网基本服务。)

微软的;ASP.....Windows自带的

Tomcat:

Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。

下载tomcat:

1.安装 or 解压

2.了解配置文件和目录结构

3.这个东西的作用

3.Tomcat

3.1安装tomcat

  1. 下载tomcat压缩包
  2. 解压,完成

启动点击/bin/startup.bat

访问测试:http://localhost:8080

image-20230801162721543

遇到的问题:

  1. Java环境变量没有设置
  2. 闪退问题,需要配置兼容性
  3. 乱码问题:配置文件中设置

3.2配置

image-20230801163641769

可以配置启动的端口号

image-20230801164012376

可以配置主机的名称

image-20230801164049370

高难度面试题:

请你谈谈网站是如何进行访问的。

  1. 输入域名;回车
  2. 检查本机的C:\Windows\System\drivers\etc\hosts配置文件下有没有这个域名映射;
    1. 有:直接返回对应的ip地址,在这个地址中,有我们需要访问的web程序,可以直接访问
    2. 没有:去DNS服务器查找,找到就返回,找不到就返回“找不到”

3.3怎么发布一个网页

模仿 ctrl + c , ctrl + v

image-20230801165729578

4、http

4.1什么是http

HTTP(超文本协议),是一种简单的请求-响应协议,它通常运行在TCP之上。

  • 文本:html、字符串
  • 超文本:图片、音乐、视频、定位、地图
  • 端口:80

Https:安全的(HTTPS (全称:Hypertext Transfer Protocol Secure),是以安全为目标的 HTTP 通道,在HTTP的基础上通过传输加密和身份认证保证了传输过程的安全性。)端口:443

4.2两个时代

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

4.3Http请求

  • 客户端--发请求--服务器
  • image-20230801172432992

4.4Http响应

5、Maven

我为什么要学习这个技术?

1.在JavaWeb开发中,需要使用大量的jar包,我们手动去导入;

2.如何能够让一个东西自动帮我导入和配置jar包。

​ 由此,Maven诞生了

5.1Maven项目架构管理工具

我们目前用来就是方便导入jar包!

Maven的核心思想:约定大于配置

  • 有约束,不要去违反

Maven回归定好你该如何去编写我们的Java代码,必修要按照这个规范来;

安装:下载压缩包,解压就可以用

5.2配置环境变量

image-20230801175426653

5.3、在IDEA中使用Maven

1.启动IDEA

2.创建一个MavenWeb项目

image-20230801182540770

image-20230801182759197

image-20230801184525363

5.4标记文件夹功能

image-20230801184728842

image-20230801190753115

5.5POM文件

image-20230801191359455

image-20230801191427749

MAVENjar包联系关联图

image-20230801192355581

6、Servlet

6.1 简介

image-20230802135258500

6.2 HelloServlet

Servlet接口Sun公司有两个默认的实现类:HttpServlet, GenerServlet

image-20230802141751561

代码

HelloServlet.java

package com.yuan;

import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
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 {
        System.out.println("进入Ddget");
//        ServletOutputStream outputStream = resp.getOutputStream();
        PrintWriter writer = resp.getWriter();//响应流
        writer.print("hello servlet");
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        super.doPost(req, resp);
    }
}

web.xml

image-20230802143302047

image-20230802145217080

6.3 Servlet原理

image-20230802160043858

6.4 Mapping