教会你如何在自己建立的网站上使用Mondrian和MDX语句对数据库查询

news/2024/5/10 1:10:16/文章来源:https://blog.csdn.net/duguyiren3476/article/details/84216193

一个简单的Mondrian例子(部分参考某个大牛的文档~~)希望大家学到东西~Mondrian---简单的例子,教会你如何在自己建立的网站上使用Mondrian和MDX语句对数据库查询

可以详细参考豆丁网上的一个文档:http://www.docin.com/p-88928995.html 也可以跟我一起做~

3.1 创建新的web项目

3.1.1 打开myEclipse,新建一个网站我的是这样的:

注意名字要按照我给的,取名为Tezz

Mondrian---简单的例子,教会你如何在自己建立的网站上使用Mondrian和MDX语句对数据库查询

 

建好之后是这样的:


Mondrian---简单的例子,教会你如何在自己建立的网站上使用Mondrian和MDX语句对数据库查询
3.1.2 打开你刚刚解压的文件,进入解压后的文件夹目录mondrian-3.2.1.13885/lib, 把一个名字为mondrian.war的文件解压到当前的文件夹。

 

我进入后是这样:

Mondrian---简单的例子,教会你如何在自己建立的网站上使用Mondrian和MDX语句对数据库查询

我直接把.war改为.zip然后解压

3.2 添加文件

第一步

进入解压后的文件夹,选中jpivot、wcf二个文件夹及busy.jsp、error.jsp、testpage.jsp三个文件,我们需要将这些资源复制到我们测试项目的WebRoot文件夹中。

我的是这样的:

Mondrian---简单的例子,教会你如何在自己建立的网站上使用Mondrian和MDX语句对数据库查询

 

把jpivot和wcf这两个文件夹添加到WebRoot下,把剩下三个文件添加到Web-INF里面,我添加完成之后是这样的:

Mondrian---简单的例子,教会你如何在自己建立的网站上使用Mondrian和MDX语句对数据库查询

 

第二步

进入mondrian(之前为.war,后来改名为.zip解压后的文件夹) WEB-INF文件夹(在上面步骤中解压的项目文件mondrian.war里),选中jpivot、lib、wcf这三个文件夹,同样需要复制它们到测试项目的WEB-INF文件夹中。

Mondrian---简单的例子,教会你如何在自己建立的网站上使用Mondrian和MDX语句对数据库查询

 

Jpivot和wcf两个文件夹包含了用于生成用户界面的配置文件

复制进去的时候会问你:

Mondrian---简单的例子,教会你如何在自己建立的网站上使用Mondrian和MDX语句对数据库查询

 

果断yes!

扫面之后就不会出现错误了,之前出现错误是因为我们没有添加实例进去。

Mondrian---简单的例子,教会你如何在自己建立的网站上使用Mondrian和MDX语句对数据库查询

 

3.3 配置web.xml

第一步:在MyEclipese 上打开我们新建项目的文件:web.xml

 

第二步:添加配置文件,直接把我给出的下列代码复制到你的web.xml文件中,注意是覆盖!在下面的代码也会相应对.xml中的一些东西做一些介绍~Mondrian---简单的例子,教会你如何在自己建立的网站上使用Mondrian和MDX语句对数据库查询

1过滤器(filter)

复制下边所示的xml代码到我们测试项目Tezz的web.xml文件中。当然你也可以直接把解压包里面WEB-INF中的web.xml直接拖到你的项目中,可以对比以下两者的不同,其实就是<description>标签显示的内容不一样,可以自己看看。

<filter>

    <filter-name>JPivotController</filter-name>

    <filter-class>com.tonbeller.wcf.controller.RequestFilter</filter-class>

    <init-param>

      <param-name>indexJSP</param-name>

      <param-value>/index.html</param-value>

      <description>如果这是一个新的会话,则转到此页面</description>

    </init-param>

    <init-param>

      <param-name>errorJSP</param-name>

      <param-value>/error.jsp</param-value>

      <description>出错时显示的页面</description>

    </init-param>

    <init-param>

      <param-name>busyJSP</param-name>

      <param-value>/busy.jsp</param-value>

      <description>这个页面用于当用户点击一个查询时,在这个查询还未将结果还回给用户时所显示的界面</description>

    </init-param>

</filter>

 

  <filter-mapping>

    <filter-name>JPivotController</filter-name>

    <url-pattern>/testpage.jsp</url-pattern>

  </filter-mapping>

2 初始化资源的linstener

