对web应用中单一入口模式的理解及php实现

  在我们web应用的开发中,经常会听见或看见单一入口模式,在我开始学习tp框架的时候也不理解为什么要运用一个单一入口模式,只是会使用,最近自己在搞一个小东西的时候才明白为什么在web开发中要运用单一入口模式。

  那么,什么叫单一入口模式呢?单一入口模式官方版就是用一个文件处理所有的请求。其实,说通俗一点就是,当我们访问一个网站,都是在地址栏中通过http的请求访问,在http的请求中,我们需要标明我们要访问什么页面,什么内容,单一入口模式就是将你所有的请求都通过这一个文件转发出去,就好比a想找b,找c,找d,多入口就是找谁直接去找,单入口就是如果a想找b,需要先通过e,告诉e找c什么事,然后e再去找c。这样我们就可以很好的看出来单入口模式的优点就在于安全,单入口可以将过滤掉一些非法的字符和请求。

  php实现单一入口模式:

  一个简单的单一入口文件非常容易实现,既然没有了多入口,那么必然就会变成单入口多参数的形式。所以,在访问index.php时传入规定格式的参数,比如:http://localhost/index.php?con=article&met=list  上述表示我们想要访问article控制器的list方法,即请求一个文章的列表页。

1 <?php
2 $controller=$_GET["con"]==""?"index":$_GET["con"];  //获取get请求的参数信息,如果没有参数,则默认给定index
3 $method=$_GET["met"]==""?"index":$_GET["met"];
4 require_once($controller."Controller.class.php");   //包含对应请求的控制器文件
5 $obj=new $controller."Controller()";    //实例化控制器对应的类
6 $obj->$method."()";   //调用对应请求的方法
7 ?>

上述代码就实现了一个最简单的单一入口模式的请求,在http请求时,传入对应的参数,然后通过index.php的文件对传入的参数进行获取,获取后找到相应的文件,然后进行调用访问。这样就实现了在单一入口模式下对整个网站的访问。

  单一入口模式最主要的优点就是安全,可以在入口文件中对请求字符中的非法字符进行过滤。当然事情都有两面性,看网站大神所写这种模式对搜索引擎不友好,搜索引擎不认为它是一个正常的URL,可以改用pathinfo的方式。不过目前还没有学习到那种程度,所以以后会更加深入的学习。

时间: 2024-10-14 05:11:34

对web应用中单一入口模式的理解及php实现的相关文章

高访问量WEB开发中的架构模式,学习从点滴开始

当一个Web系统从日访问量10万逐步增长到1000万,甚至超过1亿的过程中,Web系统承受的压力会越来越大,在这个过程中,我们会遇到很多的问题.为了解决这些性能压力带来问题,我们需要在Web系统架构层面搭建多个层次的缓存机制.在不同的压力阶段,我们会遇到不同的问题,通过搭建不同的服务和架构来解决. Web负载均衡 Web负载均衡(Load Balancing),简单地说就是给我们的服务器集群分配"工作任务",而采用恰当的分配方式,对于保护处于后端的Web服务器来说,非常重要. 负载均衡

(第三周)团队模式中对交响乐团模式的理解

今天看书的时候,看到了团队模式中的交响乐团模式,有些许看法,在此写一下,首先,顾名思义,对于交响乐我们都不陌生,交响乐的特点是家伙什多,门类齐全:各个表演者各司其职,各自有专门的场地,演奏期间没有聊天走动的现象:还有就是演奏都靠谱,平时看指挥:再者演奏的都是经过多次练习的曲目,重在执行,交响乐是人类音乐文化的高级形式,这里说到了交响乐团模式,整个团队中的成员对于整体而言自然不可或缺,但是还有一点就是个人的成功并不是整个团队的成功,我觉得这种模式是软件开发团队必须要有的基本素质,如果在项目中只想着

关于java中生产者消费者模式的理解

