2024年6月6日发(作者:)
广东海洋大学jsp复习资料
JSP运行原理
当服务器上的一个 JSP 页面被第一次请求执行时,服务器上的 JSP 引擎首先
将 JSP页面文件转译成一个 java 文件,再将这个 java 文件编译生成字节码
文件,然后通过执行字节码文件响应客户的请求,而当这个 JSP 页面再次被请
求执行时,JSP 引擎将直接执行这个字节码文件来响应客户,这也是 JSP 比
ASP 速度快的一个原因。而 JSP 页面的首次执行往往由服务器管理者来执行。
这个字节码文件的主要工作是:
1、把 JSP 页面中普通的 HTML 标记符号(页面的静态部分)交给用户的浏览
器负责显示。
2、负责处理JSP标记,并将有关的处理结果发送到用户的浏览器.
3、执行“<%”和“%>”之间的 java 程序片(JSP 页面中的动态部分),并把
执行结果交给用户的浏览器显示。
4、当多个用户请求一个 JSP 页面时,Tomcat服务器为每个用户启动一个线程
而不是启动一个进程,这些线程由 Tomcat服务器来管理,与传统的 CGI 为每
个客户启动一个进程相比较,效率要高的多。
注意:如果对JSP页面进行了修改、保存,那么服务器会生成新的字节码。我
们可以在服务器下的workCatalinalocalhost_orgapachejsp目录下找
到服务器生成的JSP页面对应的JAVA文件,以及编译JAVA文件得到的字节码
文件。
JSP指令标记
<%@ page contentType=”text/html;charset=GB2312”%>
<%@ page import= “.*”,“.*”%>
如果需要在JSP页面的某处整体插入一个文件,可以使用include指令标
记,其标记语法为:<%@ include file=”文件的URL”%>
该指令标记的作用是在JSP页面出现该指令的位置处,静态插入一个文件。
include 动作标签格式为:
或
param子标记
该动作标签告诉 JSP 页面动态包含一个文件,即 JSP 页面运行时
才将文件加入。与静态插入文件的 include 指令标签不同;当 JSP 引
擎把 JSP 页面转译成 Java 文件时,不把 JSP页面中动作指令 includ
e 所包含的文件与原 JSP 页面合并成一个新的 JSP 页面,而是告诉Ja
va 解释器,这个文件在 JSP 运行时(Java 文件的字节码文件被加载执
行)才包含进来。
一个JSP页面可由5种元素组成普通的HTML标记、JSP标记(如指令标
记、动作标记)、变量和方法的声明、Java程序片、Java表达式。
Tag标记
<%@ taglib tagdir=”/WEB-INF/tags” prefix=”show”%>
<%@ tag pageEncoding=”utf-8”%>
<%@ attribute name=”result” required=”true” type=”
”%>
<%@ variable name-given=”time” variable-class=””
scope=”AT_END”%>
JSP内置对象
ribute(“page”,”hello”);
getParameter(String s)方法获取表单提交过来的信息。
racterEncoding(“utf-8”);
tentType(“utf-8”);
request对象获取请求所提交的各类信息。
getMethod():获取用户提交信息的方式。例如post或get.
getSchema():获得当前页面使用的协议:例如http.
getRemoteHost():获取用户机的名称(如果获取不到,就获取IP地址)。
getParameterNames():获取用户提交的信息体部分中name参数值的一个枚举。
标记
复选框checkbox
“ checked=“java”>
隐藏hidden
response对象的sendRedirect(URL url)方法实现用户的重定向。
response对象调用encodeURL()或encodeRedirectURL()方法实现URL重写。
使用Java数据库驱动程序
1.加载Java数据库驱动程序
try{e(“-
verDriver”);
}catch(Exccption e){
n(e);
}
2.建立连接
try{ String uri=“jdbc:sqlserver://192.168.100.1:1433;Database-
Name=Warehouser”;
String user=””;
String password=”sa”;
con=nection(uri,user,passw-
ord);
}catch(Exccption e){
n(e);
}
随机查询
Statement stmt=Statement(int type,int concurrency);
ResultSet re=eQuery(SQL语句);
type的取值决定滚动方式,取值可以是:
_FORWORD_ONLY;
_SCROLL_INSENSITIVE;
_SCROLL_SENSITIVE;
concurrency取值决定是否可以用结果集更新数据库,取值可以是:
_READ_ONLY;
_UPDATABLE;
获取和修改bean的属性
” scope=”page”/> /> 通过HTTP表单的参数的值来设置bean的相应属性的值 编写 getInitParameter(“”);获得配置文件中的参数. 重定向与转发 重定向方法:void sendRedirect(String location),对于浏览器来说是将不同 的请求。 RequestDispatcher对象 RequestDispatcher dispatcher=uesDispatcher(“”); d(request,response); HttpSession session=sion(true); MVC模式 模型:一个或多个Javabean对象,用于存储数据。 视图:一个或多个JSP页面,其作用是向控制器提交必要的数据和为模型提供 数据显示,JSP页面使用HTML标记和Javabean标记来显示数据。 控制器:一个或多个servlet对象,根据视图提交的要求进行数据处理操作, 并将有关的结果存储到Javabean中,然后servlet使用转发的方式请求视图中 的某个JSP页面更新显示。 一、选择题 1.在JSP中如果要导入 .* 包,应该使用( A )指 令。 A. page B. taglib C. include D. forward 2.下面哪一个不是JSP本身已加载的基本类?(B) .* .* t.* .* 3.如果当前JSP页面出现异常时需要转到一个异常页,需要设置page 指令的(B)属性。 A. Exception B. isErrorPage C. error D. errorPage 4.对于预定义<%!预定义%>的说法错误的是:(C) A、一次可声明多个变量和方法,只要以“;”结尾就行 B、一个声明仅在一个页面中有效 C、声明的变量将作为局部变量 D、在预定义中声明的变量将在JSP页面初始化时初始化 指令用于定义JSP文件中的全局属性,下列关于该指令用法的描 述不正确的是:(D ) A. <%@ page %>作用于整个JSP页面。 B. 可以在一个页面中使用多个<%@ page %>指令。 C. 为增强程序的可读性,建议将<%@ page %>指令放在JSP文件的 开头,但不是必须的。 D.<%@ page %>指令中的属性只能出现一次。 中的隐式注释为 (C )。 A. // 注释内容 B. C. <%--注释内容-- %> D. /* 注释内容*/ 7.在JSP中,( A )动作用于将请求转发给其他JSP页面。 d e n perty 8.使用response对象进行重定向时使用的方法为( B )。 ribute( ) direct( ) C. setContentType( ) ribute( ) 9.如果把用户名变量UserName放在session对象中,下面语句正确的是( ) e(UserName) e(“name”,UserName) ribute(UserName) ribute(“na me”,UserName) 10.在JSP中,文件中有如下一行代码: 要使user对象中一直存在于对话中,直至其终止或被删除为止,下划线 中应填入( C )。 t n ation 11.下述选项中不属于JDBC基本功能的是:( D )。 A.与数据库建立连接 B.提交SQL语句 C.处理查询结果 D.数据库维护管理 12.在JSP中,使用 对JavaBean的访问范围不能是( C )。 A. page B. request C. response D. application 13.在JSP中调用JavaBean时不会用到的标记是( A )。 A. C. 14.关于JavaBean正确的说法是:( A) 文件与Bean所定义的类名可以不同,但一定要注意区分字母 的大小写 B.在JSP文件中引用Bean,其实就是用 C.被引用的Bean文件的文件名后缀为.java 文件放在任何目录下都可以被引用 中使用 ty D.以上皆不会出现 16.在 17.下面哪个标记产生的结果同<%=var%>( C )。 A. C. 18.每次传递请求或响应时调用Filter的( B )方法。 () er() y() tParameter Bean的( C )标记从已定义的资源包中检索某键的值。 ter e t程序的入口点是:(A ) () () e() () 30.不能在不同用户之间共享数据的方法是(A ) A.通过cookie B.利用文件系统 C.利用数据库 D.通过ServletContext对象 二、填空题 1.Tomcat服务器的默认端口是 8080 。 2.Servlet的生命周期分三个时期: 装载Servlet 、 创建一 个Servlet实例 、 销毁 。 3.在JSP中,当执行了查询操作时,一般将查询结果保存在 ResultSet 对 象中。 4.在JSP内置对象中,与请求相关的对象是 Request 对象。 5.在JSP中,可以使用 以使用 6.异常的处理,可在该 方法的代码段中包含3类代码:try 、 catch和 finally代码块。 7.在JSP中,连接数据库的方式通常有两种:一种是通过JDBC-ODBC桥连 接;另一种是通过JDBC驱动程序连接。 8.JDBC中为Statement接口提供了3种执行方法,它们是:executeUpdate 方法、executeQuery方法 、execute方法 。 9.取表单( 方法是 getParameter 。 内置对象共有四种Scope,它们是page、request、session、 application。 11.事务处理技术包括数据查询和数据更新。 12.在JSP中使用Javabean可以通过 13.如果你只希望你的Javabean在当前页面有效,应该设置scope=”page”。 14.如果你想使用Javabean设计一个网站计数器,那么该bean的scope应当 设为application。 15.从本质上讲,Servlet是Java类。 an一般将属性设置成私有的,通过使用getXXX()方法和setXXX() 方法来进行属性的取得和设置。 17.可以通过response对象的sendRedirect方法设置页面重定向,实现页面 跳转, an的应用语言是Java。 三、简答题 1.JSP有哪些内置对象?作用分别是什么? 答:JSP共有以下9种基本内置组件: 1.request用户端请求,此请求会包含来自GET/POST请求的参数 2.response网页传回用户端的回应 3.pageContext网页的属性是在这里管理 4.session与请求有关的会话期 5.Application servlet正在执行的内容 6.out用来传送回应的输出 7.configservlet的构架部件 8.pageJSP网页本身 9.exception针对错误网页,未捕捉的例外 2.说明MVC设计模式中,M、V、C分别代表什么,有什么作用。 答案: M代表Model(模型),该组件是对软件所处理问题逻辑的一种抽象,封装了 问题的核心数据,逻辑和功能实现,独立于具体的界面显示以及I/O操作。 V代表View(视图),该组件将表示模型数据,逻辑关系以及状态信息,以 某种形式展现给用户。视图组件从模型组件获得显示信息,并且对于相同的 显示信息可以通过不同的显示形式或视图展现给用户。


发布评论