java web介绍

news2024/11/15 8:45:19

Web

Java 技术栈

  • B/S 架构:Browser/Server,浏览器/服务器架构模式,它的特点是,客户端只需要浏览器,应用程序的逻辑和数据都存储在服务器端。浏览器只需要请求服务器,获取 Wb 资源,服务器把 Wb 资源发送给浏览器即可
    • 好处:易于维护升级:服务器端升级后,客户端无需任何部署就可以使用到新的版本

  • 静态资源:HTML、CSS、JavaScript、图片等。负责页面展现
  • 动态资源:Servlet、JSP 等。负责逻辑处理
  • 数据库:负责存储数据
  • HTTP 协议:定义通信规则
  • Web 服务器:负责解析 HTTP 协议,解析请求数据,并发送响应数据

一.HTTP

  • 概念:HyperText Transfer Protocol,超文本传输协议,规定了浏览器和服务器之间数据传输的规则

  • HTTP 协议特点
  1. 基于 TCP 协议:面向连接,安全
  2. 基于请求-响应模型的:一次请求对应一次响应
  3. HTTP 协议是无状态的协议:对于事务处理没有记忆能力。每次请求-响应都是独立的。
  4. 缺点:多次请求间不能共享数据。 Java 中使用会话技术(Cookie、Session)来解决这个问题优点:速度快
