1.JavaWeb开发简介(Tomcat安装使用+Servlet简介)
文章目录
- 一.web开发简介
- 1.概念:
- 2.特点:
- 3.常用技术:
- 4.服务架构
- 5.web应用开发模式
- 6.HTTP协议
- 1)概念:
- 2)HTTP最基本的过程是:
- 3)IP/域名
- 4)HTTP协议请求方式
- 7.JavaWeb的相关技术
- 8.Java Web服务器
- 二、安装配置Tomcat
- 1.简介
- 2.Tomcat目录结构
- 三.Servlet的入门应用
- 1.使用步骤
- 2.使用注解`@WebServlet`
一.web开发简介
1.概念:
网站开发(基于浏览器平台)
2.特点:
- Web是图形化的和易于导航的(navigate)
- Web与平台无关
- Web是分布式的
- Web是动态的
3.常用技术:
PHP,ASP,JSP
4.服务架构
-
C/S
即客户端/服务器架构,是一种软件系统体系结构,它将需要处理的业务合理地分配到客户端和服务器端。客户端需要安装专门的软件,通过该软件来访问服务器上的资源和服务。
-
B/S
即浏览器/服务器架构,用户只需要一个浏览器就可以访问系统,系统更新的时候,只需要更新服务端,不需要更新浏览器。在B/S架构中,用户通过互联网使用浏览器向应用程序的服务器发送请求,服务器接收请求后,返回数据给浏览器,并通过JavaScript等语言向浏览器发送控制命令。
二者区别:
- 硬件环境
- C/S架构:通常建立在专用的网络上,如局域网(LAN),适用于小范围的网络环境。
- B/S架构:建立在广域网上,只要有操作系统和浏览器就可以使用,适应范围更广。
- 安全性
- C/S架构:由于用户群相对固定,且通常使用专用网络,因此安全性较高。
- B/S架构:面向所有用户,通过浏览器访问,安全性相对较低,更容易受到来自互联网的攻击。
- 系统维护
- C/S架构:表现方式有限,对程序员的要求较高,且升级维护相对困难,因为需要同时更新客户端和服务端。
- B/S架构:表现方式丰富,开发难度较低,且维护升级较为简单,因为只需要更新服务端即可。
- 处理问题能力
- C/S架构:用户固定,适合处理大量数据和高并发的情况,但受限于网络环境和客户端性能。
- B/S架构:面向所有用户,适用于广泛分布的用户群体,但可能因网络延迟等问题影响实时性。
- 开发成本
- C/S架构:开发成本可能较高,因为需要为不同的操作系统开发不同的客户端软件。
- B/S架构:开发成本相对较低,因为只需要开发一个服务器端的应用程序,客户端只需使用标准的浏览器即可。
- 扩展性
- C/S架构:扩展性相对较差,因为需要为新的客户端设备或操作系统开发新的客户端软件。
- B/S架构:扩展性较好,因为只需要在服务器端进行更新和扩展,客户端无需任何改动。
5.web应用开发模式
-
前后端不分离
后端直接渲染模板完成响应的一种开发模式
浏览器向服务器发起请求,服务器接收到请求后去数据库中获取数据,然后渲染html模板并返回渲染后的html数据,或者返回一个重定向。
绝大部分工作都在后端进行处理,客户端(浏览器)只负责页面的展示和用户交互。
特点:
- 一般一个应用只需要一个后台服务器
- 客户端只需要请求不同的页面,服务器会完成页面上的所有数据逻辑,所以http请求次数较少
- 每个请求都是一个html,会有大量的冗余数据
- 开发时,前后端代码耦合高,出了问题责任不明确
- 在开发单纯的网站时,效率非常高,有利于seo
- 响应数据是html,只能适应单一客户端,当需要多端支持时如要单独开发
-
前后端分离