复制下面的listener到我们的web.xml文件中(用于初始化一些资源)

<listener>

    <listener-class>mondrian.web.taglib.Listener</listener-class>

  </listener>

 

  <!– 资源初始化-->

  <listener>

    <listener-class>com.tonbeller.tbutils.res.ResourcesFactoryContextListener</listener-class>

  </listener>

 

3 Print  servlet

该servlet用于将数据生成Excel文件或pdf文件并返回给用户,如果您需要用到该功能,则需要将其copy到您项目的web.xml文件中

<servlet>

    <servlet-name>Print</servlet-name>

    <display-name>Print</display-name>

    <description>Default configuration created for servlet.</description>

    <servlet-class>com.tonbeller.jpivot.print.PrintServlet</servlet-class>

  </servlet>

 <servlet-mapping>

    <servlet-name>Print</servlet-name>

    <url-pattern>/Print</url-pattern>

  </servlet-mapping>

4 MDXQueryServlet

MDXQueryServlet用于接受并执行一个MDX查询,然后将该查询以Html表格的形式返回。其中的参数connectString用于指定连接到数据库的字符串,例如使用jtds驱动连接到sql server 2000的字符串如下:

Provider=mondrian;Jdbc=jdbc:jtds:sqlserver://localhost/Tezz;user=sa;password=123456;Catalog=/WEB-INF/queries/tezz.xml;JdbcDrivers=net.sourceforge.jtds.jdbc.Driver;

如果您需要用到该功能,则需要将其copy到您项目的web.xml文件中。

<servlet>

    <servlet-name>MDXQueryServlet</servlet-name>

    <servlet-class>mondrian.web.servlet.MDXQueryServlet</servlet-class>

    <init-param>

      <param-name>connectString</param-name>

      <param-value>@mondrian.webapp.connectString@</param-value>

    </init-param>

  </servlet>

 <servlet-mapping>

    <servlet-name>MDXQueryServlet</servlet-name>

    <url-pattern>/mdxquery</url-pattern>

  </servlet-mapping>

5 DisplayChart 和GetChart 这两个Servlet

DisplayChart 和GetChart 这两个Servlet 用于生成图表和将其显示给最终用户,如果您需要用到该功能,则需要将其copy到您项目的web.xml文件中。

<!-- jfreechart provided servlet -->

  <servlet>

    <servlet-name>DisplayChart</servlet-name>

    <servlet-class>org.jfree.chart.servlet.DisplayChart</servlet-class>

  </servlet>

  <!-- jfreechart provided servlet -->

  <servlet>

    <servlet-name>GetChart</servlet-name>

    <display-name>GetChart</display-name>

    <description>Default configuration created for servlet.</description>

    <servlet-class>com.tonbeller.jpivot.chart.GetChart</servlet-class>

  </servlet>

<servlet-mapping>

    <servlet-name>DisplayChart</servlet-name>

    <url-pattern>/DisplayChart</url-pattern>

  </servlet-mapping>

<servlet-mapping>

    <servlet-name>GetChart</servlet-name>

    <url-pattern>/GetChart</url-pattern>

  </servlet-mapping>

 

•       它们用于向用户生成和显示如下所示的各种图表:

Mondrian---简单的例子,教会你如何在自己建立的网站上使用Mondrian和MDX语句对数据库查询

 

6 添加标签库

•       最后添加以下标签库到我们的web.xml项目中即可

<taglib>

    <taglib-uri>http://www.tonbeller.com/wcf</taglib-uri>

    <taglib-location>/WEB-INF/wcf/wcf-tags.tld</taglib-location>

  </taglib>

 

  <taglib>

    <taglib-uri>http://www.tonbeller.com/jpivot</taglib-uri>

    <taglib-location>/WEB-INF/jpivot/jpivot-tags.tld</taglib-location>

  </taglib>

 

到这里,我们对mondrian在web.xml的配置有一定的了解,并可按需要添加相应的功能。接下来我们将要创建本例子所要用到的表格及数据。

 

3.4 准备测试用表

 

本例使用的表结构如下所示:

Mondrian---简单的例子,教会你如何在自己建立的网站上使用Mondrian和MDX语句对数据库查询

 

Sale是事实表,它有两个维:客户(customer)维和由两个表组成的产品(Product)维。

表格的创建很简单,您只需要将下面的sql语句导入数据库即可

1 使用以下sql语句创建表


