当前位置:文档之家› JSP期末简答题

JSP期末简答题

JSP期末简答题
JSP期末简答题

JSP工作原理JSP页面的执行分成两个阶段,一个是转译阶段,一个是请求阶段。

转译阶段:JSP页面转换成Servlet类。请求阶段:Servlet类执行,将响应结果发送至客户端。

该执行流程解释如下:(1)用户(客户机)访问相应的JSP页面,如http://localhost:8080/test01/HelloJSP. jsp。(2)服务器找到相应的JSP页面(HelloJSP.jsp)。(3)服务器将JSP转译成Servlet的源代码(HelloJSP_jsp.java)。(4)服务器将Servlet源代码编译为class文件(HelloJSP_jsp.class)。

(5)服务器将class文件加载到内存并执行。(6)服务器将class文件执行后生成的HTML代码发送给客户机,客户机浏览器根据相应的HTML代码进行显示。

如果该JSP页面为第一次执行,那么会经过这两个阶段,而如果不是第一次执行,那么将只会执行请求阶段,跳过3、4两步。这也是为什么第二次执行JSP页面时明显比第一次执行要快的原因。

如果修改了JSP页面,那么服务器将发现该修改,并重新执行转译阶段和请求阶段,此时重新执行前面的6个步骤。这也是为什么修改页面后访问速度变慢的原因。

服务器

用户

1.动作元素与JSP指令元素<%@ include% >的区别

⑴包含文件类型上:(主要区别)JSP动作元素:①动作元素包含静态的文件时,只是单纯地加到JSP页面中,不会进行任何处理。②动作元素包含动态的文件时,会先进行处理,然后将处理的结果加到JSP页面中。

JSP指令元素<%@ include %>:<%@ include%>指令元素只是将页面的内容静态地包含进来,如果被包含的文件中有JSP代码,则会执行该代码,而不管该文件是否为动态文件。

⑵response操作上:JSP动作元素:当包含JSP页面时,将忽略页面中相关的reponse操作,即当前操作不可以重定向到其他页面。JSP指令元素<%@ include% >:对于包含的JSP页面中的response 操作均会正常运行。

⑶参数:JSP动作元素:可以带参数。

JSP指令元素<%@ include% >:不可以带参数。

<%@ include file="relativeURL"%>

⑷速度:JSP动作元素:处理两个请求。

JSP指令元素<%@ include% >:处理一个请求,所以<%@ include% >速度快于

⑸应用:JSP动作元素:用于发送一个请求,并接收返回的HTML,并可以加入参数。

JSP指令元素<%@ include% >:用于检测用户是否登录、网站标识或者网站一些静态不变的信息。

2.Servlet的生命周期Servlet也是一个普通的Java类,所以其一样具有生命周期。服务器会在启动或者是第一次请求Servlet时初始化一个Servlet对象,然后使用该对象处理客户端的请求,当服务器关闭时销毁该对象。

Servlet从生成到销毁必须经过如下几个步骤。

(1)生成Servlet,加载到Servlet Engine中,并通过调用其init()方法来进行初始化。

(2)通过提供的响应方法来处理客户端的请求。

(3)调用destroy()方法进行销毁,并通过垃圾收集器进行收集清理。

3.JDBC操作数据库的步骤

⑴加载JDBC驱动程序:通过https://www.doczj.com/doc/f61874151.html,ng.Class类的静态方法forName(String className)实现。

