1.JSP的特点及工作原理(执行过程)JSP运行原理解释:JSP的执行过程主要包括以下步骤:1.客户端发出Request请求;2.JSP容器将JSP转译成Servlet的源代码;3.将产生的Servlet的源代码经过编译后,并加载到内存执行;4.把结果Response响应至客户端。5.JSP页面首次访问速度慢,之后访问速度快(直接将内存中首次加载的结果返回)2.JSP指令标签有哪些及作用指令标记是为JSP引擎而设计的,它向JSP引擎发送消息,告诉引擎如何处理其余JSP页面,它并不会直接产生任何看得见的输出。指令的语法形式为:%@指令%指令主要包括:page指令、include指令和taglib指令。(1%@page%指令用来设置整个JSP页面的相关属性和功能page指令可以在JSP页面的任何地方、以任何顺序出现,而且一个页面可以包含任意数量的page指令。为了程序的可读性以及好的编程习惯,最好还是把它放在JSP页面的顶部。(2include指令的语法形式为:%@includefile=relativeURL%该指令的作用是在JSP页面中该指令出现的位置静态插入一个文件。所谓静态插入,是指当前的JSP页面和被嵌入的文件合并成一个新的JSP页面,然后JSP引擎再将这个新页面转换成Servlet。include指令能让页面内容分成几个组成部分分别管理。实现多个文件共享同一个文件。(3taglib指令:代码复用是衡量软件可维护性的重要标志之一。一个web应用中可能有许多JSP页面需要使用某些相同的信息JSP页面可以通过自定义标记使用一种特殊的文件Tag文件(标记文件),将需要重复使用的代码编写成Tag文件就可以实现代码复用Tag文件的结构和JSP文件相同,只是文件扩展名为.tag3.在JSP文件中注释种类及区别(1)客户端注释使用HTML标签“!--”和“--”创建的语法形式:!--注释--!--这个注释可以在客户端源代码中看到--客户端注释类似于普通的HTML注释,唯一的不同在于,可以在这种JSP注释中加入特定的JSP表达式(2)服务器端注释--隐藏注释也称为JSP注释,只能在原始JSP文件中看到。语法形式:%--注释--%该注释不会被写入对应的Servlet文件中,也不会发给客户浏览器(3)脚本注释:在JSP页面的java脚本中使用的注释。其语法形式为://单行注释/*注释*/脚本注释不仅能在原始JSP文件中看到,而且能在JSP编译成的Servlet中看到。该注释会被写入对应的Servlet文件中,但不会发给客户浏览器4.Request对象application对象与session对象的不同所有用户的Application对象是相同的而且在服务器启动时就产生了,session对象在会话建立时产生,不同用户的session对象是不同的,同一用户的不同请求session对象也不同。见书P66.5.Request对象的功能在JSP页面中,使用内置对象request可以查看HTTP请求报文中的这些信息。Request对象封装HTTP请求数据包requet是实现javax.servlet.http.HttpServletRequest接口的一个实例。6.JDBC的体系结构7.JDBC的驱动程序有哪几类?JDBC-ODBC桥加ODBC驱动Java到本地API驱动JDBC网络纯Java驱动程序Java到本地数据库协议8.FILE类对象的构造函数有哪些?可以用来生成File对象的构造函数有如下3个。(1)File(StringdirectoryPath):通过全路径——路径文件名来创建对象,路径可以是绝对路径也可以是相对路径。(2)File(StringdirectoryPath,Stringfilename):通过父目录和文件名来创建对象,filename是不含路径的文件名。(3)File(Filef,Stringfilename):也是通过父目录和文件名来创建对象,但父目录由一个File对象提供。其中,filename是文件名,directoryPath是文件的路径名,f是一个指定目录的文件对象。9.Javabean的代码应遵循哪些规则?JavaBean的书写规范主要包括:(1)JavaBean是一个public的类(2)Java类中方法的访问属性都必须是public的(3)类要实现Serializable接口(4)要有一个默认构造函数(没有参数),以便任何一个容器都可以创建JavaBean的实例(5)类的所有属性定义为protected或private(最好)特性(6)设置和获取属性时,使用setXxx()和getXxx()方法10.Javabean的范围(1page范围(2request范围(3session范围(4application范围(1.)page范围的生命周期和作用范围在4种类型的JavaBean组件中是最小的。page表示该JavaBean的生命周期只在一个页面内,即为JSP程序的运行周期。当JSP程序运行结束,该JavaBean组件的生命周期也就结束了。它无法在别的JSP程序中起作用,对应于不同的客户端请求服务器都会创建新的JavaBean组件对象,而且一旦客户端的请求执行完毕,该JavaBean对象会马上注销,无法供别的客户端请求使用。这样的Bean用的最多,比如:大部分表单提交bean的一些计算处理(2)request范围的生命周期和作用范围与JSP的Request对象一样,当JavaBean的Scope属性值被设为request时,表示JavaBean在整个请求的范围内都有效,而不仅仅在一个页面内有效。当一个JSP程序使用jsp:forward操作指令定向到另外一个JSP页面或使用jsp:include操作指令导入另外的JSP页面时,第一个JSP页面会把Request对象传送到下一个JSP页面,由于request范围的JavaBean存在于Request对象中,因此,JavaBean对象也将随着Request对象送出,被第二个JSP程序接收。这种类型的JavaBean对象使得JSP程序之间传递信息更为容易。(3)session范围的生命周期就是某个会话过程所经历的时间。当JavaBean的Scope属性值为session时,表示JavaBean可以在当前HTTP会话的生命周期内被所有页面访问,该JavaBean存在于session对象中。不同的用户对应着不同的会话过程,不同的会话过程之间是互不干涉互不影响。通常用于共享同一session的JSP页面,比如购物车(4)当JavaBean的Scope属性被指定为application时,它的生命周期和JSP的Application对象具有相同的作用范围,也和Application对象一样使用。这个JavaBean的生命周期是最长的,从创建了这个JavaBean开始,就可以在任何使用相同application的JSP文件中使用这个JavaBean。这种类型的JavaBean可以在多个用户之间共享全局信息。比如:程序中一些经常用到的数据库连接URL聊天室中的人员统计11.Sevlet程序应具备哪些功能?Servlet的基本功能:用于处理客户端的请求和产生动态网页内容(中间层)访问服务器端的文件系统连接数据库并开发基于数据库的应用调用其它的Java类12.Sevlet的工作原理13.Sevlet的生命周期包括哪几部分,说明每部分的具体功能14.MVC设计模式模型-视图-控制器(MVC)是80年代Smalltalk-80出现的一种软件设计模式,现在已经被广泛的使用MVC是一种软件设计模式,不仅仅应用于WEB。在日常生活中处处可以找到类似于MVC的例子。1、模型(Model)业务逻辑层。用于封装业务逻辑和数据模型。2、视图(View)表示层。就是与用户实现交互的界面,通常实现数据的输入和输出功能。3、控制器(controller)控制层。起到控制整个业务流程的作用,实现View层跟Model层的协同工作。15.简述Struts框架的基本结构及工作流程(1)检查Action的映射,确定在Action中已经配置了对应的ActionForm的映射(2)根据name属性,找到对应的Formbean的配置信息(3)查找Formbean的使用范围(request\session),判断该范围下是否有此Formbean的实例(4)若有则重用,否则创建实例(5)如果validate设置为true则调用validate()进行表单数据的验证(6)否则或验证正确,则控制器将ActionForm作为参数,传给对应的Action实例的execute()(详见书P248)