JavaWeb概念、应用、服务器

简介: 静态网站是指在服务器上预先准备好的网页内容,用户访问时服务器直接将这些静态页面发送给用户浏览器,没有经过额外的处理或数据库查询。

基本概念


web开发:

web,网页的意思,比如www.baidu.com


静态web:

html,css


静态网站是指在服务器上预先准备好的网页内容,用户访问时服务器直接将这些静态页面发送给用户浏览器,没有经过额外的处理或数据库查询。静态网站通常由HTML、CSS和JavaScript等静态文件组成。相比动态网站,静态网站的优点是加载速度快、安全性高、易于部署和管理,适用于内容不经常变化、不需要交互功能的网站。常见的静态网站生成工具有Jekyll、Hugo等

动态web:

淘宝,几乎是所有的网站;

提供给所有人看的数据始终会发生变化,每个人在不同的时间,不同的地点看到的信息各不相同!

技术栈:Servlet/JSP,ASP,PHP

动态网站是指每次用户访问时,服务器会根据用户请求动态生成网页内容并返回给用户浏览器的网站。动态网站通常包含与数据库交互、用户输入验证、内容个性化等功能,可以根据用户的需求和行为实时地生成页面内容。动态网站通常使用服务器端脚本语言(如PHP、Python、Ruby等)或框架(如Django、Ruby on Rails等)来处理用户请求,并与数据库进行交互。

动态网站的优点是能够实现更复杂的功能和交互,内容可以根据用户的需求和行为动态生成,适用于需要频繁更新内容、用户交互较多的网站。然而,相对于静态网站,动态网站通常需要更多的服务器资源和数据库支持,加载速度可能会慢一些。

查看网页的url,url就是当你查看网页时在浏览器搜索栏输入的一行链接,如果你的网站连结尾码为html、.htm、.html、.shtml、.xml,那么这个网页就为静态网页;而动态网站往往会使用ASP或PHP或JSP为尾码,根据这个尾码名你可以判断一个网页是否为动态网页。

在Java中,动态web资源开发的技术被称为JavaWeb

1.2web应用程序

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

a.html,b.html…多个web资源可以被外界访问,对外界提供服务。

能访问的任何一个页面或者资源,都存在于这个世界每一个角落的计算机上。

URL:统一资源定位符(种子)

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

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

比如

html,css,js

JSP,servlet

Java程序

jar包

配置文件

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

1.3静态web

。html或者htm这些后缀的文件,如果在服务器存在,那么我们就可以直接读取联络

服务器静态响应

1.3静态web缺点

web页面无法动态更新,所有用户看到的都是同一个页面

轮播图,点击特效

JavaScript

VBScript

他无法和数据库交互

1.4动态web

在动态web中静态资源存储在文件系统中,动态资源在动态服务器

缺点

假如动态web资源出现错误,我们需要重新编写我们的后台程序,重新发布也就是停机维护

优点

可以和数据库交互

2.web服务器

ASP

微软:国内最早流行的

在HTML中嵌入VB脚本,ASP+COM

ASP(Active Server Pages)是由微软开发的一种用于创建动态网页的服务器端脚本技术。ASP允许开发者使用VBScript或JScript等脚本语言在服务器端编写代码,生成动态内容并将其发送到用户的浏览器。

通过ASP,开发者可以在HTML页面中嵌入服务器端脚本代码,实现动态内容生成、数据库访问、用户交互等功能。ASP页面通常具有“.asp”扩展名。

在ASP的基础上,微软推出了ASP.NET,它是一个更强大、更灵活的Web应用程序框架,支持多种编程语言(如C#、Visual

Basic.NET等),提供了更丰富的功能和更好的性能。

虽然ASP在过去曾经非常流行,但随着技术的发展,现在更多的Web开发者已经转向使用其他技术框架和平台来构建动态网站,比如PHP、Python、Ruby

on Rails等。

JSP/Servlet:

B/S:浏览器和服务器

C/S客户端和服务端sun公司主推B/S架构,基于Java语言,可以承载高并发,高可用,高性能。语法像ASP

JSP(JavaServer Pages)和Servlet是Java企业级开发中常用的技术,用于构建动态Web应用程序。

JSP是一种在HTML页面中嵌入Java代码的技术,允许开发者将动态内容和静态内容结合在一起。通过JSP,开发者可以在HTML页面中使用标签和表达式来调用Java代码,实现动态生成内容、数据库交互等功能。JSP页面通常具有“.jsp”扩展名。

Servlet是Java编写的服务器端程序,它接收来自客户端(如浏览器)的请求并生成响应。Servlet通常被用来处理用户请求、执行业务逻辑、与数据库交互等。Servlet可以动态生成HTML内容、接收表单数据、管理会话状态等。

JSP和Servlet经常一起使用,通过Servlet处理业务逻辑和数据操作,然后将结果传递给JSP进行展示。这种模型被称为MVC(Model-View-Controller)模式,能够有效地分离数据处理和界面展示。

IIS

微软的:ASP,windows中自带的

3.Tomcat

Tomcat是一个开源的Java Servlet容器,也是一个Web服务器。它由Apache软件基金会开发和维护,可以运行在跨平台的操作系统上,如Windows、Linux、macOS等。

Tomcat主要用于部署和运行Java Web应用程序,例如Java Servlet、JavaServer Pages(JSP)和Java

WebSocket等。它支持Java EE规范,并且能够在Web服务器中运行Java