public class DBConnection {

private final String dbDriver = "com.microsoft.jdbc.sqlserver.SQLServerDriver";

public DBConnection() {

try {

Class.forName(dbDriver).newInstance();

} catch (ClassNotFoundExceptione) {

}

}⑵取得数据库连接:DriverManager类的静态方法getConnection(String url,String user,String password)来实现。

public Connection creatConnection() {

Connection con=null;

String url = "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=db_user"

try {

con = DriverManager.getConnection(url,"sa","sa");

con.setAutoCommit(true);

} catch (SQLException e) {

}

return conn;}

⑶执行各种SQL语句:通常通过PreparedStatement类的实例方法executeUpdate(String sql)或executeQuery(String sql)来实现。

int num=statement.executeUpdate(“insert into wy_table values (33,‘添加’)”);

int num=statement.executeUpdate(“update wy_table set name= ‘修改' where id=33");

int num=statement.executeUpdate("delete form wy_table where id=6");

ResultSet rs= statement. executeQuery("select * from wy_table");

⑷获取查询结果:

执行的executeUpdate()方法:将返回一个int型数值,该数值表示影响数据库记录的行数。

执行executeQuery()方法:返回一个ResultSet类型的结果集。

⑸关闭数据库连接:

4.服务器端跳转与客户端跳转的比较

①服务器端跳转(转发):url会追加新页面的地址

// 方式1:请求转发,不会重新创建request和response对象

request.getRequestDispatcher("文件路径或标识路径的表达式").forward(request,response);

// 方式2:请求转发:JSP动作元素

……

②客户端跳转(重定向):url会变为新页面的地址

// 请求重定向,会重新创建request和response对象

response.sendRedirect("文件路径或标识路径的表达式");

5什么是MVC模式,MVC的基本构成是什么?MVC设计模式将一个完整的应用分为3个组件:Model (模型),View(视图)以及Controller(控制器)。

Model(模型):该组件是对软件所处理问题逻辑的一种抽象,封装了问题的核心数据,逻辑和功能实现,独立于具体的界面显示以及I/O操作。

View(视图):该组件将表示模型数据,逻辑关系以及状态信息,以某种形式展现给用户。视图组件从模型组件获得显示信息,并且对于相同的显示信息可以通过不同的显示形式或视图展现给用户。

Controller(控制器):该组件主要负责用户与软件之间的交互操作,控制模型状态变化的传播,以确保用户界面与模型状态的统一。Web应用中当用户请求到来时,控制器本身不输出任何东西也不做任何处理,它只是接收请求并决定调用哪个模型去处理该请求,然后用确定使用哪个视图组件来显示模型处理返回的数据。

JSP试题及答案

第一章 一.选择题 1.早期的动态网站开发技术主要使用的是()技术。该技术的基本原理是将浏览器提交至Web服务器的数据通过环境变量传递给其他外部程序,经外部程序处理后,再把处理结果传送给Web服务器,最后由Web服务器把处理结果返回浏览器。 A.JSP B.ASP C.PHP D.CGI 2.JSP页面的代码由两个部分组成,它们是()和()。 A.javascript代码 B.vbscript代码 C.HTML代码 D.JSP代码 3.JSP在服务器中进行编译时,将首先被转译成() A.JA V A语言 B.HTML代码 C.servlet D.以上都是 4.在一个JSP页面代码中一定没有的部分是() A.javascript代码 B.JSP指令 C.JSP动作 D.HTML代码 二.问答题 1.简述JSP的基本运行原理。 2.列举出JSP具有的一些特点。

参考答案 一.选择题 1. D 2. C D 3. C 4. A 二.问答题 1.答:首先由浏览器向Web服务器提出访问JSP页面的请求(Request),然后由JSP容器负责将JSP转换成Servlet,产生的Servlet经过编译后生成类文件,然后再把类文件加载到内存进行执行。最后由Web服务器将执行结果响应(Response)给客户端浏览器。 2.答:1. 一次编写,随处运行 2. 可重用组件技术 3. 标记化页面开发 4. 对大型复杂Web应用支持良好 第二章习题 三.选择题 1.下列不是JSP开发工具的是() A.JBuilder B.IBM WebSphere C.MyEclipse D.Firework 2.要建构JSP的开发环境,除了需要安装以上的JSP开发工具外,还必须安装()和() A.JDK B.Dreamweaver MX C.Flash MX D.Tomcat 3.JSP隶属Java家族,下列不属于JA V A家族的是() A.servlet B.javabean C.java D.javascript 4.web应用程序体系结构最多可分为三层,不属于这三层的是() A.表示层 B.业务层 C.数据访问层 D.网络链接层

JSP课程各章节选择题答案

1)如果做动态网站开发,以下()可以作为服务器端脚本语言。 A . HTML B. JSPC. JavaScript D. Java 2)在设计Web项目的目录结构时,一般吧JSP和HTML文件放在()下。 A . src目录 B .文档根目录或其子文件下 WEB-INF 目录 C . META-INT 目录 D 3) 在Web项目的目录结构中,web.xml文件位于()中。 A . src目录 B .文档根目录 C . META-INF 目录 D .WEB-INF 目录 4) 下面对于B/S架构与C/S架构的描述错误的是()。 A . B/S架构解决了C/S架构的弊端,因而在程序开发中将会逐步取代C/S架构 B. B/S机构是基于in ternet网络实现的,使得用户访问的范围扩大 C . C/S架构师基于局域网实现的,当程序发生改的后,需要对每一个客户端进行维护 D . C/S可以设计出丰富的界面,而B/S则相对处于劣势 5)以下选项中()是正确的URL,(选两项) A . B . C . D . /n ews/welcome.html

