JavaWeb01

JavaWeb

1. BS 和 CS

BS
B/S结构(Browser/server,浏览器/服务器模式),是WEB兴起后的一种网络结构模式,WEB浏览器是客户端最主要的应用软件。这种模式统一了客户端,将系统功能实现的核心部分集中到服务器上,简化了系统的开发、维护和使用。客户机上只要安装一个浏览器,如Netscape NavigatorInternet Explorer,服务器安装SQL ServerOracleMYSQL等数据库。浏览器通过WebServer 同数据库进行数据交互。

CS
Cient/server架构,即服务器/客户端架构。是大家熟知的软件系统体系结构,通过将任务合理分配到c1ient端和server端,降低了系统的通讯开销,需要安装客户端才可进行管理操作。B/S架构:客户端基本上没有专门的应用程序,应用程序基本上都在服务器端。由于 客户端没有程序,应用程序的升级和维护都可以在服务器端完成,升级维护方便。

2. 服务器

服务器,也称伺服器,是提供计算服务的设备。由于服务器需要响应服务请求,并进行处理,因此一般来说服务器应具备承担服务并且保障服务的能力。

服务器的构成包括处理器、硬盘、内存、系统总线等,和通用的计算机架构类似,但是由于需要提供高可靠的服务,因此在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面要求较高。
在网络环境下,根据服务器提供的服务类型不同,分为文件服务器,数据库服务器,应用程序服务器,WEB服务器等。

服务器就是 提供服务的设备。是由硬件和软件两部分组成。

硬件服务器:构成包括处理器、硬盘、内存、系统总线等组成的电脑主机
软件服务器:
		web服务器:	tomcat
		数据库服务器:	MysQL、oracle
		反向代理服务器:  nginx
		缓存服务器:	Redis 【nosq1】

3. Web服务器


1. IIS
IIS(Internet信息服务)英文InternetInformationserver的缩写。它是微软公司主推的服务器,IIS的特点具有:安全性,强大,灵活

2. Tomcat
TomcatApache软件基金会(ApachesoftwareFoundation)]akarta项目中的一个核心项目,由Apache、sun和其他一些公司及个人共同开发而成。Tomcat技术先进、性能稳定,而且免费,因而深受]ava爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web应用服务器。

3. Zeus
Zeus是一个运行于unix下的非常优秀的web服务器,据说性能超过Apache,是效率最高的Web服务器之一。

4. Nginx
Nginx不仅是一个小巧且高效的HTTP服务器,也可以做一个高效的负载均衡反向代理,通过它接受用户的请求并分发到多个Mongre1进程可以极大提高Rai1s应用的并发能力。

5. Apache
Apache是世界使用排名第一的web服务器软件。它几乎可以运行在所有的计算机平台上。由于Apache是开源免费的,因此有很多人参与到新功能的开发设计,不断对其进行完善。Apache的特点是简单、速度快、性能稳定,并可做代理服务器来使用。

6. Lighttpd
Lighttpd是由德国人JanKneschke领导开发的,基于BSD许可的开源WEB服务器软件,其根本的目的是提供一个专门针对高性能网站,安全、快速、兼容性好并且灵活的webserver环境。具有非常低的内存开销,CPU占用率低,效能好,以及丰富的模块等特点。支持FastCGI,CGI,Auth输出压缩(outputcompress),URL重写,Alias等重要功能。

4. Tomcat服务器

4.1 Tomcat的安装

1 确保自己电脑上面有JDK
2 将压缩包中的内容解压到指定文件夹
	注意 不能有中文路径
测试 找到tomcat的bin目录 下面的 startup.bat启动 如果窗口不闪退 并且浏览器访问http://localhost:8080

4.2 Tomcat目录

tomcat有哪些文件夹各自的作用是什么?
bin: 有关tomcat运行启动停止等内容的脚本文件
conf:关于tomcat的配置文件
	<Host name="localhost"appBase="webappsunpackWARs="true" autoDepoy="true">