随着ajax技术的出现,可以在不刷新页面向服务器发送http请求,所以又出现了前后端分离的开发模式。
后端只要开发接口即可,前端可以通过发起ajax请求,拿到后端的数据,渲染和怎样调用接口的事情,交给前端。
特点:
- 是目前web开发的主流模式
- 需要静态文件服务器和后端接口服务器
- 后台服务器只提供的数据接口的服务,响应的往往是json数据
- 页面是动态渲染的,爬虫无法爬取页面的有效信息,不利于seo
- 开发时,前后端责任分工明确
- 前后端解耦合,可以同时开发,提高开发效率
- 一个后台即可满足网站、app、小程序等多种应用的需要
6.HTTP协议
1)概念:
服务器端和客户端之间文件传输的方式
2)HTTP最基本的过程是:
- 客户端连接一个主机;
- 服务器接收连接;
- 客户端请求一个文件;
- 服务器发送一个应答;
- 断开连接(因此http协议属于无状态协议,在客户端与服务器之间不保持连接状态)
- http协议的默认端口80
3)IP/域名
- 本地主机:localhost
- 局域网域名:机器名
- Internet域名:DNS
- 本地IP:127.0.0.1
4)HTTP协议请求方式
-
GET方法:
-
POST方法:
-
状态代码:
服务器响应信息: 200(访问成功)、404(请求的Web资源不存在)、500(应用程序内部错误)
7.JavaWeb的相关技术
- Servlet :Servlet是一种服务器端的Java应用程序,具有独立于平台和协议的特性,可以生成动态的Web页面。
- JSP :(Java Server Pages)是由Sun Microsystems公 司倡导、许多公司参与一起建立的一种动态网页技术 标准 JavaBean :
- JavaBean: 是一种JAVA语言写成的可重用 组件
8.Java Web服务器
WWW(WORLD WIDE WEB)服务器,主要功能是提供网上信息浏览服务;
功能:
- Web服务器传送页面供客户的浏览器浏览,然而通常情况下Web服务器专门处理HTTP请求(request),还需要使用附加的应用程序服务器是通过各种程序来为客户提供商业逻辑;
- Web服务器可以解析HTTP协议,当Web服务器接收到一个HTTP请求,会返回一个HTTP响应(response),例如送回一个静态的HTML页面或者图片;
- 但更多时候为了处理一个请求(request),Web服务器把产生动态响应的工作交给其它一些程序,例如CGI(公共网关接口)程序,JSP(JavaServer Pages),Servlets,ASP(Active Server Pages)或者一些其它的服务器端(server-side)技术。
- 无论是哪一种,这些服务器端的程序都需要产生一个HTML格式的响应来让浏览器可以浏览。
二、安装配置Tomcat
下载地址:http://tomcat.apache.org/
请求路径为:http://localhost:8080/
Tomcat的默认端口是8080
1.简介
Tomcat 服务器是一个免费的开放源代码的Web 应用服务器Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成
免费开源的web应用服务器
2.Tomcat目录结构
bin:存放windows或Linux平台上启动和关闭Tomcat的脚本文件
webapps:Tomcat的主要Web发布目录,默认情况下把Web应用程序放于此目录下,可以包含多个Web应用程序的目录
conf(配置文件所在的目录)
log(日志信息所在目录)
lib(jar包所在的目录)
work(存放项目在运行过程中产生的文件)
temp(临时文件所在的目录)
三.Servlet的入门应用
Servlet作用:是一个运行在服务器上的java程序,处理请求和响应
1.使用步骤
-
建立servlet类
继承HttpServlet
- 1.作用:接收请求,处理,给客户端进行响应
- 2.就是一个java类,是继承了HttpServlet的java类
- 3.必须配置一个访问路径,在web.xml中配置
- 4.使用url进行访问,在地址栏中输入url的时候,会根据web.xml文件中配置的信息定位到应该去执行哪一个Servlet中的方法
-
配置 servlet(在web.xml中配置)
Servlet程序必须在部署描述符文件中正确配置才能被Servlet容器加载、调用。配置时需要使用
<servlet>、<servlet-mapping>两个元素
<servlet-mapping> <servlet-name>hs</servlet-name><!--配置路径的几种方式:--><!--1. /代表的是web项目的根目录。在开发环境下相当于webcontent目录 --><url-pattern>/hello1</url-pattern><!--2. *通配符--><url-pattern>/*</url-pattern></servlet-mapping><!--3.子路径--><servlet> <servlet-name>hs</servlet-name> <!-- HelloServlet的全名--> <servlet-class>com.woniuxy.servlets.HelloServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>hs</servlet-name> <url-pattern>/test/a</url-pattern> </servlet-mapping>
2.使用注解@WebServlet
将一个类声明为 Servlet,该注解将会在部署时被容器处理,容器将根据具体的属性配置将相应的类部署为 Servlet(其属性对应以上xml文件的内容name,url)
注解属性使用:
@WebServlet(urlPatterns = {"/simple"}, asyncSupported = true, loadOnStartup = -1, name = "SimpleServlet", displayName = "ss", initParams = {@WebInitParam(name = "charset", value = "utf-8")},asyncSupported = true)
public class SimpleServlet extends HttpServlet{ …
}
oadOnStartup = -1, name = “SimpleServlet”, displayName = “ss”, initParams = {@WebInitParam(name = “charset”, value = “utf-8”)},asyncSupported = true)
public class SimpleServlet extends HttpServlet{
…
}
相关文章:
1.JavaWeb开发简介(Tomcat安装使用+Servlet简介)
文章目录 一.web开发简介1.概念:2.特点:3.常用技术:4.服务架构5.web应用开发模式6.HTTP协议1)概念:2)HTTP最基本的过程是:3)IP/域名4)HTTP协议请求方式 7.JavaWeb的相关技术8.Java Web服务器 二、安装配置Tomcat1.简介2.Tomcat目录结构 三.Servlet的入门应用1.使用步骤2.使用注…...
xxl-job 动态创建一次性定时任务
文章目录 需求一、考虑方案二、实现思路三、代码实现3.1 引入xxl-core 核心包3.2 远程调用3.2.0 yaml3.2.1 配置类3.2.2 入参3.2.3 任务返回实体3.2.4 任务调用 3.3 cron生成器3.4 handler实现3.4 测试 踩坑 需求 类似预约会议,设置提醒 添加数据记录(…...
网页制作技术:概念、现状与展望?
网页制作技术:概念、现状与展望? 李升伟 网页制作技术是指用于创建和维护网站的一系列技术和方法。 概念: 它涉及多个方面,包括使用 HTML(超文本标记语言)来构建网页的结构和内容,使用 CSS&…...
Kafka Producer之数据重复和乱序问题
文章目录 1. 数据重复2. 数据乱序 为了可靠性,Kafka有消息重试机制,但是同时也带来了2大问题 1. 数据重复 消息发送到broker后,broker记录消息数据到log中,但是由于网络问题,producer没有收到acks,于是再次…...
Java前后端分离开发的步骤以及注意事项
在现代Web应用程序开发中,前后端分离是一种常见的架构模式。这种模式将前端(用户界面)和后端(业务逻辑和数据处理)分开独立开发和部署,从而提高开发效率、代码的可维护性和团队协作能力。本文将介绍Java前后…...
C#绘制阻抗圆图初步
阻抗圆图,或者叫史密斯图,是无线电设计方面用的; 基本的阻抗圆图如下, 下面尝试用C#能不能画一下; 先在网上找一个画坐标的C#类,它的效果如下; 自己再增加一个函数,可以绘制中心在…...
【STC89C51单片机】定时器/计数器的理解
目录 定时器/计数器1. 定时器怎么定时简单理解(加1经过了多少时间)什么是时钟周期什么是机器周期 2.如何设置定时基本结构相关寄存器1. TMOD寄存器2. TCON寄存器 代码示例 定时器/计数器 STC89C51单片机的定时器和计数器(Timers and Counter…...
数据建模标准-关系建模
数据模型定义:DAMA数据治理体系中将数据模型定义为一种文档形式,数据模型是用来将数据需求从业务传递到IT,以及在IT内部从分析师、建模师和架构师到数据库设计人员和开发人员的主要媒介; 作用:记录数据需求和建模过程中产生的数据…...
Qt日志库QsLog使用教程
前言 最近项目中需要用到日志库。上一次项目中用到了log4qt库,这个库有个麻烦的点是要配置config文件,所以这次切换到了QsLog。用了后这个库的感受是,比较轻量级,嘎嘎好用,推荐一波。 下载QsLog库 https://github.c…...
07. Hibernate 会话工厂(SessionFactory)
1. 前言 Hibernate 的核心价值观是:开发者们!做你们应该做的。脏的、累的、没技术含义的由本尊来做。 本节课和大家一起好好的聊聊 Hibernate 的核心组件之一:会话工厂(SessionFactory)。 通过本节课,你…...
使用Nginx实现高效负载均衡
概述 Nginx是一款高性能的HTTP和反向代理服务器,广泛用于Web服务的负载均衡。它能有效分发流量至多个后端服务器,提高网站的可用性和响应速度,同时增强系统的可扩展性和安全性。本文将介绍如何配置Nginx进行负载均衡,并提供具体的…...
华为OD机考题(基础API)
基础API 字典排序 List<String> listnew ArrayList(); //add list member Arrays.sort(list);List<Map<String,Integer>> listnew ArrayList(); //add list member Collections.sort(list, new Comparator<Map.Entry<String, Integer>>() {Over…...
<数据集>UA-DETRAC车辆识别数据集<目标检测>
数据集格式:VOCYOLO格式 图片数量:20500张 标注数量(xml文件个数):20500 标注数量(txt文件个数):20500 标注类别数:4 标注类别名称:[car, van, others, bus] 序号类别名称图片数框数1car201871259342…...
学生管理系统(C语言)(Easy-x)
课 程 报 告 课 程 名 称: 程序设计实践 专 业 班 级 : XXXXX XXXXX 学 生 姓 名 : XXX 学 号 : 231040700302 任 课 教 师 &a…...
C# 解析省份、城市、区域 json文件
一、json文件内容如下,(小程序里好像有用到...): 二、读取包含省份城市区域的json文件,并整理成想要的结果: string path Server.MapPath("/js"); string file System.IO.Path.Combine(path, "数据.…...
用C语言写的一个扫雷小游戏
头文件 调用头文件和声明函数 #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <time.h> #include <stdlib.h>#define ROW 9 #define COL 9#define ROWS ROW2 #define COLS COL2#define EASY_CONT 10//声明函数 //初始化棋盘函数 void InitB…...
C++——类和对象(初始化列表和运算符重载与静态与友元)
文章目录 初始化列表语法结构定义和使用案例初始化列表初始化常量成员: 注意事项 运算符重载加法运算符重载语法结构示例注意事项 减法运算符重载语法结构示例注意事项 等于运算符重载等于运算符 的重载语法示例注意事项 大于运算符重载大于运算符 > 的重载语法…...
【WPF】图片剪裁-ImageCropping
【WPF】图片剪裁-ImageCropping 背景技术栈实现思路核心代码界面布局Style处理逻辑使用技巧预览下载背景 机缘巧合吧,当时在全网寻找图像剪裁工具,但大都不能满足需求,于是决定动手写。当然如果只是为了完成这么一个功能就没有必要记录了,主要是不依赖与第三方图像库,且实…...
C++的模板(十二):forward模板
标准库的std::forward模板有一个类型T参数。在实际使用时,T取什么值应该不存在疑惑: class A { public:A() {}A(int n):n(n) {}template <class T> A(T &&a);void print(A &&a) { printf("A&&\n"); }void pri…...
docker desktop历史版本安装
1.安装choco Windows安装 choco包管理工具-CSDN博客 2.通过choco安装 下面例子为安装旧版2.3.0.2,其它版本类似 Chocolatey Software | Docker Desktop 2.3.0.2 https://download.docker.com/win/stable/45183/Docker%20Desktop%20Installer.exe choco install docker-des…...
7.4.分块查找
一.分块查找的算法思想: 1.实例: 以上述图片的顺序表为例, 该顺序表的数据元素从整体来看是乱序的,但如果把这些数据元素分成一块一块的小区间, 第一个区间[0,1]索引上的数据元素都是小于等于10的, 第二…...
CMake基础:构建流程详解
目录 1.CMake构建过程的基本流程 2.CMake构建的具体步骤 2.1.创建构建目录 2.2.使用 CMake 生成构建文件 2.3.编译和构建 2.4.清理构建文件 2.5.重新配置和构建 3.跨平台构建示例 4.工具链与交叉编译 5.CMake构建后的项目结构解析 5.1.CMake构建后的目录结构 5.2.构…...
解锁数据库简洁之道:FastAPI与SQLModel实战指南
在构建现代Web应用程序时,与数据库的交互无疑是核心环节。虽然传统的数据库操作方式(如直接编写SQL语句与psycopg2交互)赋予了我们精细的控制权,但在面对日益复杂的业务逻辑和快速迭代的需求时,这种方式的开发效率和可…...
系统设计 --- MongoDB亿级数据查询优化策略
系统设计 --- MongoDB亿级数据查询分表策略 背景Solution --- 分表 背景 使用audit log实现Audi Trail功能 Audit Trail范围: 六个月数据量: 每秒5-7条audi log,共计7千万 – 1亿条数据需要实现全文检索按照时间倒序因为license问题,不能使用ELK只能使用…...
STM32标准库-DMA直接存储器存取
文章目录 一、DMA1.1简介1.2存储器映像1.3DMA框图1.4DMA基本结构1.5DMA请求1.6数据宽度与对齐1.7数据转运DMA1.8ADC扫描模式DMA 二、数据转运DMA2.1接线图2.2代码2.3相关API 一、DMA 1.1简介 DMA(Direct Memory Access)直接存储器存取 DMA可以提供外设…...
【Web 进阶篇】优雅的接口设计:统一响应、全局异常处理与参数校验
系列回顾: 在上一篇中,我们成功地为应用集成了数据库,并使用 Spring Data JPA 实现了基本的 CRUD API。我们的应用现在能“记忆”数据了!但是,如果你仔细审视那些 API,会发现它们还很“粗糙”:有…...
学习STC51单片机32(芯片为STC89C52RCRC)OLED显示屏2
每日一言 今天的每一份坚持,都是在为未来积攒底气。 案例:OLED显示一个A 这边观察到一个点,怎么雪花了就是都是乱七八糟的占满了屏幕。。 解释 : 如果代码里信号切换太快(比如 SDA 刚变,SCL 立刻变&#…...
【C++进阶篇】智能指针
C内存管理终极指南:智能指针从入门到源码剖析 一. 智能指针1.1 auto_ptr1.2 unique_ptr1.3 shared_ptr1.4 make_shared 二. 原理三. shared_ptr循环引用问题三. 线程安全问题四. 内存泄漏4.1 什么是内存泄漏4.2 危害4.3 避免内存泄漏 五. 最后 一. 智能指针 智能指…...
day36-多路IO复用
一、基本概念 (服务器多客户端模型) 定义:单线程或单进程同时监测若干个文件描述符是否可以执行IO操作的能力 作用:应用程序通常需要处理来自多条事件流中的事件,比如我现在用的电脑,需要同时处理键盘鼠标…...
LCTF液晶可调谐滤波器在多光谱相机捕捉无人机目标检测中的作用
中达瑞和自2005年成立以来,一直在光谱成像领域深度钻研和发展,始终致力于研发高性能、高可靠性的光谱成像相机,为科研院校提供更优的产品和服务。在《低空背景下无人机目标的光谱特征研究及目标检测应用》这篇论文中提到中达瑞和 LCTF 作为多…...
