当前位置: 首页 > news >正文

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.服务架构

  1. C/S

    即客户端/服务器架构,是一种软件系统体系结构,它将需要处理的业务合理地分配到客户端和服务器端。客户端需要安装专门的软件,通过该软件来访问服务器上的资源和服务。

  2. B/S

    即浏览器/服务器架构,用户只需要一个浏览器就可以访问系统,系统更新的时候,只需要更新服务端,不需要更新浏览器。在B/S架构中,用户通过互联网使用浏览器向应用程序的服务器发送请求,服务器接收请求后,返回数据给浏览器,并通过JavaScript等语言向浏览器发送控制命令。

二者区别:

  1. 硬件环境
    • C/S架构:通常建立在专用的网络上,如局域网(LAN),适用于小范围的网络环境。
    • B/S架构:建立在广域网上,只要有操作系统和浏览器就可以使用,适应范围更广。
  2. 安全性
    • C/S架构:由于用户群相对固定,且通常使用专用网络,因此安全性较高。
    • B/S架构:面向所有用户,通过浏览器访问,安全性相对较低,更容易受到来自互联网的攻击。
  3. 系统维护
    • C/S架构:表现方式有限,对程序员的要求较高,且升级维护相对困难,因为需要同时更新客户端和服务端。
    • B/S架构:表现方式丰富,开发难度较低,且维护升级较为简单,因为只需要更新服务端即可。
  4. 处理问题能力
    • C/S架构:用户固定,适合处理大量数据和高并发的情况,但受限于网络环境和客户端性能。
    • B/S架构:面向所有用户,适用于广泛分布的用户群体,但可能因网络延迟等问题影响实时性。
  5. 开发成本
    • C/S架构:开发成本可能较高,因为需要为不同的操作系统开发不同的客户端软件。
    • B/S架构:开发成本相对较低,因为只需要开发一个服务器端的应用程序,客户端只需使用标准的浏览器即可。
  6. 扩展性
    • 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协议请求方式
  1. GET方法:

  2. POST方法:

  3. 状态代码:

    服务器响应信息: 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.使用步骤

  1. 建立servlet类

    继承HttpServlet

  • 1.作用:接收请求,处理,给客户端进行响应
  • 2.就是一个java类,是继承了HttpServlet的java类
  • 3.必须配置一个访问路径,在web.xml中配置
  • 4.使用url进行访问,在地址栏中输入url的时候,会根据web.xml文件中配置的信息定位到应该去执行哪一个Servlet中的方法
  1. 配置 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 测试 踩坑 需求 类似预约会议&#xff0c;设置提醒 添加数据记录&#xff08;…...

网页制作技术:概念、现状与展望?

网页制作技术&#xff1a;概念、现状与展望&#xff1f; 李升伟 网页制作技术是指用于创建和维护网站的一系列技术和方法。 概念&#xff1a; 它涉及多个方面&#xff0c;包括使用 HTML&#xff08;超文本标记语言&#xff09;来构建网页的结构和内容&#xff0c;使用 CSS&…...

Kafka Producer之数据重复和乱序问题

文章目录 1. 数据重复2. 数据乱序 为了可靠性&#xff0c;Kafka有消息重试机制&#xff0c;但是同时也带来了2大问题 1. 数据重复 消息发送到broker后&#xff0c;broker记录消息数据到log中&#xff0c;但是由于网络问题&#xff0c;producer没有收到acks&#xff0c;于是再次…...

Java前后端分离开发的步骤以及注意事项

在现代Web应用程序开发中&#xff0c;前后端分离是一种常见的架构模式。这种模式将前端&#xff08;用户界面&#xff09;和后端&#xff08;业务逻辑和数据处理&#xff09;分开独立开发和部署&#xff0c;从而提高开发效率、代码的可维护性和团队协作能力。本文将介绍Java前后…...

C#绘制阻抗圆图初步

阻抗圆图&#xff0c;或者叫史密斯图&#xff0c;是无线电设计方面用的&#xff1b; 基本的阻抗圆图如下&#xff0c; 下面尝试用C#能不能画一下&#xff1b; 先在网上找一个画坐标的C#类&#xff0c;它的效果如下&#xff1b; 自己再增加一个函数&#xff0c;可以绘制中心在…...

【STC89C51单片机】定时器/计数器的理解

目录 定时器/计数器1. 定时器怎么定时简单理解&#xff08;加1经过了多少时间&#xff09;什么是时钟周期什么是机器周期 2.如何设置定时基本结构相关寄存器1. TMOD寄存器2. TCON寄存器 代码示例 定时器/计数器 STC89C51单片机的定时器和计数器&#xff08;Timers and Counter…...

数据建模标准-关系建模

