1、什么是 JSP的预编译特征?
答:JSP 页面在被服务器执行前,都是已经被编译好的,并且通常只进行一次编译,即在 JSP 页面被第一次请求时进行编译,在后续的请求中如果JSP页面没有被修改过,服务器只需要直接调用这些已经被编译好的代码,这大大提高了访问速度。
2、开发 JSP 程序可采用哪几种开发模式?分别介绍他们的优缺点。
答:①单纯的 JSP 页面编程
优点:容易实现。通过应用JSP中的脚本标识,可直接在JSP页面中实现各种功能。
缺点:将大部分的Java代码与HTML代码混淆在一起,程序结构混乱,维护调试不便。
JSP+JavaBean 编程
优点:网站的业务逻辑和显示页面进行分离,程序结构比较清晰。
缺点:将流程控制放到 JSP 中,JSP 不能单纯作为显示功能。
JSP+JavaBean+Servlet 编程
优点:层次关系明显、组件分工明确。由Servlet来执行业务逻辑并负责程序的流程控制,JavaBean组件实现业务逻辑,充当着模型的角,JSP用于页面的显示。
缺点:虽然遵循了MVC设计模式,但需要设计MVC各对象之间的数据交换格式与方法,需要花费更多的时间在系统设计上;对开发人员能力要求较高,不适合 JSP 初学者。
MVC模式:
将业务逻辑代码与外观呈现分离,能更容易地根据需求的改变来改进程序。
3JSP 页面由哪些元素组成?
答:JSP页面元素包括:JSP中的指令标识 HTML标记语言、嵌入的Java代码片段、JSP表达式(、动作标识、JSP脚本标识、JSP注释)等
4、有几种方法可实现在页面中来包含文件?如何实现?它们有什么区别?
答:<jsp:include>动作标识与include指令都可用来包含文件,实现格式分别为:
<jsp:include page="被包含文件的路径" />
<%@ include file="文件的绝对路径或相对路径" %>
二者的区别:
1)、属性:
include指令通过file属性来指定被包含的页面,include指令将file属性值看作一个实际存在的文件的路径,所以该属性不支持任何表达式。若在file属性值中应用JSP表达式,则会抛出异常。
<jsp:include>动作标识通过page属性来指定被包含的页面,该属性支持JSP表达式。
2)、处理方式
使用include指令被包含的文件,它的内容会原封不动地插入到包含页中使用该指令的位置,然后JSP编译器再对这个合成的文件进行翻译。所以在一个JSP页面中使用include指令来包含另外一个JSP页面,最终编译后的文件只有一个。
使用<jsp:include>动作标识包含文件时,当该标识被执行时,程序会将请求转发到(注意是转发,而不是请求重定向)被包含的页面,并将执行结果输出到浏览器中,然后返回包含页继续执行后面的代码。因为服务器执行的是两个文件,所以JSP编译器会分别对这两个文件进行编译。
3)、包含方式:
使用include指令包含文件,最终服务器执行的是将两个文件合成后由JSP编译器编译成的一个Class文件,所以被包含文件的内容应是固定不变的,若改变了被包含的文件,则主文件的代码就发生了改变,因此服务器会重新编译主文件。include指令的这种包含过程称为静态包含。
使用<jsp:include>动作标识通常是来包含那些经常需要改动的文件。此时服务器执行的是两个文件,被包含文件的改动不会影响到主文件,因此服务器不会对主文件重新编译,而只需重新编译被包含的文件即可。而对被包含文件的编译是在执行时才进行的,也就是说,只有当<jsp:include>动作标识被执行时,使用该识包含的目标文件才会被编译,否则被包含的文件不会被编译,所以这种包含过程称为动态包含。
4)、对被包含文件的约定
使用include指令包含文件时,被包含文件必须与主文件中page指令中的contentType属性值一致,(因为这两个文件最终会被合为一个文件)否则会抛出异常。
使用<jsp:include>动作标识无此约定。
5、如果用户长时间不操作 session javaservlet和jsp的比较对象,用户的 session 对象会消失吗?
答:会消失。在一定时间内(系统默认在30min内),如果客户端不向服务器发出应答请求,session对象就会自动消失。
6、用户关闭浏览器后,用户的 session 会立即消失吗?
答:会。 从一个客户打开浏览器并连接到服务器开始,到客户关闭浏览器离开这个服务器结束,被称为一个会话。 可以利用此特性来保存每个用户信息,当一个客户登录一个网站时,系统将为用户生成一个独一无二的会话对象,用以记录该用户的个人信息,一旦该用户退出网站,该会话对象将会被注销。
7、如何延长 session 的过期时间?
答:进行会话超时设置,利用setMaxInactiveInterval(int interval)方法以为单位设置超时时间。
8session 对象与 application 对象的区别有哪些?
答:①session对象和用户会话相关,不同用户的session是完全不同的对象,而用户的application对象都是相同的一个对象,即共享这个内置的application对象;
②在session中设置的属性只是在当前客户的会话范围内容有效,客户超过保存时间不发送请求时,session对象将被回收,而在application对象协议设置的属性在整个应用范围内是有效的,即使所有的任务都不发送请求,只要不关闭应用服务器,在其中设置的属性仍然有效。
9、什么是 JavaBean?使用 JavaBean 的优点是什么?
答:JavaBean组件就是利用Java语言编写的组件,它好比一个封装好的容器,使用者并不知道其内部是如何构造的,但它却具有适应用户要求的功能,每个JavaBean都实现了一个特定的功能,通过合理地组织不同功能的JavaBean,可以快速生成一个全新的应用程序。
优点:提高代码的重用性,“一次编写,任何地方执行,任何地方重用”。
10、按功能 JavaBean 可分为哪几种?在 JSP 中最为常用的是那一种?
答:JavaBean按功能可分为可视化JavaBean和不可视化JavaBean两类。
1)可视化JavaBean:就是具有GUI图形用户界面的JavaBean
2)不可视JavaBean:就是没有GUI图形用户界面的JavaBean,最终对用户是不可见的,它更多地是被应用到JSP中。不可视JavaBean又分为值JavaBean和工具JavaBean
附:
JavaBean作为信息的容器,通常用来封装表单数据,也就是将用户向表单字段中输入的数据存储到JavaBean对应的属性中。使用值JavaBean可以减少在JSP页面中嵌入大量的Java代码。
工具JavaBean 则可以不遵循JavaBean规范,通常用于封装业务逻辑,数据操作等,例如连接数据库,对数据库进行增、删、改、查和解决中文乱码等操作。工具JavaBean可以实现
业务逻辑与页面显示的分离,提高了代码的可读性与易维护性。
11、什么是 servletServlet 的技术特点是什么?Servlet JSP 有什么区别?
答:(1Servlet是在JSP之前就存在的运行在服务端的一种Java技术,它是用Java语言编写的服务器端程序。Servlet是使用Java Servlet应用程序设计接口(API)及相关类和方法的Java程序。Java语言能够实现的功能,Servlet基本上都能实现(除了图形界面外)。Servlet主要用于处理客户端传来的Http请求,并返回一个响应。(将处理的结果传递给浏览器生成动态web页面)。
2Servlet技术特点:高效、方便、跨平台、功能强大、灵活性和可扩展性、共享数据、安全。
3ServletJSP相比有以下几点区别:  JSP是以Servlet为基础开发的)
①编程方式不同;
Servlet必须在编译以后才能执行;
③运行速度不同。
12、创建一个 Servlet 通常分为哪几个步骤?
答:(1)继承HttpServlet抽象类。
2)重载适当的方法,如覆盖(或称为重写)doGet()方法或doPost()方法。
3)如果有HTTP请求信息的话,获取该信息。可通过调用HttpServletRequest类对象的以下3个方法获取:
getParameterNames()        //获取请求中所有参数的名字
getParameter()            //获取请求中指定参数的值
getParameterValues()        //获取请求中所有参数的值
4)生成HTTP响应。HttpServletResponse类对象生成响应,并将它返回到发出请求的客户机上。它的方法允许设置请求标题和响应主体。响应对象还含有getWriter()方法以返
回一个PrintWriter类对象。使用PrintWriterprint()方法和println()方法以编写Servlet响应来返回给客户机,或者直接使用out对象输出有关HTML文档内容。
13、运行 Servlet 需要在 l 文件中进行哪些配置?
答:①Servlet的名称、类(必须指定)和其他选项的配置;
②可以配置一些初始化参数
③启动装入优先权  (通过<load-on-startup>元素指定)
Servlet的映射
14、简述 JDBC 连接数据库的基本步骤。
答:JSP中连接数据库的基本步骤(5个):加载JDBC驱动程序、创建数据库连接、执行SQL语句、获得查询结果和关闭连接。
1 Class. forName(String className)实现加载要连接数据库的驱动到JVM,成功加载后,会将加载的驱动类注册给DriverManager类;
2 Connection(String url, String user, String password)建立数据库连接;

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。