create table Sale (
         saleId int not null,
         proId int null,
         cusId int null,
         unitPrice float null,  --单价
         number int null,        --数量
         constraint PK_SALE primary key (saleId)
)

        
create table Customer (
         cusId int not null,
         gender char(1) null,         --性别
         constraint PK_CUSTOMER primary key (cusId)
)

create table Product (
         proId int not null,
         proTypeId int null,
         proName varchar(32) null,
         constraint PK_PRODUCT primary key (proId)
)

create table ProductType (
         proTypeId int not null,
         proTypeName varchar(32) null,
         constraint PK_PRODUCTTYPE primary key (proTypeId)
)

2 使用以下sql语句导入数据

insert into Customer(cusId,gender) values(1,'F')
insert into Customer(cusId,gender) values(2,'M')
insert into Customer(cusId,gender) values(3,'M')
insert into Customer(cusId,gender) values(4,'F')

insert into producttype(proTypeId,proTypeName) values(1,'电器')
insert into producttype(proTypeId,proTypeName) values(2,'数码')
insert into producttype(proTypeId,proTypeName) values(3,'家具')

insert into product(proId,proTypeId,proName) values(1,1,'洗衣机')
insert into product(proId,proTypeId,proName) values(2,1,'电视机')
insert into product(proId,proTypeId,proName) values(3,2,'mp3')
insert into product(proId,proTypeId,proName) values(4,2,'mp4')
insert into product(proId,proTypeId,proName) values(5,2,'数码相机')
insert into product(proId,proTypeId,proName) values(6,3,'椅子')
insert into product(proId,proTypeId,proName) values(7,3,'桌子')

insert into sale(saleId,proId,cusId,unitPrice,number) values(1,1,1,340.34,2)
insert into sale(saleId,proId,cusId,unitPrice,number) values(2,1,2,140.34,1)
insert into sale(saleId,proId,cusId,unitPrice,number) values(3,2,3,240.34,3)
insert into sale(saleId,proId,cusId,unitPrice,number) values(4,3,4,540.34,4)
insert into sale(saleId,proId,cusId,unitPrice,number) values(5,4,1,80.34,5)
insert into sale(saleId,proId,cusId,unitPrice,number) values(6,5,2,90.34,26)
insert into sale(saleId,proId,cusId,unitPrice,number) values(7,6,3,140.34,7)
insert into sale(saleId,proId,cusId,unitPrice,number) values(8,7,4,640.34,28)
insert into sale(saleId,proId,cusId,unitPrice,number) values(9,6,1,140.34,29)
insert into sale(saleId,proId,cusId,unitPrice,number) values(10,7,2,740.34,29)
insert into sale(saleId,proId,cusId,unitPrice,number) values(11,5,3,30.34,28)
insert into sale(saleId,proId,cusId,unitPrice,number) values(12,4,4,1240.34,72)
insert into sale(saleId,proId,cusId,unitPrice,number) values(13,3,1,314.34,27)
insert into sale(saleId,proId,cusId,unitPrice,number) values(14,3,2,45.34,27)

 

 

3.5 建立模式文件

 

•       一个模式定义了一个多维数据库. 它包含一个逻辑模型(logical model)、一组数据立方(consisting of cubes)、层次(hierarchies)、和成员(members), 并映射到物理模型(关系数据库)上。

•       简单的说,配置一个模式就是配置一个关系数据结构到多维数据结构的映射。

注:

    关于mondrian的模式及模式的配置,这里我们只对其进行了简单介绍。

 

3.5.1创建模式文件

    模式文件的创建很简单。首先在WEB-INF下新建一个queries的文件夹,然后在该文件夹下创建一个名为tezz.xml的文件。再按下面的步骤将xml元素添加入即可。

 

 

 Mondrian---简单的例子,教会你如何在自己建立的网站上使用Mondrian和MDX语句对数据库查询

3.5.2 配置模式文件

添加数据立方Sales:Mondrian---简单的例子,教会你如何在自己建立的网站上使用Mondrian和MDX语句对数据库查询

 

<Schema name = “tezz”>

<Cube name = “mondrianText”>

       <!--事实表sale(fact table)-->

       <Table name = “sale”/>

</Cube>

</Schema>

 

添加数据立方Sales 的维:


Mondrian---简单的例子,教会你如何在自己建立的网站上使用Mondrian和MDX语句对数据库查询

添加产品维( 因为产品维由两个表连接而成,因此比客户维复杂些)

Mondrian---简单的例子,教会你如何在自己建立的网站上使用Mondrian和MDX语句对数据库查询

 

 

添加度量( 共有三个度量: 数量、平均单价和总销售额)