1ib:存放jar包
1ogs:存放日志文件
temp:存放临时文件
webapps:存放tomcat运行的项目
work:存放jsp编译后的javawe
目录描述
/bin存放Windows平台及Linux平台上启动和关闭Tomcat的脚本文件
/lib存放Tomcat服务器以及所有Web应用都能访问的JAR文件
/conf存放Tomcat服务器的各种配置文件,其中最重要的配置文件是server.xml
/logs存放Tomcat的日志文件。 logs/log目录的记住。 排查错误时可以查看该日志文件
/temp临时文件
/webapps默认的Web应用文件的存放目录。 部署到该目录下
/docsTomcat文档
/example示例程序
/workJsp文件编译后的servlet文件存放。 jsp经过编译后产生的java代码存在在该目录下

4.3 静态资源和动态资源

所谓的动态网页,是指跟静态网页相对的一种网页编程技术。

静态网页,随着htm1代码的生成,页面的内容和显示效果就基本上不会发生变化了--除非你修改页面代码。
而动态网页则不然,页面代码虽然没有变,但是显示的内容却是可以随着时间、环境或者数据库操作的结果而发生改变的。

值得强调的是,不要将动态网页和页面内容是否有动感混为一谈。这里说的动态网页,与网页上的各种动画、滚动字幕等视觉上的动态效果没有直接关系,动态网页也可以是纯文字内容的,也可以是包含各种动画的内容,这些只是网页具体内容的表现形式,无论网页是否具有动态效果,只要是采用了动态网站技术生成的网页都可以称为动态网页。
    
总之,动态网页是基本的html语法规范与JavaVBVC等高级程序设计语言、数据库编程等多种技术的融合,以期实现对网站内容和风格的高效、动态和交互式的管理。因此,从这个意义上来讲,凡是结合了HTML以外的高级程序设计语言和数据库技术进行的网页编程技术生成的网页都是动态网页。

网页可以结合高级编程语言,和数据库结合的页面都是动态页面。 里面可以使用java语言。最常见的动态页面: jsp,thymeleaf,asp等这些都是动态页面

4.4 如何部署项目到tomcat中

在tomcat/webapps目录下创建项目

4.5 jsp

java server page: java服务器网页。该网页的解析需要服务器。而且该网页中可以插入java代码。

4.6 idea创建web工程

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

4.7 idea创建的web工程关联tomcat并部署

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

启动tomcat

在这里插入图片描述

4.8 项目的默认页面

在这里插入图片描述

5. jsp中添加java代码

jsp它是动态网页,里面可以插入java代码。如何在jsp中插入java代码。

<%

​ java代码

%>

java的结果或表达式输出到网页上。提供了两种方式:

第一种: out.print(表达式);

第二种: <%=表达式%>

<%--
  Created by IntelliJ IDEA.
  User: Administrator
  Date: 2024/12/3
  Time: 10:05
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
    <%--jsp中可以使用html任何东西,而且里面可以插入java代码--%>
</head>
<body>
  ================================================================
  <%
      int a=10;
      int b=10;
      int c=a+b;
      out.print("c的结果:"+c);
      System.out.println("~~~~~~c的结果:"+c);
  %>
  <br>
  c的结果为:<%=c%>

   <%
       String[] hobby={"java","c","c++","看书","爬山","打麻将"};
       //把上面数组的内容以无序列表展示到网页。 <ul><li></li></ul>
       out.print("<ul>");
       for(int i=0;i<hobby.length;i++){
           out.print("<li>"+hobby[i]+"</li>");
       }
       out.print("</ul>");
   %>
</body>
</html>

6. jsp接受请求的参数

1.表单请求

2.超链接请求

发送请求时都可以携带数据。

6.1 表单请求

<form action="表单提交的路径" method="表单提交的方式">
   表单元素
</form>
<body>
   <form action="/registerDo.jsp" method="post">
        账号:<input type="text" name="uname"/><br>
        密码:<input type="password" name="pwd"/><br>
       <%--单选按钮必须给的value值。--%>
        性别:<input type="radio" name="sex" value="M"/> 男
             <input type="radio" name="sex" value="F"/> 女<br>
        <input type="submit" value="确认注册"/>
   </form>
</body>
</html>

registerDo.jsp

