【北大天网搜索引擎TSE学习笔记】第3节——从用户点击“搜索”按钮开始
2013-01-22 13:42
519 查看
在第一节中已经将查询服务子系统搭建起来,可以在天网搜索引擎的首页中输入搜索字符串、点击搜索按钮并得到搜索的结果页面。那后台到底是怎么处理的呢?怎么从网页获取用户输入然后调用搜索程序进行搜索呢?大家在这一节将得到答案。
我们从用户操作开始入手,首先呈现在用户面前的是天网搜索的首页,第一节中已经说明该首页的页面文件就是/var/www/html/index.html,我们先看看该文件中的部分内容,如图1所示。
图1
这里<tr>和</tr>标签中定义的内容对应于搜索页面中的输入框和搜索按钮的部分,关于HTML的详细介绍这里不做赘述,可以查看相关资料学习。这里关于HTML的内容很简单,不需要读者有很多的Web开发的知识就能理解,下面简单来看一下这段代码。
<form>定义了一个表单,简单说就是可以接受用户输入并作出动作的区域;<form>中的<input type=”text” …>一行定义了一个文本框,也就是搜索页面中的输入框;<form>中的<input type=”submit” value=”搜索” …>一行定义了一个按钮,也就是搜索页面中的搜索按钮;还有非常重要的是form标签中的属性method=”get”和action=”/yc-cgi-bin/index/TSESearch”,这里是使用CGI程序来实现对用户动作的处理,method指定向服务器提交表单使用的模式,action指定向服务器的何处提交表单,也就是由服务器的哪个程序来响应。
关于CGI的详细介绍可以参考这篇文章学习:http://blog.csdn.net/lewsn2008/article/details/8519908,一定要好好理解CGI模式,因为后面讲解的很多东西都是基于CGI的。这里只对CGI做一个简单的介绍:CGI(Common Gateway
Interface,公共网管接口)是HTTP服务器与服务器上外部程序(称为CGI程序)进行交互的接口标准。CGI程序运行在网络服务器上,可以与Web服务器交互,因而可以获得Web浏览器的输入信息并执行相应的动作,也可以将结果发送给Web浏览器。简单的说,当Web服务器接收到用户的某个请求后(如搜索某个字符串),可以调用服务器上的处理程序(CGI程序)进行处理,CGI程序处理结束后可以把结果发送给浏览器进行显示。
下面继续解释上面的代码,<form>标签中定义了一个编辑框和一个按钮,当用户输入搜索信息然后点击搜索按钮后,服务器接收到用户的搜索请求后,调用CGI程序进行处理。action属性中设置的”/yc-cgi-bin/index/TSESearch”便是服务器中的CGI程序路径,在第一节中介绍过,将TSE的CGI程序默认路径设置为/var/www/html/yc-cgi-bin/index/,我们可以到该目录找到名为TSESearch的程序。说到这里大家应该清楚很多了,简单说就是,当用户提交搜索请求后,服务器调用可执行程序(称为CGI程序)来处理。
TSE系统中的TSESearch程序是从哪里来的呢?细心的朋友应该注意到,源代码文件中有一个源文件便是TSESearch.cpp,TSESearch是TSESearch.cpp编译生成的,也就是说TSESearch.cpp便是实现搜索功能的源代码文件,将在下一节中进行分析。
By:
我们从用户操作开始入手,首先呈现在用户面前的是天网搜索的首页,第一节中已经说明该首页的页面文件就是/var/www/html/index.html,我们先看看该文件中的部分内容,如图1所示。
图1
这里<tr>和</tr>标签中定义的内容对应于搜索页面中的输入框和搜索按钮的部分,关于HTML的详细介绍这里不做赘述,可以查看相关资料学习。这里关于HTML的内容很简单,不需要读者有很多的Web开发的知识就能理解,下面简单来看一下这段代码。
<form>定义了一个表单,简单说就是可以接受用户输入并作出动作的区域;<form>中的<input type=”text” …>一行定义了一个文本框,也就是搜索页面中的输入框;<form>中的<input type=”submit” value=”搜索” …>一行定义了一个按钮,也就是搜索页面中的搜索按钮;还有非常重要的是form标签中的属性method=”get”和action=”/yc-cgi-bin/index/TSESearch”,这里是使用CGI程序来实现对用户动作的处理,method指定向服务器提交表单使用的模式,action指定向服务器的何处提交表单,也就是由服务器的哪个程序来响应。
关于CGI的详细介绍可以参考这篇文章学习:http://blog.csdn.net/lewsn2008/article/details/8519908,一定要好好理解CGI模式,因为后面讲解的很多东西都是基于CGI的。这里只对CGI做一个简单的介绍:CGI(Common Gateway
Interface,公共网管接口)是HTTP服务器与服务器上外部程序(称为CGI程序)进行交互的接口标准。CGI程序运行在网络服务器上,可以与Web服务器交互,因而可以获得Web浏览器的输入信息并执行相应的动作,也可以将结果发送给Web浏览器。简单的说,当Web服务器接收到用户的某个请求后(如搜索某个字符串),可以调用服务器上的处理程序(CGI程序)进行处理,CGI程序处理结束后可以把结果发送给浏览器进行显示。
下面继续解释上面的代码,<form>标签中定义了一个编辑框和一个按钮,当用户输入搜索信息然后点击搜索按钮后,服务器接收到用户的搜索请求后,调用CGI程序进行处理。action属性中设置的”/yc-cgi-bin/index/TSESearch”便是服务器中的CGI程序路径,在第一节中介绍过,将TSE的CGI程序默认路径设置为/var/www/html/yc-cgi-bin/index/,我们可以到该目录找到名为TSESearch的程序。说到这里大家应该清楚很多了,简单说就是,当用户提交搜索请求后,服务器调用可执行程序(称为CGI程序)来处理。
TSE系统中的TSESearch程序是从哪里来的呢?细心的朋友应该注意到,源代码文件中有一个源文件便是TSESearch.cpp,TSESearch是TSESearch.cpp编译生成的,也就是说TSESearch.cpp便是实现搜索功能的源代码文件,将在下一节中进行分析。
By:
相关文章推荐
- 【北大天网搜索引擎TSE学习笔记】第6节——获取用户输入
- 【北大天网搜索引擎TSE学习笔记】第9节——显示搜索结果
- 【北大天网搜索引擎TSE学习笔记】第4节——实现搜索功能的入口程序
- 【北大天网搜索引擎TSE学习笔记】第11节——倒排索引等数据文件的建立(预处理子系统)
- 【北大天网搜索引擎TSE学习笔记】第1节——环境搭建
- 【北大天网搜索引擎TSE学习笔记】第8节——检索关键词+结果排序
- 【北大天网搜索引擎TSE学习笔记】第5节——准备数据
- 【WPF学习笔记】之如何点击“新建”按钮,在面板中加载一条条的“用户控件”的信息:动画系列之(四)
- 【北大天网搜索引擎TSE学习笔记】第7节——中文分词
- 【北大天网搜索引擎TSE学习笔记】第10节——查询服务子系统/总结
- 黑马程序员之WinForm编程基础学习笔记:用户在文本框1,2中输入两个数,点击按钮,在文本框3中显示从文本框1中的数字到文本框2中的数字之间的累加和。如果1或者2为错误的数据格式,则弹出对话框提示错
- 黑马程序员之WinForm编程基础学习笔记:页面上有一张图片,默认是隐藏的,用户在文本框中输入身份证号(131226198105223452),点击按钮,如果年龄大于18岁则显示图片。
- 【北大天网搜索引擎TSE学习笔记】第2节——重要数据文件介绍
- OAF学习笔记-5-点击按钮页面跳转
- 【代码笔记】点击搜索按钮,或放大镜后都会弹出搜索框
- Coolite官方例子学习笔记二:给按钮添加点击监听
- OAF学习笔记-5-点击按钮页面跳转
- 遗传算法与直接搜索工具箱学习笔记 四-----从直接搜索算法开始
- OAF学习笔记-5-点击按钮页面跳转
- angular学习的一些小笔记(中)之ng-disabled轻松实现按钮是否可点击状态