Mondrian---简单的例子,教会你如何在自己建立的网站上使用Mondrian和MDX语句对数据库查询

 

最后生成的tezz.xml文件内容如下:

<?xml version="1.0" encoding="UTF-8"?>

<Schema name="tezz">

<Cube name="Sales">

    <!-- 事实表(fact table) -->

    <Table name="sale" />

    <!-- 客户维 -->

    <Dimension name="客户性别" foreignKey="cusId">

       <Hierarchy hasAll="true" allMemberName="所有性别" primaryKey="cusId">

           <Table name="Customer"></Table>

           <Level name="gender" column="gender"></Level>

       </Hierarchy>

    </Dimension>

 

    <!-- 产品类别维 -->

    <Dimension name="产品类别" foreignKey="proId">

       <Hierarchy hasAll="true" allMemberName="所有产品" primaryKey="proId"

           primaryKeyTable="product">

           <join leftKey="proTypeId" rightKey="proTypeId">

              <Table name="product" />

              <Table name="producttype"></Table>

           </join>

           <Level name="proTypeId" column="proTypeId" nameColumn="proTypeName"

              uniqueMembers="true" table="producttype" />

           <Level name="proId" column="proId" nameColumn="proName"

              uniqueMembers="true" table="product" />

       </Hierarchy>

    </Dimension>

    <Measure name="数量" column="number" aggregator="sum" datatype="Numeric" />

    <Measure name="总销售额" aggregator="sum" formatString="¥#,##0.00">

    <!-- unitPrice*number所得值的列 -->

       <MeasureExpression>

           <SQL dialect="generic">

              (unitPrice*number)

           </SQL>

       </MeasureExpression>

    </Measure>

    <CalculatedMember name="平均单价" dimension="Measures">

       <Formula>

           [Measures].[总销售额] / [Measures].[数量]

       </Formula>

       <CalculatedMemberProperty name="FORMAT_STRING" value="¥#,##0.00" />

    </CalculatedMember>

</Cube>

</Schema>

3.6编写MDX查询语句

•       在模式文件定义完成之后,我们就可以根据它来编写相应MDX查询语句了。

•       本例所用的MDX语句如下:

Mondrian---简单的例子,教会你如何在自己建立的网站上使用Mondrian和MDX语句对数据库查询

 

我们可以很清楚的看出,columns轴维度包含的是度量。Rows轴维度包含的是维度中的层次的所有成员(allMemberName)

3.7 创建查询文件

注意,连接数据库之前需要配置数据库连接的插件,jdbc, 去微软官网或是找同学要一个jdbc的包,添加到JAVA安装路径的这个文件夹

 

 Mondrian---简单的例子,教会你如何在自己建立的网站上使用Mondrian和MDX语句对数据库查询

如果这个方法不行的话,可以用eclipse 或是myEclipse 手动导入:、

们在用Eclipse开发程序的时候,经常想要用到第三方的jar包。这时候我们就需要在相应的工程下面导入这个jar包。以下配图说明导入jar包的步骤。

1.右击工程的根目录,点击Properties进入Properties。或者选中工程根目录,按Alt-Enter即可。

Mondrian---简单的例子,教会你如何在自己建立的网站上使用Mondrian和MDX语句对数据库查询
Mondrian---简单的例子,教会你如何在自己建立的网站上使用Mondrian和MDX语句对数据库查询

 

 

2.在Properties页面中选中Java Build Path,选中Libraries标签,点击Add External JARs。

Mondrian---简单的例子,教会你如何在自己建立的网站上使用Mondrian和MDX语句对数据库查询

 

3.找到需要添加的jar包,确定即可。

 

 Mondrian---简单的例子,教会你如何在自己建立的网站上使用Mondrian和MDX语句对数据库查询

•       现在我们将创建一个jsp文件,该jsp使用jpivot的mondrianQuery标签来完成查询。

•       该文件最后将被testpage.jsp使用。

•       在/WEB-INF/queries文件夹下面创建一名为tezz的jsp文件。该jsp包含如下内容:

Mondrian---简单的例子,教会你如何在自己建立的网站上使用Mondrian和MDX语句对数据库查询

 

JSP如下:

<%@ page session="true" contentType="text/html; charset=ISO-8859-1" %>

<%@ taglib uri="http://www.tonbeller.com/jpivot" prefix="jp" %>

<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %>

 