<body>
<%--接受表单提交数据:jsp中提供了一个类:HttpServletRequest的对象。该对象无需自己创建。jsp内置了该对象名称为request. 引入servlet-api的jar包--%>
<%
    String uname = request.getParameter("uname");
    String pwd = request.getParameter("pwd");
    String sex = request.getParameter("sex");
    out.print("账号:"+uname+";密码:"+pwd+";性别:"+sex);
%>
</body>
</html>

6.2 超链接提交数据

<a href="连接的路径?key=value&key=value">超链接文本</a>
   <a href="f.jsp?name=zs&age=15">连接到f.jsp</a>

f.jsp

<%
       //接受超链接提交的数据.jsp中内置了一个HttpServletRequest对象。request
       String name = request.getParameter("name");
       String age=request.getParameter("age");
       out.print("name:"+name+";age:"+age);
   %>

6.3 综合完成登录

在这里插入图片描述

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

开发者工具的模块化与可扩展性设计

文章目录 前言模块化设计的重要性可扩展性设计的重要性设计模式与技术实现实战代码插件管理器类&#xff1a;PluginManager注册插件方法&#xff1a;register_plugin执行插件方法&#xff1a;execute_plugin 插件实现插件 1&#xff1a;代码格式化插件插件 2&#xff1a;代码行…

嵌入式现状、机遇、挑战与展望

在当今数字化浪潮中&#xff0c;嵌入式系统宛如一颗璀璨的明珠&#xff0c;熠熠生辉&#xff0c;深刻地渗透到了我们生活的方方面面&#xff0c;成为推动现代科技进步不可或缺的关键力量。从智能家居的便捷控制&#xff0c;到工业生产的精准运作&#xff0c;再到汽车的智能驾驶…

️️️ 避坑指南:如何修复国密gmssl 库填充问题并提炼优秀加密实践20241212

&#x1f6e1;️ 避坑指南&#xff1a;如何修复国密gmssl 库填充问题并提炼优秀加密实践 ✨ 引言 在当下的数据安全环境中&#xff0c;SM4作为中国国家密码算法的代表性选择&#xff0c;被广泛应用于金融、通信和政府领域。然而&#xff0c;在实际开发中&#xff0c;即便是开…

markdown入门

这里写自定义目录标题 欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题&#xff0c;有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants 创建一个自定义列表如何创建一个…

四、个人项目系统搭建

文章目录 一、python写的后端代码二、html代码三、index.css四、js代码 效果图&#xff1a; 一、python写的后端代码 后端代码使用Flask编写&#xff0c;如下所示&#xff1a; # app.py from flask import Flask, render_template, request, jsonify, g import sqlite3 import…

【含开题报告+文档+PPT+源码】基于微信小程序的点餐系统的设计与实现

开题报告 随着互联网技术的日益成熟和消费者生活水平与需求层次的显著提升&#xff0c;外卖点餐平台在中国市场上迅速兴起并深深植根于民众日常生活的各个角落。这类平台的核心在于构建了一个基于互联网的强大订餐服务系统&#xff0c;它无缝整合了餐饮商户资源与广大消费者的…

【DFT】【MBIST】Memory Repair

Memory Repaire 1. Overview2. Memory Repair2.1 Column MUX2.2 Type of Repair 3. Tessent Repair Architecture3.1 BIRA3.2 BISR3.3 Implementing Soft Repair3.4 Repair Steps 1. Overview 假设通过 MBIST 发现 SoC 中一个或多个 Memory 存在故障&#xff0c;不能正常进行读…

[搜广推]王树森推荐算法——基于物体的协同过滤

基于物体的协同过滤 ItemCF 基于物体的协同过滤&#xff08;Item-Based Collaborative Filtering&#xff0c;简称ItemCF&#xff09;是一种经典的推荐系统算法 基本思想 量化用户对物品的兴趣&#xff0c;通过分析用户的行为来找到与目标物品相似的其他物品&#xff0c;然后…

scala的隐式转换

定义 隐式转换是 Scala 提供的一种强大的特性&#xff0c;它允许编译器在特定的情况下自动将一种类型转换为另一种类型。这种转换不是显式地通过方法调用进行的&#xff0c;而是由编译器自动插入转换代码。隐式转换主要通过定义隐式转换函数来实现。隐式转换函数是一种带有imp…

跨平台开发技术的探索:从 JavaScript 到 Flutter

