DTcmsV4.0分析学习——(3)URL重写

3.URL重写

3.1 控制流程

通过IHttpModule控制所有页面请求,具体流程如下

 

(1)真实路径可正常访问

(2)前台页面通过URL重写映射aspx目录,后台页面通过URL重写映射admin目录,插件页面通过URL重写映射plugins目录,静态页面通过URL重写映射html目录

(3)xmlconfig/urls.config 是URL重写规则的XML配置文件,使用缓存依赖优化性能

 

URL重写与MVC路由在功能上很相似,但两者其实并不相同,区别在于,URL重写是将一个URL映射到另一个URL,而路由则是将URL映射到资源。

 

3.2 源码分析 

3.2.1 URL字典

读取URL配置文件,使用缓存(文件依赖- xmlconfig/urls.config),并使用单例模式。

使用volatile定义变量,读取这个变量的值时候每次都是从momery里面读取而不是从cache读。这样做是为了保证读取该变量的信息都是最新的,而无论其他线程如何更新这个变量。

上面是DTcms的写法,但有一个问题就是每次返回时首先要上锁再判断,这样就牺牲了一些本来不必牺牲的性能,因此,可以优化代码:

添加的外层的if语句块,这是为了使得每个线程欲获取实例时不必每次都得加锁,因为只有实例为空时(即需要创建一个实例),才需加锁创建,如果已存在一个实例,就直接返回该实例,节省了性能开销。

 

转载于:https://www.cnblogs.com/hifor/p/4572009.html

DTcms V4.0源码说明: 版本号:V4.0.0 数据库:MSSQL2005、ACCESS DTcms 4.0增强与改进的功能有: 1、增加了视频功能,会员注册部分进行了整改; 2、使用了新上传控件,FLASH和HTML5自行切换; 3、使用了新的弹出窗插件; 4、前后台界面全新设计,后台兼容IE8的响应式; 5、IIS7.0以上应用池用集成模式不需要任何设置即可完美运行; 6、对查询分页进行改进与优化; 7、增加了分站概念,支持每个站子单独设置站点信息; ...... ===================更新日志==================== 2015年5月16日修正一下发布出现的文件不存在的错误; 2015年5月16日修正一下删除用户出错问题;2015年5月24日修复日志: 1、部分订单无法提交异常BUG(已修复) 2、360浏览器编辑页面下拉菜单被遮挡BUG(已修复) 3、PC模板会员中心订单详情页支付按钮链接错误(已修复) 4、PC模板支付成功后显示提示消息样式丢失问题(已修改) 5、IIS上传超30M显示404未知错误,修改Web.config文件,修改文件最大上传文件为50M(已修改) 6、商品图片放大镜定位错乱问题(已修复) =============2015年6月7日修复日志================= 1、后台导般菜单管理上传图标成功后没有回调地址BUG(已修复) 2、后台非超级管理员后台回复评论时提示无权限BUG(已修复) 3、后台上传文件大小设置为0时上传附件失败BUG(已修复) 4、2015年6月9日修复ACCESS分页显示错误的BUG(已修复) =============2015年6月29日修复日志================= 1、后台上传文件时报错,无法删除旧图片BUG(已修复) 2、后台修改栏目类别时JS提示change2cn未定义(已修复) 3、后台友情链接插件无法上传文件BUG(已修复) 4、支付接口回调地址不正确BUG(已修复) 5、后台查询评论时发生错误BUG(已修复) 6、后台artdialog插件在弹窗确定取消时显示回调错误问题(已修复) 7、再次修复上传图片时可跨目录删除文件(高危漏洞)(已修复) =============2015年9月18日修复日志================= 1、后台频道URL配置设置为栏目页时前台发生异常BUG(已修复) 2、后台修改站点信息时删除菜单时发生导常BUG(已修复) 1、创建频道时数据库如没有默认值时加载出错BUG(已修复) 2、前台会员注册过滤用户名不严格导致SQL注入高危漏洞(已修复) 3、前后台输入框无法输入小键盘数字的BUG(已修复) 4、ACCESS版本用户申请取回密码发送邮件出错的BUG(已修复)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值