1.请求数据的格式
  • 请求数据分为 3 部分:
  • 请求行:请求数据的第一行。其中 GET 表示请求方式,/表示请求资源路径,HTTP/1.1 表示协议版本
  • 请求头:第二行开始,格式为 key:value 形式。
  • 请求体:POST 请求的最后一部分,存放请求参数
  • 常见的 HTTP 请求头:
    • Host:表示请求的主机名
    • User-Agent:.浏览器版本,例如 Chrome 浏览器的标识类似 Mozilla/5.0 Chrome/79,IE 浏览器的标识类似 Mozilla/5.0(Windows NT)like Gecko;
    • Accept:表示浏览器能接收的资源类型,如 text/*,image/或者/*表示所有;
    • Accept-Language:表示浏览器偏好的语言,服务器可以据此返回不同语言的网页;
    • Accept-Encoding:表示浏览器可以支持的压缩类型,例如 gzip,deflate 等。
  • GET 请求和 POST 请求区别:1.GET 请求请求参数在请求行中,没有请求体。POST 请求请求参数在请求体中 2.GET 请求请求参数大小有限制,POST 没有
2.响应数据格式
  • 响应数据分为 3 部分:
  • 1.响应行:响应数据的第一行。其中 HTTP/1.1 表示议版本,200 表示响应状态码,OK 表示状态码描述 2.响应头:第二行开始,格式为 key:value 形式 3.响应体:最后一部分。存放响应数据
  • 常见的 HTTP 响应头:
    • Content-Type:表示该响应内容的类型,例如 text/html,image/jpeg;
    • Content-Length:表示该响应内容的长度(字节数):
    • Content-Encoding:表示该响应压缩算法,例如 gzip;
    • Cache-Control:指示客户端应如何缓存,例如 max-age=300
    • 表示可以最多缓存 300 秒

2.1 状态码大类

2.2 常见的响应状态码

二.Web 服务器

  • Web 服务器是一个应该程序(软件),对 HTTP 协议的操作进行封装,使得程序员不必直接对协议进行操作,让 Wb 开发更加便捷。主要功能是“提供网上信息浏览服务”

1.Web 服务器作用?封装 HTTP 协议操作,简化开发可以将 web 项目部署到服务器中,对外提供网上浏览服务 2.Tomcat 是一个轻量级的 Web 服务器,支持 Servlet/小 SP 少量 JavaEE 规范,也称为 Web 容器,Servlet 容器

1.Tomcat 简介
  • 概念:Tomcat 是 Apache 软件基金会一个核心项目,是一个开源免费的轻量级 Web 服务器,支持 Servlet/JSP 少量 JavaEE 规范。
  • JavaEE:Java Enterprise Edition,Java 企业版。指 Java 企业级开发的技术规范总和。包含 13 项技术规范:JDBC、JNDl、EJB、RMl、JSP、Servlet、XML、JMS、Java IDL、JTS、JTA、JavaMail、JAF
  • Tomcat 也被称为 Web 容器、Servlet 容器。Servlet 需要依赖于 Tomcat 才能运行
  • 官网:https://tomcat.apache.org/
2.Tomcat 基本使用
  • 下载:官网下载
  • 安装:绿色版,直接解压即可
  • 卸载:直接删除目录即可
  • 启动:双击:bin\startup.bat

  • 关闭:
  • 1.直接×掉运行窗口:强制关闭
  • 2.bin\shutdown.bat:正常关闭
  • 3.Ctrl+C:正常关闭
3.配置
  • 配置

1.修改启动端口号:config/server.xml <Connector port="8080"protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443"/> 注:HTTP 协议默认端口号为 80,如果将 Tomcati 端口号改为 80,则将来访问 Tomcat 时,将不用输入端口号

  • 启动时可能出现的问题:

1.端口号冲突:找到对应程序,将其关闭掉

2.启动窗口一闪而过:检查 JAVA_HOME 环境变量是否正确配置

4.部署项目
  • Tomcat 部署项目:将项目放置到 webapps 目录下,即部署完成
  • 一般 JavaWeb 项目会被打成 war 包,然后将 war 包放到 webapps 目录下,Tomcats 会自动解压缩 war 文件

5.Web 项目结构

5.1IDEA 创建 Maven Web 项目

  • Web 项目结构:

  • 编译后的 ava 字节码文件和 resources 的资源文件,放到 WEB-lNF 下的 classes 目录下
  • pom.xml 中依赖坐标对应的 jar 包,放入 WEB-NF 下的 Iib 目录下
  • 使用骨架

  • 骨架:项目模板

1.选择 web 项目骨架,创建项目

2.删除 pom.xml 中多余的坐标

3.补齐缺失的目录结构

  • 不使用骨架

1.选择 web 项目骨架,创建项目

此处不勾选

2.pom.xml 中添加打包方式为 war

3.补齐缺失的目录结构:webapp

6.IDEA 中使用 Tomcat

6.1 集成本地 Tomcat

  • 将本地 Tomcat 集成到 ldea 中,然后进行项目部署即可

6.2Tomcat Maven 插件

  • pom.xml 添加 Tomcat 插件

  • 使用 Maven Helper 插件快速启动项目,选中项目,右键->Run Maven->tomcat7:run

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/728263.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

如何做好数仓 BI 项目的规划与建设?

BI项目规划和实施方案是保障BI项目顺利落地的首要环节。好的项目规划能有效提升开发人效&#xff0c;缩短项目周期&#xff0c;实现项目预期目标。 构建运营数据的可视化是为企业运营管控提供有效的支撑&#xff0c;成为企业在大数据时代智慧运营的必然路径。 在实际BI项目的…

古典密码之一的Playfair密码的实现

目录 一.古典密码 二.Playfair密码的介绍 三.Playfair密码的实现 1.密钥转大写和密钥去重 2.输入密钥并打印密钥表 2.输入明文并加密为密文 3.输入密文并解密为明文 四.全部代码 一.古典密码 最早的加密方法可以追溯到公元前4000年左右的古代文明时期。埃及人、古希腊…

python解析考试题库数据

应单位要求需要参加某个考试&#xff0c;但考试需要从手机端登陆学习&#xff0c;1000多道题需要挨个刷一遍太过于麻烦&#xff0c;萌生了把题目和答案全部扒下来的想法&#xff0c;再用python做数据的清洗和梳理&#xff0c;最后整合出来所有的考试题库信息。 首先打开浏览器…

Socks5代理是什么?有哪些优势?

在线隐私和⽹络领域&#xff0c;Socks5代理已经成为⼀种受欢迎且强⼤的⼯具。但是Socks5是什么呢&#xff1f;使⽤Socks代理有什么优势&#xff1f;在本⽂中&#xff0c;Oxylabs和你一起探讨这些问题&#xff0c;揭⽰Socks5代理的世界。 深⼊了解Socks5代理 socks&#xff08…

计算机网络 day3 广播风暴 - VLAN - Trunk

目录 广播风暴&#xff1a; 1.什么是广播风暴&#xff1f; 2.危害&#xff1a; 3.防范 STP生成树协议&#xff1a;(72条消息) 生成树协议 — STP_生成树协议步骤_一下子就醒了的博客-CSDN博客 VLAN&#xff1a; VLAN是什么&#xff1f; VLAN起到的作用&#xff1a; 广…

软件测试常见基础知识面试题

一、测试基础理论 1.1 什么是软件测试&#xff1f; 为了发现程序中的错误而执行程序的过程 1.2 软件测试流程 1&#xff09;需求调查 2&#xff09;制定初步的项目计划 3&#xff09;测试准备 4&#xff09;测试设计 5&#xff09;测试实施 6&#xff09;测试评估 1.3 软件…

华为OD机试真题 Python 实现【字符串解密】【2023 B卷 100分】,附详细解题思路

目录 一、题目描述二、输入描述三、输出描述四、解题思路五、Python算法源码六、效果展示1、输入2、输出3、说明 一、题目描述 给定两个字符串string1和string2。 string1是一个被加扰的字符串。string1由小写英文字母&#xff08;‘a’-‘z’&#xff09;和数字字符&#xf…

【SCI征稿】计算机算法、通信、人工智能、网络、物联网、机器学习等领域,13本期刊影响因子上涨,这几本期刊录用快

2023年JCR发布后&#xff0c;计算机领域SCI期刊有13本影响因子上涨&#xff0c;审稿周期短&#xff0c;进展顺利&#xff1a; 1️⃣IF&#xff1a;6.0-7.0↑&#xff0c;JCR2区&#xff0c;中科院3区&#xff0c;SCI&EI 双检&#xff0c;CCF-C类 征稿领域&#xff1a;概率…

喜讯 | ShowMeBug CEO 李亚飞获评“稀土开发者”年度技术引领人物

近日&#xff0c;由稀土开发者大会举办的「掘金技术引力榜」评选活动揭晓&#xff0c;李亚飞从众多优秀的技术开发者中脱颖而出&#xff0c;获评年度技术引领人物。 稀土开发者大会年度技术引领人物获奖榜单 稀土开发者大会是由稀土掘金技术社区主办&#xff0c;集国际化前瞻…

c# opencv 找到图像的轮廓,并绘制轮廓

Mat colorMat new Mat();Mat outMat new Mat();Mat resultMat new Mat();Mat src Cv2.ImRead("I:\\mask.jpg");//转成灰度图Cv2.CvtColor(src, colorMat, ColorConversionCodes.RGB2GRAY);//对灰度图像进行阈值操作得到二值图像Cv2.Threshold(colorMat, outMat, 0…

【Python编程系列】3、初识Python代码:输入输出

1、输出 在PyCharm上新建项目和python文件后,编写一行代码,输出:"Hello World"这句话。代码为: print("Hello World")PyCharm上运行代码有两种方式,如下图1和2。代码运行结果在下方显示: print函数打印字符串时加单引号或双引号,不能混用。 单引…

大厂都在做的jmeter接口自动化测试登峰造极的JMETER实现接口自动化测试

目录 一、JMETER的环境搭建 二、JMETER的汉化 三、JMETER的接口请求 四、JMETER的参数化 五、JMETER的JSON传参 六、JMETER的断言添加 一、JMETER的环境搭建 二、JMETER的汉化 临时汉化方法&#xff1a;打开jmeter&#xff0c;options-->choose language-->选择语言…

simulink 常用子系统 核心是函数封装simulink function

目录 Enabled Subsystem Triggered Subsystem Function-call Subsystem Simulink Function Enabled Subsystem Triggered Subsystem Function-call Subsystem Simulink Function 类似c函数的封装 数组形参

ikun猛戳进来丨使用Python打造属于你的ikun音乐播放器,简直不要太好用

首先声明&#xff0c;我不是小黑子&#xff0c;我不是小黑子&#xff01; 作为一个ikun&#xff0c;时刻都在想着我们家姐姐&#xff01; 这不上次用Python做了一个ikun飞机大战&#xff0c;今天再给大家整活一手&#xff0c;Python tkinter开发一个专属ikun音乐播放器&#x…

CVPR 2023 | 掩码图像建模MIM的理解、局限与扩展

编者按&#xff1a;掩码图像建模&#xff08;Masked Image Modeling, MIM&#xff09;的提出&#xff0c;为计算机视觉模型训练引入无监督学习做出了重要贡献。得益于 MIM 的预训练算法&#xff0c;计算机视觉领域在近年来持续输出着优质的研究成果。然而整个业界对 MIM 机制的…

【Java从入门到大牛】程序流程控制

&#x1f525; 本文由 程序喵正在路上 原创&#xff0c;CSDN首发&#xff01; &#x1f496; 系列专栏&#xff1a;Java从入门到大牛 &#x1f320; 首发时间&#xff1a;2023年7月7日 &#x1f98b; 欢迎关注&#x1f5b1;点赞&#x1f44d;收藏&#x1f31f;留言&#x1f43e…

STM32CubeMX实现USB虚拟串口环回测试功能

STM32CubeMX实现USB虚拟串口环回测试功能 &#x1f4cd;参考ST官方给出的参考案例&#xff1a;https://www.stmcu.com.cn/Designresource/detail/LAT/711466&#x1f388;同功能配置可以参考《STM32 USB使用记录&#xff1a;使用CDC类虚拟串口&#xff08;VCP&#xff09;进行通…

MySQL系统函数

系统函数&#xff1a; 数学函数 1、abs() pi() 2、sqrt() 3、cell() floor() round() truncate() cell是向上取整&#xff0c;floor是向下取整。 注意&#xff1a;round负数和java里面的四舍五入有所不同 Round还可以指明位数 turncate是截断 4、power() …

颜色分类 (力扣)JAVA

给定一个包含红色、白色和蓝色、共 n 个元素的数组 nums &#xff0c;原地对它们进行排序&#xff0c;使得相同颜色的元素相邻&#xff0c;并按照红色、白色、蓝色顺序排列。 我们使用整数 0、 1 和 2 分别表示红色、白色和蓝色。 必须在不使用库内置的 sort 函数的情况下解决这…

用牛鲨NFT赚取SUI的机会,这不就来了?

很高兴向大家宣布Mysten Labs的Bullshark Quests活动&#xff0c;这是一个为Bullshark持有者提供赚取SUI奖励&#xff08;和其他福利&#xff09;的全新方式&#xff0c;Bullshark是ACES计划的一部分。Bullshark Quests将成为一个持续的活动&#xff0c;为Bullshark持有者提供通…