数据模型定义&#xff1a;DAMA数据治理体系中将数据模型定义为一种文档形式&#xff0c;数据模型是用来将数据需求从业务传递到IT,以及在IT内部从分析师、建模师和架构师到数据库设计人员和开发人员的主要媒介&#xff1b; 作用&#xff1a;记录数据需求和建模过程中产生的数据…...

Qt日志库QsLog使用教程

前言 最近项目中需要用到日志库。上一次项目中用到了log4qt库&#xff0c;这个库有个麻烦的点是要配置config文件&#xff0c;所以这次切换到了QsLog。用了后这个库的感受是&#xff0c;比较轻量级&#xff0c;嘎嘎好用&#xff0c;推荐一波。 下载QsLog库 https://github.c…...

07. Hibernate 会话工厂(SessionFactory)

1. 前言 Hibernate 的核心价值观是&#xff1a;开发者们&#xff01;做你们应该做的。脏的、累的、没技术含义的由本尊来做。 本节课和大家一起好好的聊聊 Hibernate 的核心组件之一&#xff1a;会话工厂&#xff08;SessionFactory&#xff09;。 通过本节课&#xff0c;你…...

使用Nginx实现高效负载均衡

概述 Nginx是一款高性能的HTTP和反向代理服务器&#xff0c;广泛用于Web服务的负载均衡。它能有效分发流量至多个后端服务器&#xff0c;提高网站的可用性和响应速度&#xff0c;同时增强系统的可扩展性和安全性。本文将介绍如何配置Nginx进行负载均衡&#xff0c;并提供具体的…...

华为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车辆识别数据集<目标检测>

数据集格式&#xff1a;VOCYOLO格式 图片数量&#xff1a;20500张 标注数量(xml文件个数)&#xff1a;20500 标注数量(txt文件个数)&#xff1a;20500 标注类别数&#xff1a;4 标注类别名称&#xff1a;[car, van, others, bus] 序号类别名称图片数框数1car201871259342…...

学生管理系统(C语言)(Easy-x)

课 程 报 告 课 程 名 称&#xff1a; 程序设计实践 专 业 班 级 &#xff1a; XXXXX XXXXX 学 生 姓 名 &#xff1a; XXX 学 号 &#xff1a; 231040700302 任 课 教 师 &a…...

C# 解析省份、城市、区域 json文件

一、json文件内容如下&#xff0c;&#xff08;小程序里好像有用到...&#xff09;: 二、读取包含省份城市区域的json文件&#xff0c;并整理成想要的结果&#xff1a; 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++——类和对象(初始化列表和运算符重载与静态与友元)

文章目录 初始化列表语法结构定义和使用案例初始化列表初始化常量成员&#xff1a; 注意事项 运算符重载加法运算符重载语法结构示例注意事项 减法运算符重载语法结构示例注意事项 等于运算符重载等于运算符 的重载语法示例注意事项 大于运算符重载大于运算符 > 的重载语法…...

【WPF】图片剪裁-ImageCropping

【WPF】图片剪裁-ImageCropping 背景技术栈实现思路核心代码界面布局Style处理逻辑使用技巧预览下载背景 机缘巧合吧,当时在全网寻找图像剪裁工具,但大都不能满足需求,于是决定动手写。当然如果只是为了完成这么一个功能就没有必要记录了,主要是不依赖与第三方图像库,且实…...

C++的模板(十二):forward模板

标准库的std::forward模板有一个类型T参数。在实际使用时&#xff0c;T取什么值应该不存在疑惑&#xff1a; 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…...

Ubuntu系统成功安装Docker教程

服务器版本&#xff1a; Ubuntu 22.04.3 LTS 1. 卸载旧版本 Docker 的旧版本被称为 docker&#xff0c;docker.io 或 docker-engine 。如果已安装&#xff0c;需要卸载&#xff1a; sudo apt-get remove docker docker-engine docker.io containerd runc2. 更新 apt 软件包 …...

C++ 匹配并提取包括加中括号的日期时间的正则表达式

在C中&#xff0c;你可以使用std::regex库来匹配包含日期和时间的字符串。以下是一个简单的例子&#xff0c;它展示了如何使用正则表达式来匹配形如[YYYY-MM-DD HH:MM:SS]的字符串。include <iostream> #include <string> #include <regex> int main() { …...

一文-深入了解Ansible常见模块、安装和部署

1 Ansible 介绍 Ansible是一个配置管理系统configuration management system, python 语言是运维人员必须会的语言, ansible 是一个基于python 开发的&#xff08;集合了众多运维工具 puppet、cfengine、chef、func、fabric的优点&#xff09;自动化运维工具, 其功能实现基于ss…...

etcd的备份与恢复

一 为什么使用etcd 与ZooKeeper相比&#xff0c;etcd更简单&#xff0c;安装、部署和使用更加容易&#xff0c;并且etcd的某些功能是ZooKeeper所没有的。因此&#xff0c;在很多场景下&#xff0c;etcd 比ZooKeeper更受用户的青&#xff0c;具体表现在如下几个方面: 1 etcd更…...