Web应用程序。Tomcat是一款轻量级的Web服务器,具有独立的HTTP服务器功能,也可以与其他Web服务器(如Apache HTTP

Server)配合使用。

Tomcat的特点包括易于安装、易于配置、良好的性能、支持多个虚拟主机、可扩展性强等。同时,Tomcat还提供了丰富的管理和监控工具,使得管理员能够方便地管理和监控Tomcat服务器的运行状态。

相关文章
|
6天前
|
存储 缓存 前端开发
如何优化 SSR 应用以减少服务器压力
优化SSR应用以减少服务器压力,可采用代码分割、缓存策略、数据预加载、服务端性能优化、使用CDN、SSR与SSG结合、限制并发请求、SSR与CSR平滑切换、优化前端资源及利用框架特性等策略。这些方法能有效提升性能和稳定性,同时保证用户体验。
|
9天前
|
弹性计算 开发工具 git
2分钟在阿里云ECS控制台部署个人应用(图文示例)
作为一名程序员,我在部署托管于Github/Gitee的代码到阿里云ECS服务器时,经常遇到繁琐的手动配置问题。近期,阿里云ECS控制台推出了一键构建部署功能,简化了这一过程,支持Gitee和GitHub仓库,自动处理git、docker等安装配置,无需手动登录服务器执行命令,大大提升了部署效率。本文将详细介绍该功能的使用方法和适用场景。
2分钟在阿里云ECS控制台部署个人应用(图文示例)
|
18天前
|
算法 Java 数据库连接
Java连接池技术,从基础概念出发,解析了连接池的工作原理及其重要性
本文详细介绍了Java连接池技术,从基础概念出发,解析了连接池的工作原理及其重要性。连接池通过复用数据库连接,显著提升了应用的性能和稳定性。文章还展示了使用HikariCP连接池的示例代码,帮助读者更好地理解和应用这一技术。
31 1
|
23天前
|
存储 安全 关系型数据库
Linux系统在服务器领域的应用与优势###
本文深入探讨了Linux操作系统在服务器领域的广泛应用及其显著优势。通过分析其开源性、安全性、稳定性和高效性,揭示了为何Linux成为众多企业和开发者的首选服务器操作系统。文章还列举了Linux在服务器管理、性能优化和社区支持等方面的具体优势,为读者提供了全面而深入的理解。 ###
|
24天前
|
存储 缓存 前端开发
如何优化 SSR 应用以减少服务器压力?
如何优化 SSR 应用以减少服务器压力?
|
10天前
|
安全 Java 测试技术
Java并行流陷阱:为什么指定线程池可能是个坏主意
本文探讨了Java并行流的使用陷阱,尤其是指定线程池的问题。文章分析了并行流的设计思想,指出了指定线程池的弊端,并提供了使用CompletableFuture等替代方案。同时,介绍了Parallel Collector库在处理阻塞任务时的优势和特点。
|
19天前
|
安全 Java
java 中 i++ 到底是否线程安全?
本文通过实例探讨了 `i++` 在多线程环境下的线程安全性问题。首先,使用 100 个线程分别执行 10000 次 `i++` 操作,发现最终结果小于预期的 1000000,证明 `i++` 是线程不安全的。接着,介绍了两种解决方法:使用 `synchronized` 关键字加锁和使用 `AtomicInteger` 类。其中,`AtomicInteger` 通过 `CAS` 操作实现了高效的线程安全。最后,通过分析字节码和源码,解释了 `i++` 为何线程不安全以及 `AtomicInteger` 如何保证线程安全。
java 中 i++ 到底是否线程安全?
|
7天前
|
安全 Java 开发者
深入解读JAVA多线程:wait()、notify()、notifyAll()的奥秘
在Java多线程编程中,`wait()`、`notify()`和`notifyAll()`方法是实现线程间通信和同步的关键机制。这些方法定义在`java.lang.Object`类中,每个Java对象都可以作为线程间通信的媒介。本文将详细解析这三个方法的使用方法和最佳实践,帮助开发者更高效地进行多线程编程。 示例代码展示了如何在同步方法中使用这些方法,确保线程安全和高效的通信。
27 9
|
10天前
|
存储 安全 Java
Java多线程编程的艺术:从基础到实践####
本文深入探讨了Java多线程编程的核心概念、应用场景及其实现方式,旨在帮助开发者理解并掌握多线程编程的基本技能。文章首先概述了多线程的重要性和常见挑战,随后详细介绍了Java中创建和管理线程的两种主要方式:继承Thread类与实现Runnable接口。通过实例代码,本文展示了如何正确启动、运行及同步线程,以及如何处理线程间的通信与协作问题。最后,文章总结了多线程编程的最佳实践,为读者在实际项目中应用多线程技术提供了宝贵的参考。 ####
|
7天前
|
监控 安全 Java
Java中的多线程编程:从入门到实践####
本文将深入浅出地探讨Java多线程编程的核心概念、应用场景及实践技巧。不同于传统的摘要形式,本文将以一个简短的代码示例作为开篇,直接展示多线程的魅力,随后再详细解析其背后的原理与实现方式,旨在帮助读者快速理解并掌握Java多线程编程的基本技能。 ```java // 简单的多线程示例:创建两个线程,分别打印不同的消息 public class SimpleMultithreading { public static void main(String[] args) { Thread thread1 = new Thread(() -> System.out.prin