C . response.setPageCoding() D . response.setCharset() 6) 在某个JSP 页面中存在这样一行代码, <%= 2”+ 4" %>运行该JSP 后,以下说法正 确的是( )。 A .这行代码没有对应的输出 B .这行代码对应的输出时 6 C. 这行代码对应的输出时 24 D .这行代码将引发错误 7) 与 page 指令 <%@ page import= java.util.*, java.text.* %> 等价的是( )。 A . <%@ page import= “java.util.* %> <%@ page import= “java.text.* “ %> B . <%@ page import= “java.util.* ” , import= “java.text.* “ %> C . <%@ page import= “java.util.* “ ; %> <%@ page import= “java.text.* “ ; %> D . <%@ page import= “java.util.* ;java.text.* “ %> 8) 下列选项中, ( )是正确的表达式。 A. <% String s = “hello world ” ;%> B . <% = “hello world ” ;%> C . <% = “hello world ” %> D . <% ! “hello world ” %> 9) 如果请求页面中存在两个单选按钮(假设单选按钮的名称为 sex ) , 分别代表男和女, 该页面提交后,为了获得用户的选择项,可以使用以下( )方法。 A. request.getParameter(sex); B . request.getParameter(“sex ”); C . request.getParameterValues(sex); D . request.getParameterValues(“sex ”); 10) JSP 内置对象request 和getParameterValues()方法的返回值是( )。 B. Object[ ]C . String D . Object 第三章 11) 使用request 对象进行重定向时,使用的是( A . gertRequestDispatcher(); C. sendRedirect() 12) 对于转发与重定向的描述错误的语句是( A ?重定向是在客户端发生作用,通过请求重新的地址实现页面转向 B .使用转发时由于是服务器内部控制权的转移,因而地址栏中的 URL 没有变化 C .使用重定向时可以在地址栏中看到转向后的 URL D .转发与重定向都可以实现在页面跳转,因而没有区别 13) 为了避免服务器的响应信息在浏览器端显示为乱码, 通常会使用 ( )语句重新设置 字符编 码。 B. response.setCharacterEncoding() A . String[ ] )方法。 B . forword() D . setRequestDispatcher(); )。 A . reponse.setContentType();

JSP课后简答题答案

1、怎样应用request、session、application进行参数存取?比较3 钟方法的优点与不足。 答:request范围变量保存在request隐式对象中,如:request.setattribute("namerequest","name in request"); session范围变量保存在session隐式对象中,如:session.setattribute("namesession","name in session"); application范围变量保存在application 隐式对象中,如:application.setattribute("nameapplication","name in application"); 读取:namerequest:<%=request.getattribute("namerequest").tostring() %>
namesession:<%=sessio n.geta ttribute("namesession").tostring() %>
nameapplication:<%=application.getattribute("nameap plication").tostring() %> application:全局作用范围,整个应用程序共享,就是在部署文件中的同一个webApp共享,生命周期为:应用程序启动到停止。session:会话作用域,当用户首次访问时,产生一个新的会话,以后服务器就可以记住这个会话状态。生命周期:会话超时,或者服务器端强制使会话失效。request:请求作用域,就是客户端的一次请求。 2、什么是数据库连接池?在JSP中怎样实现数据库连接池? 答:数据库连接是一种关键的有限的昂贵的资源,这一点在多用户的网页应用程序中体现得尤为突出。对数据库连接的管理能显著影响到整个应用程序的伸缩性和健壮性,影响到程序的性能指标。数据库连接池正是针对这个问题提出来的。数据库连接池负责分配、管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而再不是重新建立一个;释放空闲时间超过最大空闲时间的数据库连接来避免因为没有释放数据库连接而引起的数据库连接遗漏。这项技术能明显提高对数据库操作的性能。 3、怎样实现JavaBean的一个属性与输入参数关联?怎样实现JavaBean中的所有属性与请求参数关联? 答:1) 如果类的成员变量的名字是xxx,那么为了更改或获取成员变量的值,即更改或获取属性,在类中可以使用两个方法: a.getXxx(),用来获取属性xxx。 b.setXxx(),用来修改属性xxx.。 2) 类中方法的访问属性都必须是public的。 3) 类中如果有构造方法,那么这个构造方法也是public的并且是无参数的 4、Servlet和Servlet之间以及Servlet与JSP之间是怎样实现通信的? 答:(1)应用ServletContext a.在Servlet A中,用setAttribute()设置你要共享的数据 b.在Servlet B中,用getAttribute()读取以上的object 一个servlet直接调用另一个servlet的doget 或dopost方法,将所有参数都传过去。 (2)a. jsp-->servlet: 直接使用或者sendRedirect 可以访问任何URL (当然也包括servlet)。 b.servlet-->jsp: RequestDispatcher接口的forward(req, res)方法,请求信息需要显式传递(在req、res参数中或者通过sendRedirect。

JSP企业面试题及答案(选择题)

一、单项选择题: 1.下列哪个不是HTML的常用标记。() A. B. C. D. 2.创建表单的HTML代码是() A.

B. C.