admin 管理员组

文章数量: 887021


2024年1月16日发(作者:品牌logo设计网站)

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模式:

将业务逻辑代码与外观呈现分离,能更容易地根据需求的改变来改进程序。

3、JSP 页面由哪些元素组成?

答:JSP页面元素包括:JSP中的指令标识 、HTML标记语言、嵌入的Java代码片段、JSP表达式(、动作标识、JSP脚本标识、JSP注释)等

4、有几种方法可实现在页面中来包含文件?如何实现?它们有什么区别?

答:动作标识与include指令都可用来包含文件,实现格式分别为:

<%@ include file="文件的绝对路径或相对路径" %>

二者的区别:

(1)、属性:

include指令通过file属性来指定被包含的页面,include指令将file属性值看作一个实际存在的文件的路径,所以该属性不支持任何表达式。若在file属性值中应用JSP表达式,则会抛出异常。

动作标识通过page属性来指定被包含的页面,该属性支持JSP表达式。

(2)、处理方式 :

使用include指令被包含的文件,它的内容会原封不动地插入到包含页中使用该指令的位置,然后JSP编译器再对这个合成的文件进行翻译。所以在一个JSP页面中使用include指令来包含另外一个JSP页面,最终编译后的文件只有一个。

使用动作标识包含文件时,当该标识被执行时,程序会将请求转发到(注意是转发,而不是请求重定向)被包含的页面,并将执行结果输出到浏览器中,然后返回包含页继续执行后面的代码。因为服务器执行的是两个文件,所以JSP编译器会分别对这两个文件进行编译。

(3)、包含方式:

使用include指令包含文件,最终服务器执行的是将两个文件合成后由JSP编译器编译成的一个Class文件,所以被包含文件的内容应是固定不变的,若改变了被包含的文件,则主文件的代码就发生了改变,因此服务器会重新编译主文件。include指令的这种包含

过程称为静态包含。

使用动作标识通常是来包含那些经常需要改动的文件。此时服务器执行的是两个文件,被包含文件的改动不会影响到主文件,因此服务器不会对主文件重新编译,而只需重新编译被包含的文件即可。而对被包含文件的编译是在执行时才进行的,也就是说,只有当动作标识被执行时,使用该识包含的目标文件才会被编译,否则被包含的文件不会被编译,所以这种包含过程称为动态包含。

(4)、对被包含文件的约定

使用include指令包含文件时,被包含文件必须与主文件中page指令中的contentType属性值一致,(因为这两个文件最终会被合为一个文件)否则会抛出异常。

使用动作标识无此约定。

5、如果用户长时间不操作 session 对象,用户的 session 对象会消失吗?

答:会消失。在一定时间内(系统默认在30min内),如果客户端不向服务器发出应答请求,session对象就会自动消失。

6、用户关闭浏览器后,用户的 session 会立即消失吗?

答:会。 从一个客户打开浏览器并连接到服务器开始,到客户关闭浏览器离开这个服务器结束,被称为一个会话。 可以利用此特性来保存每个用户信息,当一个客户登录一个网站时,系统将为用户生成一个独一无二的会话对象,用以记录该用户的个人信息,一旦该用户退出网站,该会话对象将会被注销。

7、如何延长 session 的过期时间?

答:进行会话超时设置,利用setMaxInactiveInterval(int interval)方法以秒为单位设置超时时间。

8、session 对象与 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、什么是 servlet?Servlet 的技术特点是什么?Servlet 与 JSP 有什么区别?

答:(1)Servlet是在JSP之前就存在的运行在服务端的一种Java技术,它是用Java语言编写的服务器端程序。Servlet是使用Java Servlet应用程序设计接口(API)及相关类和方法的Java程序。Java语言能够实现的功能,Servlet基本上都能实现(除了图形界面外)。Servlet主要用于处理客户端传来的Http请求,并返回一个响应。(将处理的结果传递给浏览器生成动态web页面)。