从 Pandas 到 Polars 十八:数据科学 2025,对未来几年内数据科学领域发展的预测或展望

我在2021年底开始使用Polars和DuckDB。我立刻意识到这些库很快就会成为数据科学生态系统的核心。自那时起&#xff0c;这些库的受欢迎程度呈指数级增长。 在这篇文章中&#xff0c;我做出了一些关于未来几年数据科学领域的发展方向和原因的预测。 这篇文章旨在检验我的预测能力…...

【postgresql】pg_dump备份数据库

pg_dump 介绍 pg_dump 是一个用于备份 PostgreSQL 数据库的实用工具。它可以将数据库的内容导出为一个 SQL 脚本文件或其他格式的文件&#xff0c;以便在需要时进行恢复或迁移。 基本用法 pg_dump [选项] [数据库名] 命令选项 -h 或 --host&#xff1a;指定数据库服务器的主…...

服务器的80和443端口关闭也能申请SSL证书

一、简介 在服务器的80和443端口关闭的情况下&#xff0c;确实可以申请SSL证书&#xff0c;但申请过程和方法会根据证书类型和验证方式的不同而有所差异。 通常如果是网站域名申请SSL证书&#xff0c;哪怕服务器的80、443端口都打不开&#xff0c;也可以通过DNS解析的方式来验…...

Odoo17应用、模型、字段

新建最简应用 先启用开发人员模式。 新建一个没有菜单项的空壳应用(模块/插件)&#xff1a; 必须至少包含 2 个文件&#xff1a; __manifest__.py 文件和文件 __init__.py 。 该 __init__.py 文件目前可以保持为空&#xff0c;我们将在下一章中返回。另一方面&#xff0c;该…...

Airtest的控制手机滑动位置偏差修正方法总结

提起Airtest的控制手机滑动位置&#xff0c;就会想起swipe&#xff0c;因为这种方法比较常见&#xff0c;对于没有精度控制的朋友完全够用&#xff0c; 我现在遇到精度控制时&#xff0c;大家都觉得精度不够&#xff0c;现在我对滑动精度控制&#xff0c;找到比较好的方法&…...

【机器学习】Grid Search: 一种系统性的超参数优化方法

&#x1f308;个人主页: 鑫宝Code &#x1f525;热门专栏: 闲话杂谈&#xff5c; 炫酷HTML | JavaScript基础 ​&#x1f4ab;个人格言: "如无必要&#xff0c;勿增实体" 文章目录 Grid Search: 一种系统性的超参数优化方法引言什么是Grid Search&#xff1f;Gr…...

可以做兼职的网站有哪些工作/软文新闻发布网站

DNS的正向解析含义&#xff1a; 自己维护一个域名&#xff0c;当别人访问这个域名时&#xff0c;你自己的主机要开启DNS缓存功能&#xff0c;可以解析出它的IP地址。 DNS正向解析配置&#xff1a;&#xff08;服务机&#xff1a;172.25.254.100&#xff09; 维护的域名为&#…...

wordpress另一更新/巩义网络推广

对MySQL有研究的读者&#xff0c;可能会发现MySQL更新很快&#xff0c;在安装方式上&#xff0c;MySQL提供了两种经典安装方式&#xff1a;解压式和一键式&#xff0c;虽然是两种安装方式&#xff0c;但我更提倡选择解压式安装&#xff0c;不仅快&#xff0c;还干净。在操作系统…...

可以免费发布信息的网站有哪些/企业网站cms

textView.setCompoundDrawables(drawable, null, null, null);如果看不到图片,这是由于需要手动定drawable适当的大小,使用drawable.setBounds。 假设drawable为图片,指导drawable.setBounds(0,0,drawable.getIntrinsicWidth(),drawable.getIntrinsicHeight());。这直接给图片本…...

西安三网合一网站建设/百度认证

ES6模块很容易利用&#xff0c;但是我在如何使它们在dev和prod中都能使用方面很挣扎。在开发人员中&#xff0c;它们存储在Django的静态文件夹中&#xff0c;这意味着我可以这样导入它们&#xff1a;factory"com.zaxxer.hikari.HikariJNDIFactory"type"javax.sq…...

郑州自助建站模板/怎样做电商 入手

...

中国建设银行官网站e路护航/广州关键词优化外包

问题 A: 重心在哪里 时间限制: 1 Sec 内存限制: 32 MB 提交: 154 解决: 107 [提交][状态][讨论版][命题人:外部导入] 题目描述 每个人都知道牛顿发现万有引力的故事。自从牛顿发现万有引力后&#xff0c;人们用万有引力理论解决了非常多的问题。不仅如此&#xff0c;我们也…...