- ubuntu:E: 无法定位软件包yum解决方法
码农研究僧
BUG定位ubuntulinuxapt
如果出现以下问题,则需要更新yum源yum源位于/etc/apt/sources.listyum源更新的网站有清华大学开源镜像中科大开源镜像1.此处更新yum源的时候先备份sudocp/etc/apt/sources.list/etc/apt/sources.list.baksudogedit/etc/apt/sources.list将更新源替换成上面符合版本系列号我用的版本号为20.04#
- Linux当中解决apt-get install E: 无法定位软件包问题
wt-cai
linux
最近遇到一些问题,记录一下。也给其他人参考解决方案。主要参考该博客:https://blog.csdn.net/qq_36698189/article/details/115607886注意:更换清华源的时候一定要跟自己ubuntu版本相对应,不然可能会有其他问题。还有其他问题,如:1.Linux中使用apt/apt-get时报错:libc6-dev:破坏(依赖):libgcc-9-dev(<9.
- sudo apt-get install package时出现E:无法定位软件包
God.v
ubuntulinuxcentos
sudoapt-getinstallpackage时出现E:无法定位软件包在Ubuntu上安装openssl-devel时遇到无法定位软件包的问题,查阅文章,大多是换源和在“软件和更新”中更换下载地址的方法,而我尝试过后并无卵用,如果接下来的方法不适用你的情况,你也不妨考虑以上两种办法。其实很简单,区分centos和Ubuntu等在安装文件时的名称差别,对于这两种图形界面来说,将openssl-d
- 解决Ubuntu命令“sudo apt-get install”——“ E: 无法定位软件包”问题
Joker 007
服务器ubuntulinux服务器
1.添加镜像源(本文是清华源)。运行代码:sudovim/etc/apt/sources.list添加如下内容:debhttps://mirrors.tuna.tsinghua.edu.cn/ubuntu/bionicmainrestricteduniversemultiverse#deb-srchttps://mirrors.tuna.tsinghua.edu.cn/ubuntu/bionicm
- ROS开发疑难杂症持续更新
流浪的567
ROS机器人c++
一、Eigen相关1、fatalerror:Eigen/Dense:没有那个文件或目录4|#include|^~~~~~~~~~~~~1.1、安装Eigensudoapt-getinstalllibeigen3-dev1.2、检查Eigen头文件是否存在于/usr/include/eigen3/或/usr/local/include/目录下ls/usr/include/eigen3/Eigen#应
- shell 脚本搭建apache
好多知识都想学
apache
#!/bin/bash#SetApacheversiontoinstall##author:yuan#检查外网连接echo"检查外网连接..."pingwww.baidu.com-c3>/dev/null2>&1if[$?-eq0];then echo"外网通讯良好!"else echo"网络连接失败,请检查你的网络设置!" exit1fisleep5#检查并安装APR库echo"检查并安装
- 环境准备系列——使家里的工作站在公网上也可以通过ssh进行访问
music&movie
工具ssh运维
一、基础配置:启用SSH服务与端口开放安装SSH服务•Ubuntu/Debian系统:sudoaptupdate&&sudoaptinstallopenssh-server•CentOS系统:sudoyuminstallopenssh-server•启动服务:sudosystemctlstartsshd&&sudosystemctlenablesshd修改默认端口(推荐)•编辑配置文件:sudov
- 大模型学习-让其他电脑可访问本地ollama的模型并进行流式响应
Gratitute_林腾
大模型学习学习语言模型
目录让其他电脑可访问本地ollama流式响应让其他电脑可访问本地ollama默认情况下,其他电脑不能直接访问本地Ollama服务。解决方法:让Ollama监听局域网地址,而不是localhost我们可以让Ollama监听局域网IP,在Ollama服务器上运行:setOLLAMA_HOST=0.0.0.0:11434ollamaserve注意:这种方式只对当前CMD窗口有效,关闭窗口后就会失效。如果
- 嵌入式音频框架alsa学习之pcm状态
Liu-Eleven
linux声音框架音视频学习pcm
/**PCMstate*/typedefenum_snd_pcm_state{/**Open*/SND_PCM_STATE_OPEN=0,/**Setupinstalled*/SND_PCM_STATE_SETUP,/**Readytostart*/SND_PCM_STATE_PREPARED,/**Running*/SND_PCM_STATE_RUNNING,/**Stopped:underru
- 软件工程简答
Ruannn(努力版)
软件工程
什么是软件工程软件工程:将系统化的、规范的、可量化的方法应用于软件的开发、运行和维护,即将工程化方法应用于软件。支持软件工程的根基在于质量关注点。软件工程的基础是过程层,将各个技术层次结合在一起。方法层为构建软件提供技术上的解决方法。工具层为过程和方法提供自动化或半自动化的支持。通用过程模型的定义内容通⽤过程框架定义了5种框架活动——沟通、策划、建模、构建以及部署。⼀系列普适性活动——项⽬跟踪控制
- brew mysql client_Mac安装mysqlclient过程解析
weixin_39630440
brewmysqlclient
尝试在虚拟环境下通过pip安装:pipinstallmysqlclient然后报错:OSError:mysql_confignotfound找到官方文档https://github.com/PyMySQL/mysqlclient-python,解释说安装前需安装另一个模块:brewinstallmysql-connector-c但是报错:查看报错信息,在安装mysql-connector-c前先b
- redis搭建一主一从+keepalived(虚拟IP)实现高可用
qq_36984017
redislinuxkeepalived主从高可用
redis搭建一主一从+keepalived(虚拟IP)实现高可用前提有两台机器:如10.50.3.14110.50.3.142,虚拟ip如:10.50.3.170安装redis(两台机器执行):#启用Remi仓库(CentOS7)sudoyuminstall-yhttps://rpms.remirepo.net/enterprise/remi-release-7.rpm#安装Redis6.xsu
- 使用Seaborn库中的`violinplot`函数绘制水平小提琴图(Violin Plot)是一种常见的数据可视化方法
code_welike
信息可视化数据分析数据挖掘Python
使用Seaborn库中的violinplot函数绘制水平小提琴图(ViolinPlot)是一种常见的数据可视化方法。水平小提琴图可以展示数据的分布特征,并可以对比不同组别之间的差异。本文将介绍如何使用Python和Seaborn库绘制水平小提琴图,并提供相应的源代码示例。首先,我们需要确保已经安装了Seaborn库。可以使用以下命令在Python中安装Seaborn:pipinstallseabo
- 使用Seaborn绘制水平小提琴图
YOUFDJ
python开发语言Python
使用Seaborn绘制水平小提琴图水平小提琴图是一种常用的数据可视化工具,可以用于展示不同类别之间的分布情况。在Python中,我们可以使用Seaborn库的catplot函数来轻松地绘制水平小提琴图。本文将介绍如何使用Seaborn绘制水平小提琴图,并附带相应的源代码示例。首先,确保你已经安装了Seaborn库。如果没有安装,可以使用以下命令在命令行中安装:pipinstallseaborn安装
- EasySwoole热加载
龏皚觻髾檃
PHPEasySwoolephp
文件热加载由于swoole常驻内存的特性,修改文件后需要重启worker进程才能将被修改的文件重新载入内存中解决:Process的方式实现文件变动自动进行服务重载1.安装inotify扩展peclinstallinotify2.操作成功后,修改php.ini,加入extension=inotify.so新建文件App/Process/HotReload.php并添加如下内容,也可以放在其他位置,请
- Matplotlib使用Times New Roman自带粗体的bug解决方法
Flaribbit
python
这个bug已经修复了原文:解决方法(执行一次永久解决):delmatplotlib.font_manager.weight_dict['roman']matplotlib.font_manager._rebuild()https://github.com/matplotlib/matplotlib/issues/5574
- Ubuntu18.04切换python3.8版本
波波维琦
pythonlinuxubuntu
安装python3.8sudoaptinstallpython3.8赋予python优先级sudoupdate-alternatives--install/usr/bin/pythonpython/usr/bin/python3.82切换python默认版本sudoupdate-alternatives--configpython选择python3.8的编号,回车赋予python3优先级sudou
- Linux系统中安装各种常用中间件
Vic2334
运维linux中间件运维
Linux安装docker安装docker定制软件源yuminstall-yyum-utilsdevice-mapper-persistent-datalvm2yum-config-manager--add-repohttp://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo安装最新版dockeryumlistdocker-ce--
- 【JavaWeb学习Day25】
quo-te
JavaWebvue黑马
Web前端实战ElementPlus什么是ElementPlusElementPlus:是饿了么团队研发的,基于Vue3,面向设计师和开发者的组件库。组件:组成网页的部件,例如超链接、按钮、图片、表格、表单、分页条等等。官网:一个Vue3UI框架|ElementPlus快速入门准备工作:1.创建vue项目2.参照官方文档,安装ElementPlus组件库(在当前工程的目录下):npminstall
- 《Oracle常见错误解析》
AAEllisonPang
Oracleoracle数据库
引言在Oracle数据库的日常管理和开发中,错误是不可避免的。无论是数据库管理员(DBA)还是开发人员,都可能在操作过程中遇到各种问题。Oracle数据库的复杂性使得错误的种类繁多,但幸运的是,大多数常见错误都有相对固定的解决方法。本文将为您详细解析20个Oracle常见错误,并提供针对性的解决方案,帮助您快速定位问题并高效解决,确保系统的稳定运行。背景Oracle数据库作为全球最广泛使用的关系型
- VMWare Centos7虚拟机安装并运行MongoDB
Jay_Wooz
经验数据库环境搭建mongodblinux数据库
虚拟机:CentOS-7-x86_64-Minimal-2009MongoDB:mongodb-linux-x86_64-rhel70-5.0.5运行起来#Step1.安装依赖yuminstalllibcurlopenssl-y#Step2.下载mongoDB压缩包wgethttps://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-5.
- 树莓派4B arm平台aarch64 pip安装pytorch
纬领网络
pytorcharm深度学习
比如你要安装torch1.7.1的版本,你执行下面这行命令pip3installtorch==1.7.1torchvision==0.8.2torchaudio==0.7.2-fhttps://torch.kmtea.eu/whl/stable-cn.html
- python使用matplotlib库绘制饼图
zhan114514
python科学绘图pythonmatplotlib开发语言
使用python的matplotlib库绘制饼图,包括普通饼图、堆叠饼图、嵌套饼图,并一一封装成了方法,直接调用使用。先安装matplotlib库,pipinstallmatplotlib代码如下:fromtypingimportSequenceimportmatplotlib.pyplotaspltimportmatplotlibimportnumpyasnpmatplotlib.rcParam
- 如何在 virtualenv 中从 python scipt 运行 Tensorboard?
潮易
pythonvirtualenv开发语言
如何在virtualenv中从pythonscipt运行Tensorboard?要在virtualenv中从Pythonscript运行TensorBoard,你需要遵循以下步骤:1.安装TensorBoard:确保你已经安装了TensorBoard。如果还没有安装,可以通过pip安装:```bashpipinstalltensorboard```2.在你的项目目录下创建一个日志目录(logdir
- 使用Truffle进行智能合约测试
25号底片t
智能合约区块链网络
1、Vscode下安装Solidity插件,change到指定的solidity编译器的版本下2、Truffle开发框架的安装:npminstall-gtruffle3、在workspace下新建一个truffle-test的项目目录,执行truffleinit初始化项目D:\WorkSpace\4、在migrations目录下新建一个js文件:1_deploy_contracts.js(注意文件
- 【大语言模型_5】xinference部署embedding模型和rerank模型
没枕头我咋睡觉
大语言模型语言模型embedding人工智能
一、安装xinferencepipinstallxinference二、启动xinference./xinference-local--host=0.0.0.0--port=5544三、注册本地模型1、注册embedding模型curl-XPOST"http://localhost:5544/v1/models"\-H"Content-Type:application/json"\-d'{"mod
- 安全基线-rm命令防护
晓夜残歌
安全chrome前端运维ubuntu服务器
限制rm命令使用的多层级解决方案方案1:基础防护(个人/小型团队)1.1别名替换法#在~/.bashrc或全局/etc/bash.bashrc中添加aliasrm='echo"Usetrash-cliinstead.Installvia:sudoapt-getinstalltrash-cli"'aliasrm='trash-put'#安装后替换为实际命令优点:简单易行,防止误删缺点:可通过/bin
- 记录 macOS 上使用 Homebrew 安装的软件
獨梟
#macOS软件安装配置macos
Homebrew是macOS上最受欢迎的软件包管理器之一,能够轻松安装各种命令行工具和GUI应用。本文记录了我通过Homebrew安装的各种软件,并对它们的用途和基本使用方法进行介绍。Homebrew介绍Homebrew是一个开源的包管理器,可以让macOS用户方便地安装和管理各种命令行工具和GUI应用。安装Homebrew后,可以使用brewinstall命令安装各种工具。安装Homebrew:
- python做飞机大战让敌机打子弹_python(pygame)滑稽大战(类似飞机大战) 教程
青云若水
初始准备工作本项目使用的python3版本(如果你用python2,我不知会怎么样)Ide推荐大家选择pycharm(不同ide应该没影响)需要安装第三方库pygame,pygame安装方法(windows电脑,mac系统本人实测与pygame不兼容,强行运行本项目卡成ppt)电脑打开cmd命令窗口,输入pip3installpygame补充说明:由于众所周知的原因,安装过程中下载可能十分缓慢,甚
- 在.Net Core(.Net5)中使用开源组件SqlTableDependency来监听ms sqlserver的数据库数据变化
Lingbug
数据库.netcore.net
文章目录1、本文主要说明在.NetCore(Demo为.Net5)中使用开源组件SqlTableDependency来监听mssqlserver的数据库数据变化2、github地址:https://github.com/IsNemoEqualTrue/monitor-table-change-with-sqltabledependency3、安装nuget包:install-packageSqlT
- java工厂模式
3213213333332132
java抽象工厂
工厂模式有
1、工厂方法
2、抽象工厂方法。
下面我的实现是抽象工厂方法,
给所有具体的产品类定一个通用的接口。
package 工厂模式;
/**
* 航天飞行接口
*
* @Description
* @author FuJianyong
* 2015-7-14下午02:42:05
*/
public interface SpaceF
- nginx频率限制+python测试
ronin47
nginx 频率 python
部分内容参考:http://www.abc3210.com/2013/web_04/82.shtml
首先说一下遇到这个问题是因为网站被攻击,阿里云报警,想到要限制一下访问频率,而不是限制ip(限制ip的方案稍后给出)。nginx连接资源被吃空返回状态码是502,添加本方案限制后返回599,与正常状态码区别开。步骤如下:
- java线程和线程池的使用
dyy_gusi
ThreadPoolthreadRunnabletimer
java线程和线程池
一、创建多线程的方式
java多线程很常见,如何使用多线程,如何创建线程,java中有两种方式,第一种是让自己的类实现Runnable接口,第二种是让自己的类继承Thread类。其实Thread类自己也是实现了Runnable接口。具体使用实例如下:
1、通过实现Runnable接口方式 1 2
- Linux
171815164
linux
ubuntu kernel
http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.1.2-unstable/
安卓sdk代理
mirrors.neusoft.edu.cn 80
输入法和jdk
sudo apt-get install fcitx
su
- Tomcat JDBC Connection Pool
g21121
Connection
Tomcat7 抛弃了以往的DBCP 采用了新的Tomcat Jdbc Pool 作为数据库连接组件,事实上DBCP已经被Hibernate 所抛弃,因为他存在很多问题,诸如:更新缓慢,bug较多,编译问题,代码复杂等等。
Tomcat Jdbc P
- 敲代码的一点想法
永夜-极光
java随笔感想
入门学习java编程已经半年了,一路敲代码下来,现在也才1w+行代码量,也就菜鸟水准吧,但是在整个学习过程中,我一直在想,为什么很多培训老师,网上的文章都是要我们背一些代码?比如学习Arraylist的时候,教师就让我们先参考源代码写一遍,然
- jvm指令集
程序员是怎么炼成的
jvm 指令集
转自:http://blog.csdn.net/hudashi/article/details/7062675#comments
将值推送至栈顶时 const ldc push load指令
const系列
该系列命令主要负责把简单的数值类型送到栈顶。(从常量池或者局部变量push到栈顶时均使用)
0x02 &nbs
- Oracle字符集的查看查询和Oracle字符集的设置修改
aijuans
oracle
本文主要讨论以下几个部分:如何查看查询oracle字符集、 修改设置字符集以及常见的oracle utf8字符集和oracle exp 字符集问题。
一、什么是Oracle字符集
Oracle字符集是一个字节数据的解释的符号集合,有大小之分,有相互的包容关系。ORACLE 支持国家语言的体系结构允许你使用本地化语言来存储,处理,检索数据。它使数据库工具,错误消息,排序次序,日期,时间,货
- png在Ie6下透明度处理方法
antonyup_2006
css浏览器FirebugIE
由于之前到深圳现场支撑上线,当时为了解决个控件下载,我机器上的IE8老报个错,不得以把ie8卸载掉,换个Ie6,问题解决了,今天出差回来,用ie6登入另一个正在开发的系统,遇到了Png图片的问题,当然升级到ie8(ie8自带的开发人员工具调试前端页面JS之类的还是比较方便的,和FireBug一样,呵呵),这个问题就解决了,但稍微做了下这个问题的处理。
我们知道PNG是图像文件存储格式,查询资
- 表查询常用命令高级查询方法(二)
百合不是茶
oracle分页查询分组查询联合查询
----------------------------------------------------分组查询 group by having --平均工资和最高工资 select avg(sal)平均工资,max(sal) from emp ; --每个部门的平均工资和最高工资
- uploadify3.1版本参数使用详解
bijian1013
JavaScriptuploadify3.1
使用:
绑定的界面元素<input id='gallery'type='file'/>$("#gallery").uploadify({设置参数,参数如下});
设置的属性:
id: jQuery(this).attr('id'),//绑定的input的ID
langFile: 'http://ww
- 精通Oracle10编程SQL(17)使用ORACLE系统包
bijian1013
oracle数据库plsql
/*
*使用ORACLE系统包
*/
--1.DBMS_OUTPUT
--ENABLE:用于激活过程PUT,PUT_LINE,NEW_LINE,GET_LINE和GET_LINES的调用
--语法:DBMS_OUTPUT.enable(buffer_size in integer default 20000);
--DISABLE:用于禁止对过程PUT,PUT_LINE,NEW
- 【JVM一】JVM垃圾回收日志
bit1129
垃圾回收
将JVM垃圾回收的日志记录下来,对于分析垃圾回收的运行状态,进而调整内存分配(年轻代,老年代,永久代的内存分配)等是很有意义的。JVM与垃圾回收日志相关的参数包括:
-XX:+PrintGC
-XX:+PrintGCDetails
-XX:+PrintGCTimeStamps
-XX:+PrintGCDateStamps
-Xloggc
-XX:+PrintGC
通
- Toast使用
白糖_
toast
Android中的Toast是一种简易的消息提示框,toast提示框不能被用户点击,toast会根据用户设置的显示时间后自动消失。
创建Toast
两个方法创建Toast
makeText(Context context, int resId, int duration)
参数:context是toast显示在
- angular.identity
boyitech
AngularJSAngularJS API
angular.identiy 描述: 返回它第一参数的函数. 此函数多用于函数是编程. 使用方法: angular.identity(value); 参数详解: Param Type Details value
*
to be returned. 返回值: 传入的value 实例代码:
<!DOCTYPE HTML>
- java-两整数相除,求循环节
bylijinnan
java
import java.util.ArrayList;
import java.util.List;
public class CircleDigitsInDivision {
/**
* 题目:求循环节,若整除则返回NULL,否则返回char*指向循环节。先写思路。函数原型:char*get_circle_digits(unsigned k,unsigned j)
- Java 日期 周 年
Chen.H
javaC++cC#
/**
* java日期操作(月末、周末等的日期操作)
*
* @author
*
*/
public class DateUtil {
/** */
/**
* 取得某天相加(减)後的那一天
*
* @param date
* @param num
*
- [高考与专业]欢迎广大高中毕业生加入自动控制与计算机应用专业
comsci
计算机
不知道现在的高校还设置这个宽口径专业没有,自动控制与计算机应用专业,我就是这个专业毕业的,这个专业的课程非常多,既要学习自动控制方面的课程,也要学习计算机专业的课程,对数学也要求比较高.....如果有这个专业,欢迎大家报考...毕业出来之后,就业的途径非常广.....
以后
- 分层查询(Hierarchical Queries)
daizj
oracle递归查询层次查询
Hierarchical Queries
If a table contains hierarchical data, then you can select rows in a hierarchical order using the hierarchical query clause:
hierarchical_query_clause::=
start with condi
- 数据迁移
daysinsun
数据迁移
最近公司在重构一个医疗系统,原来的系统是两个.Net系统,现需要重构到java中。数据库分别为SQL Server和Mysql,现需要将数据库统一为Hana数据库,发现了几个问题,但最后通过努力都解决了。
1、原本通过Hana的数据迁移工具把数据是可以迁移过去的,在MySQl里面的字段为TEXT类型的到Hana里面就存储不了了,最后不得不更改为clob。
2、在数据插入的时候有些字段特别长
- C语言学习二进制的表示示例
dcj3sjt126com
cbasic
进制的表示示例
# include <stdio.h>
int main(void)
{
int i = 0x32C;
printf("i = %d\n", i);
/*
printf的用法
%d表示以十进制输出
%x或%X表示以十六进制的输出
%o表示以八进制输出
*/
return 0;
}
- NsTimer 和 UITableViewCell 之间的控制
dcj3sjt126com
ios
情况是这样的:
一个UITableView, 每个Cell的内容是我自定义的 viewA viewA上面有很多的动画, 我需要添加NSTimer来做动画, 由于TableView的复用机制, 我添加的动画会不断开启, 没有停止, 动画会执行越来越多.
解决办法:
在配置cell的时候开始动画, 然后在cell结束显示的时候停止动画
查找cell结束显示的代理
- MySql中case when then 的使用
fanxiaolong
casewhenthenend
select "主键", "项目编号", "项目名称","项目创建时间", "项目状态","部门名称","创建人"
union
(select
pp.id as "主键",
pp.project_number as &
- Ehcache(01)——简介、基本操作
234390216
cacheehcache简介CacheManagercrud
Ehcache简介
目录
1 CacheManager
1.1 构造方法构建
1.2 静态方法构建
2 Cache
2.1&
- 最容易懂的javascript闭包学习入门
jackyrong
JavaScript
http://www.ruanyifeng.com/blog/2009/08/learning_javascript_closures.html
闭包(closure)是Javascript语言的一个难点,也是它的特色,很多高级应用都要依靠闭包实现。
下面就是我的学习笔记,对于Javascript初学者应该是很有用的。
一、变量的作用域
要理解闭包,首先必须理解Javascript特殊
- 提升网站转化率的四步优化方案
php教程分享
数据结构PHP数据挖掘Google活动
网站开发完成后,我们在进行网站优化最关键的问题就是如何提高整体的转化率,这也是营销策略里最最重要的方面之一,并且也是网站综合运营实例的结果。文中分享了四大优化策略:调查、研究、优化、评估,这四大策略可以很好地帮助用户设计出高效的优化方案。
PHP开发的网站优化一个网站最关键和棘手的是,如何提高整体的转化率,这是任何营销策略里最重要的方面之一,而提升网站转化率是网站综合运营实力的结果。今天,我就分
- web开发里什么是HTML5的WebSocket?
naruto1990
Webhtml5浏览器socket
当前火起来的HTML5语言里面,很多学者们都还没有完全了解这语言的效果情况,我最喜欢的Web开发技术就是正迅速变得流行的 WebSocket API。WebSocket 提供了一个受欢迎的技术,以替代我们过去几年一直在用的Ajax技术。这个新的API提供了一个方法,从客户端使用简单的语法有效地推动消息到服务器。让我们看一看6个HTML5教程介绍里 的 WebSocket API:它可用于客户端、服
- Socket初步编程——简单实现群聊
Everyday都不同
socket网络编程初步认识
初次接触到socket网络编程,也参考了网络上众前辈的文章。尝试自己也写了一下,记录下过程吧:
服务端:(接收客户端消息并把它们打印出来)
public class SocketServer {
private List<Socket> socketList = new ArrayList<Socket>();
public s
- 面试:Hashtable与HashMap的区别(结合线程)
toknowme
昨天去了某钱公司面试,面试过程中被问道
Hashtable与HashMap的区别?当时就是回答了一点,Hashtable是线程安全的,HashMap是线程不安全的,说白了,就是Hashtable是的同步的,HashMap不是同步的,需要额外的处理一下。
今天就动手写了一个例子,直接看代码吧
package com.learn.lesson001;
import java
- MVC设计模式的总结
xp9802
设计模式mvc框架IOC
随着Web应用的商业逻辑包含逐渐复杂的公式分析计算、决策支持等,使客户机越
来越不堪重负,因此将系统的商业分离出来。单独形成一部分,这样三层结构产生了。
其中‘层’是逻辑上的划分。
三层体系结构是将整个系统划分为如图2.1所示的结构[3]
(1)表现层(Presentation layer):包含表示代码、用户交互GUI、数据验证。
该层用于向客户端用户提供GUI交互,它允许用户