<jp:mondrianQuery id="query01"

    jdbcDriver="com.mysql.jdbc.Driver"

    jdbcUrl="jdbc:mysql://localhost/test"

    catalogUri="/WEB-INF/queries/tezz.xml"

    jdbcUser="root" jdbcPassword="123" connectionPooling="false">

    select {[Measures].[数量],[Measures].[平均单价],[Measures].[总销售额]} ON columns,

       {([产品类别].[所有产品],[客户性别].[所有性别])} ON rows

    from [Sales]

</jp:mondrianQuery>

 

<c:set var="title01" scope="session">Sales</c:set>

需要注意的问题是,你要自己修改连接数据库的那几行代码

2.9 布署项目

 

至此我们已经全部配置完成,文件结构如下:

 

蓝色部分为我们添加或创建的部分

Mondrian---简单的例子,教会你如何在自己建立的网站上使用Mondrian和MDX语句对数据库查询

 

•       布署项目,启动Tomcat,在浏览器上输入http://localhost:8080/Tezz/testpage.jsp?query=tezz 即可看到如下结果:

Mondrian---简单的例子,教会你如何在自己建立的网站上使用Mondrian和MDX语句对数据库查询

 

注:

  testpage.jsp?query=tezz,这里的tezz即刚我们创建的用于查询jsp文件名称

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

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

相关文章

网站建设的常识

1,整站DIVCSS步局&#xff0c;虽然写起来很痛苦&#xff0c;注意还要兼容FIERFOX浏览器 css: 1&#xff0c;通常用一个通用的CSS&#xff0c;每个页面都引用&#xff0c;公用的CSS全包含在里面&#xff0c;单个页面再做 一个CSS文件 2&#xff0c;背景图片&#xff0c;把页面用…

高并发高负载的网站架构

这一篇&#xff0c;主要是从技术的角度来阐述网站的架构和功能。在开始技术性的讨论之前&#xff0c;还要说一下前文没有解决的问题。第一是网站名字的问题&#xff0c;给网站取名字&#xff0c;确实很费了我的一番头脑&#xff0c;因为要做数码照片类的网站&#xff0c;又因为…

爬虫小试-将某网站内的试题爬取出来并保存到本地word

emmm&#xff0c;因为要刷作业的试题&#xff08;QWQ题目实在是太多了&#xff09;&#xff0c;在机缘巧合之下竟发现老师上传的题目全部是某网站上的&#xff0c;于是乎哈哈哈&#xff0c;爬下来做题库方便查询&#xff08;CtrlF&#xff09;&#xff0c;下面进入正题&#xf…

asp.net网站服务器搭建之从零开始

<script languagejavascript srchttp://www.shiqiaotou.com/donetk/Header.js></script> 一 IIS&#xff08;Internet Information Services&#xff09;安装: 1.选择"控制面板"。 2.点"添加或删除程序"。 3.选择"添加/删除Windows组…

优化网站性能 提高网站速度访问速度的14条实践

优化网站性能 提高网站速度访问速度的14条实践 西风坊 2009年01月07日17:57 查看 3380次 作者:yaosl 【 大 中 小】 文章分类&#xff1a; 前端交互 相信互联网已经越来越成为人们生活中不可或缺的一部分。ajax&#xff0c;flex等等富客户端的应用使得人们越加“幸福”地体验着…

配色网站50个(转载)

版权声明&#xff1a;本文为博主原创文章&#xff0c;遵循 CC 4.0 BY-SA 版权协议&#xff0c;转载请附上原文出处链接和本声明。 本文链接&#xff1a; https://blog.csdn.net/weixin_45028175/article/details/90407778 50个国内外配色网站整理收集 (包括网站 插件 工具 ap…

yoowalk–web版3D网站浏览,太强了!

刚刚GOOGLE一下&#xff0c;在这里 看到了一个不错的Flex应用介绍&#xff1a; 记得大学的时候玩文字MUD&#xff0c;玩得不亦乐乎&#xff0c;而最近游戏界在狂炒Web游戏&#xff0c;各大游戏界巨头也纷纷投入巨资&#xff0c;希望依靠Web游戏重新对游戏巨头进行 排名刷新。现…

Day4 使用PolarDB和ECS搭建门户网站

Day4 使用PolarDB和ECS搭建门户网站 文章目录 Day4 使用PolarDB和ECS搭建门户网站背景知识实践配置PolarDB安装LAMP安装与配置PbootCMS重启服务验证完成 背景知识 PolarDB 阿里云自研100%兼容MySQL、100%兼容PostgreSQL、高度兼容Oracle语法集群架构&#xff0c;计算与存储分离…