在说生产者消费者模式之前,我觉得有必要理解一下 Obj.wait(),与Obj.notify()方法.wait()方法是指在持有对象锁的线程调用此方法时,会释放对象锁,同时休眠本线程.notify()方法是持有相同的对象锁来唤醒休眠的线程,使其具有抢占cpu的资格.可以理解同步方法,同步方法的对象锁就是谁调用这个方法,这个对象就是对象锁. 根据李兴华老师的视频讲解,建立一个生产者类,一个消费者类,还有一个Info类,贴上代码: 1.生产者类 package com.company; /** *

简单介绍php编程单一入口和多入口模式(案例)

php单一入口模式可谓是现在一种比较流行的大型web应用开发模式,比如当前比较流行的一些php开发框架,zend,thinkphp,qeephp,还有cakephp 等他们都是采用的单一入口模式的.本文将就什么是单一入口模式,单一入口模式有哪些优点以缺点做一下研究. 什么是单一入口? 在解释什么是单一入口之前,先说说与之对应的多入口.多入口即通过访问不同的 php 文件运行对应的功能.比如刚开始学习 php 的时候,我们做一个项目通常都会如下这样做: index.php - 网站首页 list.

通过__DIR__和 getcwd()的不同之处来剖析像ThinkPHP等单一入口文件类框架模式

__DIR__,PHP5.3的全局预定义常量,为当前文件的所在目录的绝对路径形式的表示,类似的还有__FILE__,为访问本文件的绝对路径. getcwd()为get current working directory,即当前执行的脚本的目录位置,何为当前执行的脚本. index.php <?php     require_once('lib/init.php'); ?> lib/ init.php <?php     echo __DIR__;     echo '<br/>

web项目中的web.xml元素解析

1 定义头和根元素 部署描述符文件就像所有XML文件一样,必须以一个XML头开始.这个头声明可以使用的XML版本并给出文件的字符编码.DOCYTPE声明必须立即出现在此头之后.这个声明告诉服务器适用的servlet规范的版本(如2.2或2.3)并指定管理此文件其余部分内容的语法的DTD(Document Type Definition,文档类型定义).所有部署描述符文件的顶层(根)元素为web-app.请注意,XML元素不像HTML,他们是大小写敏感的.因此,web-App和WEB-APP都是不

java中的工厂模式

java中的工厂模式,个人理解是:要想制作一个汽车,则必须有轮子,发动机,座椅等. 1.创建一个接口,并且使得轮子,发动机,座椅三个实现类实现这个接口. 2.创建一个工厂,生成基于给定信息的实体类的对象. 1 public class 零件工厂{ 2 3 4 public Shape 获得零件(String 零件名称){ 5 if(零件名称== null){ 6 return null; 7 } 8 if(零件名称.equalsIgnoreCase("轮子")){ 9 return n

单一入口web应用程序概述:结构,特点,优点,缺点/php,asp,jsp

单一入口应用程序概述 什么是单一入口应用程序? 在解释什么是单一入口应用程序之前,我们先来看看传统的 web 应用程序.news.php 显示新闻列表news_edit.php 显示新闻编辑页面这两个页面不但分别实现了两个功能,还成为了应用程序的两个入口. 那什么是入口啊?打个比方,大家上 WC,都是男生进一个门,女生进一个门.这两个门就是 WC 的两个入口. 呵呵,上面的例子应该很好理解吧.那稍微变换一下,单一入口的概念就很容易理解了.现在我们是进一个公共 WC,不管男女都是从最外面的入口进入

web开发中的MVC框架与django框架的MTV模式

有一种程序设计模式叫MVC,核心思想:分层,解耦,分离了 数据处理 和 界面显示 的代码,使得一方代码修改了不会影响到另外一方,提高了程序的可扩展性和可维护性. MVC的全拼为Model-View-Controller,最早由TrygveReenskaug在1978年提出,是施乐帕罗奥多研究中心(Xerox PARC)在20世纪80年代为程序语言Smalltalk发明的一种软件设计模式,是为了将传统的输入(input).处理(processing).输出(output)任务运用到图形化用户交互模