(2)Servlet技术特点:高效、方便、跨平台、功能强大、灵活性和可扩展性、共享数据、安全。

(3)Servlet与JSP相比有以下几点区别: (JSP是以Servlet为基础开发的)

①编程方式不同;

②Servlet必须在编译以后才能执行;

③运行速度不同。

12、创建一个 Servlet 通常分为哪几个步骤?

答:(1)继承HttpServlet抽象类。

(2)重载适当的方法,如覆盖(或称为重写)doGet()方法或doPost()方法。

(3)如果有HTTP请求信息的话,获取该信息。可通过调用HttpServletRequest类对象的以下3个方法获取:

getParameterNames() //获取请求中所有参数的名字

getParameter() //获取请求中指定参数的值

getParameterValues() //获取请求中所有参数的值

(4)生成HTTP响应。HttpServletResponse类对象生成响应,并将它返回到发出请求的客户机上。它的方法允许设置“请求”标题和“响应”主体。“响应”对象还含有getWriter()方法以返回一个PrintWriter类对象。使用PrintWriter的print()方法和println()方法以编写Servlet响应来返回给客户机,或者直接使用out对象输出有关HTML文档内容。

13、运行 Servlet 需要在 文件中进行哪些配置?

答:①Servlet的名称、类(必须指定)和其他选项的配置;

②可以配置一些初始化参数

③启动装入优先权 (通过元素指定)

④Servlet的映射

14、简述 JDBC 连接数据库的基本步骤。

答:JSP中连接数据库的基本步骤(5个):加载JDBC驱动程序、创建数据库连接、执行SQL语句、获得查询结果和关闭连接。

① Class. forName(String className)实现加载要连接数据库的驱动到JVM,成功加载后,会将加载的驱动类注册给DriverManager类;

② nection(String url, String user, String password)建立数据库连接;

③ 通过Connection实例创建Statement实例:Statement stmt=Statement(); 然后

执行SQL语句,获得查询结果:ResultSet rs=eQuery(“select * from ”);

④ 关闭连接。

15、简述数据库连接池的优缺点。

答:(1)连接池具有下列优点:

①节省了时间;

②提高了数据库连接的重复使用率;

③解决了数据库对连接数量的限制。

(2)连接池具有下列缺点:

①连接池中可能存在多个与数据库保持连接但未被使用的连接,在一定程度上浪费了资源;

②要求开发人员和使用者准确估算系统需要提供的最大数据库连接的数量。

16、如何在 Tomcat 中配置数据库连接池?

答:(1)将SQL Server数据库的3个JDBC驱动包、和复制到Tomcat安装路径下的lib文件夹中。

(2)配置数据源。在配置数据源时,可以将其配置到Tomcat安装目录下的文件中,也可以将其配置到Web工程目录下的文件中,建议采用后者,因为这样配置的数据源更有针对性,配置数据源的具体代码如下:

driverClassName="verDriver"

url="jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=db_db_database08"

username="sa" password="" maxActive="4" maxIdle="2" maxWait="6000" />

17、什么是Ajax?简述Ajax中使用的技术?

答:Ajax是Asynchronous JavaScript and XML的缩写,意思是异步的JavaScript与XML。Ajax并不是一门新的语言或技术,它是JavaScript、XML、CSS、DOM等多种已有技术的组合,它可以实现客户端的异步请求操作。这样可以实现在不需要刷新页面的情况下与服务器进行通信,从而减少了用户的等待时间。

Ajax使用的技术:JavaScript脚本语言;XMLHttpRequest(最核心的);XML语言;DOM(Document Object Model);CSS。

18、如何创建一个跨浏览器的XMLHttpRequest对象?

答:关键代码如下:

if (pRequest) { // Mozilla、

http_request = new XMLHttpRequest();

} else if (XObject) { // IE浏览器

try {

http_request = new ActiveXObject("P");

} catch (e) {

try {

http_request = new ActiveXObject("P");

} catch (e) {}

}

}


本文标签: 文件 包含 页面 连接 对象