thinkphp6 问题描述,网站在win环境没问题在Linux环境下点击提交,不会提交数据,或者根本无法点击提交

个人纪录&#xff1a; 框架&#xff1a;thinkphp6 开发环境&#xff1a;wnmp (小皮面板) 生产环境&#xff1a;lnmp (阿里云宝塔) 解决方案&#xff1a; php.ini修改 ; max_input_vars 10000

Centos7使用SimpleHttpServer快速搭建素材分享网站

背景 博主在日常的工作中&#xff0c;会经常使用到各种尺寸的图片素材或者视频素材&#xff0c;当然周边的同事也会用得到&#xff0c;所以自己想做一个素材的分享网站&#xff0c;就有点类似于镜像站的那种&#xff0c;博主的在linux 用的是python自带的web服务器SimpleHTTPS…

为Typecho博客网站评论框配置炫酷的打字效果跳动的彩球

缘起 我的个人主页,这次文章提到的的效果,也可以在个人主页的评论区查看效果 搭建这个博客虽然经历了很多坎坷,但还是挺兴奋了,用了点时间去美化他.逛了很多前辈的博客,在给他评论的时候看到他的评论框打字的时候竟然彩色的小球从文字上跳出来,删除的时候也有,主要是动画还比较…

读书札记:ASP.NET网站管理工具-遇到错误。请返回上一页并重试

在配置好了Web.config&#xff0c;打开项目→ASP.NET配置出现下面的错误。使用ASP.NET网站管理工具总是出现“遇到错误。请返回上一页并重试。” 我把这个项目放在其他的机子上使用此工具都是正常的&#xff0c;我觉得问题出在了路径的上&#xff0c;文件夹名字太长了&#xff…

编程经验:关于如何在自己的网站或博客添加CNZZ站长统计功能

关于如何在自己的网站或博客添加CNZZ站长统计功能 1、 注册帐号 http://new.cnzz.com/user/reg.php 这里需要邮箱作为用户名哟&#xff0c;请先注册好邮箱&#xff08;任何邮箱都行&#xff09; 2、 注册完&#xff0c;添加下属站点 http://new.cnzz.com/v1/main.php?ssite…

20+个最棒的 CSS 在线参考网站

20个最棒的 CSS 在线参考网站 时间 2015-06-19 10:20:59 Coder资源网 原文 http://info.9iphp.com/20-css-reference-websites/ 主题 CSS 如果你是一个WEB开发人员&#xff0c;你不可能记得所有的CSS属性和值&#xff0c;这时&#xff0c;CSS参考手册将是非常有帮助的。这篇…

网站可访问性

1、什么是可访问性&#xff1f; 可访问性是一种让尽可能多的用户可以使用你的网站的做法。传统上我们认为这只与残疾人士有关&#xff0c;但是从更广的意义上来讲&#xff0c;对于移动端用户、低网速用户、键盘使用者等都适用。 无障碍指南和法律 万维网联盟&#xff1a;万维…

如何通过GZIP来优化你的网站

如果你想节省带宽提高网站速度&#xff0c;压缩是一种简单有效的方法。当我打算提高JavaScript的传输速率来开启GZIP压缩的时候&#xff0c;我犹豫了因为有旧版本浏览器的存在&#xff08;IE6&#xff09;。 然而在二十一世纪&#xff0c;我们大部分的流量来自于现代浏览器&am…

网站TDK标题的正确写法

什么是TDK&#xff1f; T&#xff1a;title D&#xff1a;meta-description K&#xff1a;meta-keywords TDK的重要性 TDK占比40%的排名得分&#xff0c;没有关键词&#xff0c;网站几乎不会有排名。 书写格式 (1) 标题title&#xff1a; 字数32个字左右格式&#xff1a;…

10个面向程序员的在线编程网站

在过去的几年里&#xff0c;在互联网上出现了许多为开发人员提供的在线编程网站&#xff08;Coding playgrounds&#xff09;。这不是一件坏事情&#xff0c;毕竟&#xff0c;如果一个编程网站的话&#xff0c;开发者们迟早会腻的。在这些网站上&#xff0c;你在网页上编写代码…

在ASP.NET网站中实现带列表的视频播放

在ASP.NET网站中实现带列表的视频播放 方法&#xff1a;用c#将视频文件上传到磁盘上时同时生产对应的xml文件&#xff0c;播放页面使用js读取对应的xml文件生成播放列表。xml文件&#xff1a;文件名&#xff1a;huojian.xml视频上传代码&#xff1a; using System; using Syst…