连接数据服务器的函数:MySQL_connect()和MySQL_pconnect 选择数据库的函数:MySQL_selet_db() 发送SQL查询的函数:MySQL_query
读取数据库函数:MySQL_fetch_row();MySQL_fetch_array();MySQL_result();MySQL_fetch_object()
数据库信息显示函数:(1)MySQL_fetch_field()函数。当使用MySQL_fetch_field()函数时,如无字段序号,则取下一个字段,返回一个哈希表,下标有:name,table,max_length,not_null,primary_key,unique_key,mulitiple_key,numeric,blob,type,unsigned,zerofill。
(2)MySQL_fetch_length()函数。
(3)MySQL_field()函数。①MySQL_field_name():用于获取指定字段名;②MySQL_field_seek():给定一个值,适用于MySQL_fetch_field();③MySQL_field_table():活得指定表格名称;④MySQL_field_type():获得指定的字段类型;⑤MySQL_field_flag():获得指定字段的标记;⑥MySQL_field_len():获得指定字段长度
(4)MySQL_list_()函数。①MySQL_list_dbs();②MySQL_list_table();③MySQL_list_fields()
(5)MySQL_num_()函数。①MySQL_num_fields();②MySQL_num_rows() (6)MySQL_tablename()函数。
在PHP中的两种递增形式及其区别:在PHP中,有两种递增形式——前递增和后递增。这两种递增本质上都是使变量加1,并且对变量的影响都是一样的。它们的区别是递增表达式本身的值,前递增的形式是“++﹩ variable”(PHP在读出它的值之前递增变量的值,
因此叫做前递增);后递增的形式是“﹩ variable++”,在变量递增前计算﹩ variable的原始值(PHP先读出变量的值,然后再递增,因此叫做后递增)。值得注意的是,这种符号位置的改变,可能会给变成带来很大的影响。
第八章
什么是Servlet?Servlet可以被认为是服务器的Applet。Servlet被Web服务器加载和执行,就如同Applet被加载和执行一样。Servlet从客户端接收请求,执行某种作业,然后返回结果。
使用Servlet的基本流程:①客户端通过HTTP提出请求;②Web服务器接收该请求并将其发送给Servlet。如果这个Servlet尚未被加载,Web服务器将把它加载到Java虚拟机并执行它;③Servlet将接收该HTTP请求兵执行某种结果;④Servlet将向Web服务器返回应答;⑤Web服务器将从Servlet收到的应答发送给客户端。
Servlet的功能:①创建并返回基于客户请求的动态HTML页面;②创建可嵌入到现有的HTML页面中的部分HTML页面;③与其他服务器资源进行通信;④接收多个客户机的输入,并将结果传播到多个客户机上;⑤根据客户的请求采用特定的MIME类型对数据过滤。 Servlet的优点:①Servlet是持久的;②Servlet是安全的;③Servlet可以在多种多样的客户机上使用
Java Servlet与现有网络技术的差别:
(1)Java Servlet与Applet之间的差别。从基本上来讲,Servlet与Applet是截然相反的。Servlet可以被视为服务器方面的Applet。Servlet在网络服务器内运行而Applet在网络浏览器内运行。浏览器提交一个请求执行Servlet的命令;而由于浏览器可以直接命令Applet,所以它可以在运行的时候单机运行。
(2)Java Servlet与CGI之间的差别。与传统的CGI和其他类似CGI技术相比,Java Servlet具有更高的效率,更容易使用,功能更强大,具有更好的可移植性,更节省投资。其中最大的区别就在于性能方面。在传统的CGI中,每个请求都要启动一个新的进程,如果CGI程序本身的执行时间较短,启动程序所需要的开销很可能反而超过实际执行时间。而使用Servlet时,服务器上仅有一个Java虚拟机在运行,只有当Servlet被调用时,它才被加载,且直到Servlet更改时,它才会被再次加载。在传统CGI中,如果有N个并发的对同一CGI程序的请求,则该CGI程序的代码在内存中重复装载了N次;而对于Servlet,处理请求的是N个线路,值需要一份Servlet类代码。在性能优化方面,Servlet也比CGI有着更多的选择,比如缓冲以前的计算结果,保持数据库连接的活动,等待。
Servlet的框架:Servlet的框架是由两个Java包组成的: javax . servlet和javax . Servlet . http。在javax . Servlet包中定义了所有的Servlet类都必须实现或扩展的通用借口和类。在javax . Servlet . http包中定义了采用HTTP协议通信的HttpServlet。
Servlet的框架核心是javax . servlet . Servlet接口,所有的Servlet都必须实现这一接口。在Servlet接口中定义了5种方法,其中3个方法代表了Servlet的生命周期: (1)Init方法,负责初始化Servlet对象。 (2)Service方法,负责响应客户的请求。
(3)Destroy方法,当Servlet对象退出生命周期时,负责释放占用的资源。
扩展GenericServlet类。如果Servlet类扩展了GenericServlet类,则必须实现service方法,因为GenericServlet类中的service方法被声明为抽象方法。该方法的声明为: public abstract void service(ServletRequest request,ServletResponse response) throws ServletException,IOException;
Service方法有两个参数:ServletRequest和ServletResponse 。Servlet容器将客户的
请求信息封装在ServletRequest中,传给service方法;service方法将响应的客户结果通过ServletResponse对象传给客户。
扩展HttpServlet类。如果Servlet类扩展了HttpServlet类,通常不必实现service方法,因为HttpServlet类已经实现了service方法,声明为:protected void service(HttpServletRequest request,HttpServletResponse response)throws ServletException,IOException;在HttpServlet的方法中,首先从HttpServletRequest对象中获取HTTP请求方式的信息,然后再根据请求方式调用相应的方法。在HttpServlet的service中,也有两个参数:HttpServletRequest和HttpServletResponse,这两个类分别扩展了ServletRequest和ServletResponse。
Servlet的生命周期。(1)Servlet如何被加载(Load)和被实例化(Instantiated)。 Servlet Engine负责实例化和加载Servlet,这个过程可以在Servlet Engine加载时执行,可以在Servlet响应请求时执行,也可以在两者之间的任何时候执行。 (2)Servlet如何被初始化(Initialized)。
Servlet Engine加载好Servlet后,必须要初始化它。初始化时Servlet可以从数据库里读取初始数据,建立JDBC Connection,或者建立对其他有价值的资源引用。在初始化阶段,Init()方法被调用。这个方法在javax.servlet.Servlet接口中定义。Init()方法以一个Servlet配置文件为参数。Servlet configuration对象由Servlet Engine实现,可以让Servlet从中读取一些name-value对的参数值。ServletConfig对象还可以让Servlet接受一个Servlet Context对象。 (3)Servlet如何处理请求。
Servlet被初始化以后,就处于能响应请求的状态。每个对Servlet的请求由一个Servlet Request对象代表。Servlet给客户端的响应由一个Servlet Response对象代表。当客户
端有一个请求时,Servlet Engine将ServletRequest和ServletResponse对象转发给Servlet,这两个对象以参数的形式传给service方法。这个方法由javax.servlet.Servlet定义并由具体的Servlet实现。
Servlet还可以实现ServletRequest和ServletResponse接口。ServletRequest接口可以让Servlet获取客户端请求中的参数,如form data、request信息、协议等。Servlet可以从ServletInputStream流中读出request数据。ServletResponse接口允许Servlet设置response header回来status codes。实现这个接口可以使Servlet能访问ServletInputStream流用来向客户端返回数据。 (4)Servlet如何被加载。
Servlet Engine没有必要在Servlet生命周期的每一段时间内都保持Servlet状态。Servlet Engine可以随时随意使用或释放Servlet。因此,不能依赖Servlet class或其成员存储信息。当Servlet Engine判断一个Servlet应当被释放时,Engine必须让Servlet能释放其正在使用的任何资源。在Servlet Engine释放一个Servlet以前,必须让其完成当前实例的service方法或是等到timeout。当Engine释放一个Servlet以后,Engine将不能再将请求转发给它,Engine必须彻底释放Servlet并将其标明为可回收的(给garbage collection)
第九章
JSP简述。JSP是Java Server Page的缩写,它是Servlet的扩展,其目的是简化建立和管理动态网站的工作。①JSP技术是J2EE的一个关键技术,它在更高一级的层次上抽象Servlet。②它可以让常规静态HTML与动态产生的内容相结合,看起来像一个HTML网页,却作为Servlet来运行。③JSP文件看起来就像一个普通静态HTML文件,只不过里面包含