- html5 h265播放器,PC端播放H265
健康和谐男哥
html5h265播放器
说明需要在PC端浏览器(Chrome)中播放直播视频,视频格式有H264/H265。有不少三方库可以实现。通过video.js(支持H264,不支持H265)videojs-contrib-hlsembedVideo.jsExampleEmbeddata-setup='{}'>参考地址:通过hls.js(支持H264,不支持H265)pcplaym3u8(hlsjs)video{width:600
- ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
seared2008
linuxuseraccessmysql测试functionserver
functionStorePage(){d=document;t=d.selection?(d.selection.type!='None'?d.selection.createRange().text:''):(d.getSelection?d.getSelection():'');void(keyit=window.open('http://www.365key.com/storeit.asp
- 使用Docker和Nginx轻松配置Let's Encrypt免费SSL证书
侯深业Dorian
使用Docker和Nginx轻松配置Let'sEncrypt免费SSL证书去发现同类优质开源项目:https://gitcode.com/在数字化的今天,网站的安全性已成为每个在线业务的基础。Let'sEncrypt提供了免费的SSL证书,使得网站能够启用HTTPS,确保数据传输的安全。这篇项目文章将引导你通过Docker和Nginx,轻松实现Let'sEncryptSSL证书的自动配置。1、项目
- 基于python3.10的Django4.1项目安装启动(二)
weixin_40686234
前端djangobootstrappythonhtml
创建模版---templates和引入静态文件,bootstrap一.创建模版---templates1.在url.py页面编辑路由path("home/",views.home),#用于创建一个templates首页模板2.在views.py页面建立视图映射defhome(request):#去app目录下新建templates目录再新建home.html文件returnrender(reque
- 爬虫实践--爬取学科排名数据
青柠小卖部
爬虫
简介在当今这个信息爆炸的时代,数据的获取和分析变得越来越重要。作为一名数据分析师,我经常需要从各种网站抓取数据来进行研究。最近,我接手了一个项目,需要抓取上海软科排名的数据。上海软科排名是一个权威的大学排名,包含了全球大学的学术排名信息。本文将详细介绍我如何使用Python编写爬虫程序来自动化抓取这些数据。环境准备在开始编码之前,我们需要准备以下环境和库:Python3.xrequests:用于发
- 构建响应式管理后台系统(Python + Django + Bootstrap)
后端架构魔术骑士
pythondjangobootstrapPython
在本文中,我们将使用Python编程语言结合Django和Bootstrap框架来构建一个响应式管理后台系统。我们将使用Django作为后端框架,处理数据和业务逻辑,并使用Bootstrap作为前端框架,实现用户界面的设计和布局。环境设置和项目创建首先,确保你已经安装了Python和Django。在命令行中运行以下命令来创建一个新的Django项目:$django-adminstartprojec
- protobuf学习和使用(Python)
呀儿呦丶
Python学习python开发语言
Protobuf学习文章目录Protobuf学习简介安装example数据类型映射关系proto2和proto3的区别案例example1_定义基本的消息类型example2_使用repeated字段example3_定义枚举类型example4_使用oneofexample5_字段编号与保留简介ProtocolBuffers(Protobuf)是一种由Google开发的高效、跨平台的序列化协议。
- html5 webgl stl,新闻|Babylon.js|Babylon.js教程|Babylon.js开发|Babylon.js制作|webgl|three.js|html53D可视化开发...
miao君
html5webglstl
4.0.0主要更新添加了对ammo.js的支持,作为物理插件(复合对象,电机,关节)(TrevorDev)Added在ammo.js物理插件中增加了对3D软体,2D布和1D绳索的软体的支持(JohnK)添加了AmmoJSPlugin场景文件加载器(MackeyK24)添加了对WebXR支持(TrevorDev)添加customAnimationFrameRequester以允许会话挂钩到引擎的渲染
- Babylon.js实战3D模拟场景
天涯学馆
WebGL3D图形图像技术javascript3d前端Babylon.jswebgl
目录初始化场景和引擎添加环境和光照创建地面和墙壁添加家具和装饰摄像机和控制交互性渲染循环
- craw cpp自定义中间
AGMTI
crowcppc++
直接上代码:#include#include#includestructAdminAreaGuard{structcontext{};voidbefore_handle(crow::request&req,crow::response&res,context&ctx){std::coutsecondapp;CROW_ROUTE(app,"/")([](){return"Helloworld!";}
- 力扣【416. 分割等和子集】详细Java题解(背包问题)
hamster2021
leetcodejava算法
首先我们可以求出数组和,当我们找到一个子集中元素的和为数组和的一半时,该就说明可以分割等和子集。对于该问题我们可以转换成背包问题,求数组里的元素装入数组和的一半大小的背包能取得的最大值。然后注意可以剪枝的地方。代码:classSolution{publicbooleancanPartition(int[]nums){//计算数组的和intsum=0;for(intnum:nums)sum+=num
- 【Pandas】pandas Series describe
liuweidong0802
PandasSeriespandas
Pandas2.2SeriesComputationsdescriptivestats方法描述Series.abs()用于计算Series中每个元素的绝对值Series.all()用于检查Series中的所有元素是否都为True或非零值(对于数值型数据)Series.any()用于检查Series中是否至少有一个元素为True或非零值(对于数值型数据)Series.autocorr()用于计算Se
- uniapp 实现Toast轻提示!
Rlm*
vue+uni-appuni-appvue.jsjavascript
一、在components文件夹下新建Toast文件,包含Toast.vue和index.jsToast.vue{{text}}exportdefault{name:"Toast",props:{isshow:{type:Boolean,},text:{type:String,},},watch:{isshow(val){if(val===true){setTimeout(()=>{this.is
- 【Julia】在Julia中优雅地配置Artifacts
x66ccff
juliajulia开发语言
引言在Julia包开发中,我们经常需要处理外部依赖和数据文件。Julia的Artifacts系统提供了一个优雅的解决方案,让我们可以轻松管理这些依赖。本文将介绍如何在Julia项目中正确配置和使用Artifacts。什么是Artifacts?Artifacts是Julia包管理系统的一个特性,它允许我们:管理二进制依赖处理数据文件自动下载和缓存资源⬇️跨项目共享资源步骤指南1.创建Artifact
- 怎么创建一个能在线测试php的html5网页?
很酷的站长
编程记录html5专题php专题phphtml5开发语言
代码示例:一、搭建服务器环境首先,你需要在服务器上搭建PHP运行环境。如果你使用的是Linux服务器,可以使用Apache或Nginx作为Web服务器,并安装PHP解释器。对于Windows服务器,可以使用WAMP(Windows,Apache,MySQL,PHP)或XAMPP等集成环境。二、创建HTML表单页面创建一个HTML页面,包含一个表单,用户可以在表单中输入PHP代码,将该代码提交到服务
- day1-ES6学习基础语法
clock的时钟
es6学习前端
title:day1-ES6学习基础语法date:2025-01-1512:00:00tags:-前端categories:-前端ES6#一认识:什么是ES6?ES6,全称ECMAScript2015,是JavaScript语言的一个重要版本,对语言进行了许多重大改进和新增功能。ES6的引入极大地提升了JavaScript的可用性、可读性和开发效率*ECMAScript是由ECMA国际标准化组织制
- 一个简单的自适应html5导航模板
很酷的站长
html5专题csscss3前端
一个简单的HTML导航模板示例,它包含基本的导航栏结构,同时使用了CSS进行样式美化,让导航栏看起来更美观。另外,还添加了一些JavaScript代码,用于在移动端实现导航菜单的展开和收起功能。PHP网址导航模板body{font-family:Arial,sans-serif;margin:0;padding:0;background-color:#f4f4f4;}header{backgrou
- Python简单实用的连点器
仍稽
python
python中可以控制鼠标和键盘的库有很多个,这个连点器使用的是pynput库。首先,我们要先安装pynput库。pipinstallpynput如果觉得太慢了或者报错了,可以使用国内镜像。pipinstallpynput-ihttps://pypi.tuna.tsinghua.edu.cn/simple废话不多说,直接上程序。frompynput.keyboardimportKey,Contro
- Debian11之DataX安装
大能嘚吧嘚
Linux_Debian分布式调度中心大数据
下载github地址安装mkdir/usr/local/DataX&&cd/usr/local/DataXtar-zvxfdatax.tar.gz自检python/usr/local/DataX/bin/datax.py/usr/local/DataX/job/job.json
- 如何寻找好用的GPTs模型?
小宝哥Code
ChatGPT与AIGC人工智能
要有效地寻找和使用好用的GPT模型,可以按照以下步骤来选择和应用最合适的模型,尤其是在科研或工作中需要完成特定任务时:1.明确需求和任务在寻找适合的GPT模型之前,首先需要明确你要解决的任务或需求。不同的GPT模型在处理各种任务时表现不一样。常见的任务包括:文本生成:创作文章、生成报告、写作论文等。问答系统:快速解答科研问题、技术问题等。翻译和润色:翻译论文、改进文章语言质量等。数据分析和图表生成
- 【转载】Spring Cloud Alibaba文档
Hatakefiftyfifty
Spring家族-SpringCloudspringcloudjava微服务
IntroductionSpringCloudAlibabaaimstoprovideaone-stopsolutionformicroservicesdevelopment.Thisprjoectincludestherequiredcomponentsfordevelopingdistributedapplicationsandservices,sothatdeveloperscandevel
- 2920. 收集所有金币可获得的最大积分
咔咔咔的
leetcodec++
2920.收集所有金币可获得的最大积分题目链接:2920.收集所有金币可获得的最大积分代码如下://参考链接:https://leetcode.cn/problems/maximum-points-after-collecting-coins-from-all-nodes/solutions/2503152/shu-xing-dp-ji-yi-hua-sou-suo-by-endless-phzx
- 基于Python的Selenium详细教程总结(极简版)
weixin_41663997
pythonselenium开发语言
基于Python的Selenium详细教程总结一、PyCharm安装配置Selenium使用环境:Windows11,Python3.10.5,PyCharm2022.1.3,Selenium4.3.0需要技术:Python,HTML,CSS,JavaScriptSelenium安装:查看已安装的Python包:piplist安装Selenium4.3.0:pipinstallselenium==
- 基于requests库的爬虫实战 京东商品信息爬取
Jerry104393
Pythonpython爬虫正则表达式
一,功能描述:目标:从京东商城爬取商品信息,输出商品名称和价格二、技术路线:requests-re-bs4三,程序设计结构:1.爬取网页内容:getHTMLText()2.提取信息到合适的数据结构中:parsePage()3.利用数据结构展示并输出:printGoodsList()四、体会:本次实验遇到的最大技术难题就是怎么剔除HTML标签(查看源代码发现可以用i和em两个标签精确定位),后来查看
- oracle用hints调优,oracle性能优化之--hints
顾汐漫
oracle用hints调优
hints是oracle提供的一种机制,用来告诉优化器按照我们告诉它的方式生成执行计划。可以用hints来实现:1)使用的优化器的类型2)基于代价的优化器的优化目标,是all_rows还是first_rows。3)表的访问路径,是全表扫描,还是索引扫描,还是直接利用rowid。4)表之间的连接类型5)表之间的连接顺序6)语句的并行程度1、写HINT目的人为的改变SQL语句的执行计划2、HINT可以
- MySQL优化系列9-MySQL控制查询优化器Hints
只是甲
MySQL从小工到专家之路#MySQL优化mysqlhintsMySQL调整执行计划
备注:测试数据库版本为MySQL8.0文章目录一.控制查询计划评估二.可切换的优化三.优化器的Hints3.1优化器Hints概述3.2优化器Hints语法3.3连接顺序优化器Hints3.4表级别的优化器Hints3.5索引级别优化器Hints3.6子查询相关优化器的Hints3.7语句执行时间优化器Hints3.8可变设定Hints语法3.9资源组Hint语法3.10命名查询块的优化器Hint
- 【Oracle中使用sta和hint进行性能优化】
淦述昌
性能优化oracle数据库
最近工作中遇到一个非常诡异的事情:sql直接执行快,在存过/匿名块/视图里面执行慢。查看语句的执行计划一模一样,通过对SQL的逐步分析,发现是后台实际的SQL_ID不一致导致的。本文用于对记录对于问题的分析步骤,以及用到的一些优化方式。一:优化思路:1:确定SQL卡在那个部分。将sql分解成一个个select,然后通过insertintotestselect……在直接执行和在declare匿名块中
- 「译」2024 年的 5 个 JavaScript 安全最佳实践
泯泷
浏览器前端安全javascript安全开发语言
链接:https://thenewstack.io/5-javascript-security-best-practices-for-2024/作者:AlexanderT.Williams原标题:5JavaScriptSecurityBestPracticesfor2024网络安全已成为一个瞬息万变的战场,JavaScript应用程序的安全性也不例外。Web应用程序已成为黑客试图获取敏感数据和财务
- 计算机毕业设计JAVA房屋租赁系统mybatis
煦洋cxsj985
mybatisjava开发语言
计算机毕业设计JAVA房屋租赁系统mybatis计算机毕业设计JAVA房屋租赁系统mybatis+源码+调试部署+系统+数据库+lw本源码技术栈:项目架构:B/S架构开发语言:Java语言开发软件:ideaeclipse前端技术:Layui、HTML、CSS、JS、JQuery等技术后端技术:JAVA运行环境:Win10、JDK1.8数据库:MySQL5.7/8.0源码地址:https://pan
- Oracle 导入jar包:ora-29532
two_rain
oraclejaroraclejava
加载JAVA包loadjava‐u用户名/密码‐v‐resolvejar包.java**删除JAVA包:dropjava‐u用户名/密码‐vjar包.javajava引用报错需要加权限:SQL>GRANTEXECUTEONdbms_cryptoTO用户名;SQL>GRANTEXECUTEONdbms_javaTO用户名;SQL>此处省略创建sm4_encrypt函数SQL>selectsm4_en
- 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交互,它允许用户