随着多平台支持和用户体验一致性在应用程序开发中变得越来越重要,开发者面临的挑战是如何在不同平台上保持代码的可维护性和高效性。本文将探讨如何利用现代技术栈,包括 Flutter、JavaScript、HTML5、WebAssembly、TypeScript 和 Svelte,在统一的平台上进行高效的跨平台开发…

CTFshow-命令执行(Web58-77)

CTFshow-命令执行(Web58-77) Web58 <?php if(isset($_POST[c])){$c $_POST[c];eval($c); }else{highlight_file(__FILE__); }Warning: system() has been disabled for security reasons in /var/www/html/index.php(17) : eval()d code on line 1 本题对于passthru&…

MATLAB 直线插点重采样(98)

MATLAB 直线插点重采样(98) 一、算法介绍二、算法实现1.代码2.结果一、算法介绍 在两点构成的直线之间,均匀插入多个点,加密重采样直线点,具体的算法实现如下,结果如图所示: 二、算法实现 1.代码 代码如下(示例): % 示例调用 qian_cloud = [0, 0, 0; 1

Launcher启动流程

Launcher启动流程分2个阶段&#xff1a; AMS systemReady() 会启动一个临时Activity&#xff1a;com.android.settings.FallbackHome&#xff0c;如下流程等到用户解锁成功后&#xff0c;FallbackHome轮询到有可用的RealHome包&#xff0c;会销毁掉自己&#xff0c;AMS发现没有…

介绍几个Linux下的杀毒软件

一&#xff1a;chkrootkit 是一个用于检测Linux系统下可能被攻击者植入的后门程序或恶意代码的扫描工具。 &#xff08;1&#xff09;安装方法&#xff08;ubuntu) sudo apt update sudo apt install chkrootkit &#xff08;2&#xff09;使用方法&#xff1a; chkrootkit -…

Linux修改设置时区的几种方法

1.修改成北京时间 复制相应的时区文件&#xff0c;替换系统时区文件&#xff1b;或者创建链接文件 rm -rf /etc/localtime //先删除/etc/localtime&#xff0c;否则若存在此文件软链接会失败 cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime //或者 ln -s /usr/share/zo…

【C语言篇】C 语言总复习(下):点亮编程思维,穿越代码的浩瀚星河

我的个人主页 我的专栏&#xff1a;C语言&#xff0c;希望能帮助到大家&#xff01;&#xff01;&#xff01;点赞❤ 收藏❤ 在C语言的世界里&#xff0c;结构体和联合体以及文件操作都是非常重要且实用的知识板块&#xff0c;掌握它们能帮助我们更高效地组织数据以及与外部文…

如何在 ASP.NET Core 3.1 应用程序中使用 Log4Net

介绍 日志记录是应用程序的核心。它对于调试和故障排除以及应用程序的流畅性非常重要。 借助日志记录&#xff0c;我们可以对本地系统进行端到端的可视性&#xff0c;而对于基于云的系统&#xff0c;我们只能提供一小部分可视性。您可以将日志写入磁盘或数据库中的文件&#xf…

python 基于 docx 文件模板生成 docx 或 PDF 文件

需求背景 提供一个Word文档模板&#xff0c;使用python程序替换里边的占位符&#xff0c;替换内容包括文本和图片&#xff0c;然后输出docx或者PDF文件。 功能演示 输入示例 输出示例 实现程序 import os import shutil import subprocess import timefrom docx import Doc…

leetcode 面试经典 150 题:验证回文串

链接验证回文串题序号125类型字符串解题方法双指针法难度简单 题目 如果在将所有大写字符转换为小写字符、并移除所有非字母数字字符之后&#xff0c;短语正着读和反着读都一样。则可以认为该短语是一个 回文串 。 字母和数字都属于字母数字字符。 给你一个字符串 s&#xf…

前端项目初始化搭建(二)

一、使用 Vite 创建 Vue 3 TypeScript 项目 PS E:\web\cursor-project\web> npm create vitelatest yf-blog -- --template vue-ts> npx > create-vite yf-blog --template vue-tsScaffolding project in E:\web\cursor-project\web\yf-blog...Done. Now run:cd yf-…