为什么在处理application.cfm之前运行coldfusion网页?

时间:2014-07-30 14:11:24

标签: web-applications coldfusion

我在Windows2008 R2上使用ColdFusion 11。根据我的理解,如果根文件夹中有application.cfm页面,则根目录下面的任何.cfm页面将首先处理此页面,然后处理常规.cfm页面。我注意到它会处理我的常规页面FIRST,然后调用application.cfm页面。

在我的情况下,我有一个更新数据库的网页,但是在我的application.cfm页面中,我检查了一个会话变量,看看用户是否已登录。如果他们没有登录,那么我将它们重定向到登录页面,让他们登录,设置会话变量,然后重定向它们以处理页面。但我注意到,当我运行页面时,数据库会更新,然后用户被重定向到登录,然后数据库再次更新。

我没有正确使用application.cfm页面吗?我认为应该用它来检查log ins和类似的东西。我如何确保它先运行?

顺便说一句,它是整个网站中唯一的application.cfm页面,我没有任何application.cfc文件。

感谢。

1 个答案:

答案 0 :(得分:5)

Application.cfm将在每个请求中运行。如果您在Application.cfm中有一些数据库命中,那么除非首先发生重定向,否则您将使用每个页面命中该代码。如果没有看到您的确切代码,您可能会对此流程做一些修改:

  
      
  1. 用户请求page.cfm
  2.   
  3. CF在执行page.cfm之前读取application.cfm并且a)命中数据库以在application.cfm中执行某些操作然后b)   将您重定向到login.cfm
  4.   
  5. CF第二次读取application.cfm(这次是login.cfm)和a)命中数据库,以便在application.cfm中执行某些操作   然后b)让你点击login.cfm模板。
  6.   
  7. CF第三次读取application.cfm(这次是您的登录操作页面)。您设置会话变量并绕过   数据库(?)
  8.   

这都是猜测。如果这不能引导您解决问题,请发布您的代码。