广东海洋大学 2016 ——2017 学年第二学期 《 JSP 程序设计 》课程试题 注:文档及答案由Adao 上传提供,如有不妥之处,请自行解决! 2017年题型:选择+填空+程序填空=60分 简答题=40分 一、选择题(2x12=24分) 稍难的一题:有关全局变量的,全局变量会被其后的赋值替代,具体题目是先定义了全局变量x=AAA,后面在程序片重新赋值为x=aaa 。
然后再定义全局变量y=BBB,后面在程序片重新赋值为y=bbb ;问:输出的xy 是:aaabbb 。
(并非AAABBB ) 二、填空题(2x8=16分) 1 response 2 webapps 3 attribute ? 4 两(p37第二题课后习题) 5 session 6 application 7 next() 8 variable 三、程序填空题 1 n-i-1 2 count+1 3 a[i]<Mixnum 4 a[i]>Maxnum 5 a[i] 6 n>49 7 n*n 8 col+1 9 col=110 value+1 四、简答题 1.简述JSP 页面啊运行原理。
(p7) (1)把JSP 页面中的HTML 标记(页面的静态部分)发送给用户的浏览器,由浏览器中的HTML 解释器负责解释执行HTML 标记。
(2)负责处理JSP 标记,并将有关的处理结果发送到用户的浏览器。
(3)执行“<%”和“%>”之间的java 程序片(JSP 页面中的动态部分),并把执行的结果交给用户的浏览器显示。
(4)当多个用户请求一个JSP 页面时,Tomcat 服务器为每个用户启动一个线程,该线程负责执行常驻内存的字节码文件来响应相应用户的请求。
这些写线程有Tomcat 服务器来管理,将CPU 的使用权在各个线程之间快速切换,以保证每个线程都有机会执行字节码文件,这与传统的CGI 为每个用户启动一个进程相比较,效率要高得多。
2.简述include 指令标记和include 动作标记的不同。
(p37) include 指令标记的作用是在JSP 页面出现该指令的位置处,静态插入一个文件,即JSP 页面和插入的文件合并成一个新的JSP 页面,然后JSP 引擎再将这个新的JSP 页面转译成Java 文件。
因此,插入文件后,必须保证新合并成的JSP 页面符合JSP 语法规则,即能够成为一个JSP 页面文件。
include 动作标记告诉JSP 页面动态加载一个文件,不把JSP 页面中动作指令include 所指定的文件与原JSP 页面合并一个新的JSP 页面,而是告诉Java 解释器,这个文件在JSP 运行时(Java 文件的字节码文件被加载执行)才被处理。
如果包含的文件是普通的文本文件,就将文件的内容发送到客户端,由客户端负责显示;如果包含的文件是JSP 文件,JSP 引擎就执行这个文件,然后将执行的结果发送到客户端,并由客户端负责显示这些结果。
3.设Web 服务目录mymoon 中的JSP 页面要使用一个bean ,改bean 的包名为blue.sky 。
请说明应当怎样保存bean 的字节码。
(p246)把创建bean 的字节码保存到mymoon\WEB-INF\classes\blue\sky 中。
4.简述JDBC 的概念,JDBC 操作数据库的步骤。
(p145-146)概念:JDBC 提供了访问数据库的API ,即由一些Java 类和接口组成,是Java 运行平台的核心类库中的班级:姓名:学号:试题共页加白纸张密封线一部分。
在JSP中可以使用JDBC实现对数据库中表的记录的查询、修改和删除等操作。
JDBC操作不同的数据库仅仅是连接方式上的差异而已,使用JDBC的应用程序一旦和数据库建立连接,就可以使用JDBC提供的API操作数据库了。
步骤:1.注册和加载驱动器;2.与数据库建立连接;3.发送SQL语句;4.处理结果;5.关闭连接;简答题提纲1.jsp的运行原理:A.把JSP页面中的HTML标记(页面的静态部分)发给用户的浏览器,由浏览器中的HTML解释器负责解释执行HTML标记B.(Tomcat服务器)负责处理JSP标记,并将有关的处理结果发给用户浏览器C.执行<%和%>之间的java程序片(jsp的动态部分),并把执行结果交给用户的浏览器显示D.当多个用户请求一个jsp页面时,Tomcat服务器会为每个用户启动一个线程,该线程负责执行常驻内存的字节码文件来响应相应用户的请求。
这些线程由Tomcat服务器来管理,将CPU的使用权在各个线程间快速切换,以保证每个线程都有机会执行字节码文件,这与传统的CGI为每个用户启动一个进程相比较,效率要高很多。
Jsp文件转译成java文件,编译这个java文件生成字节码文件,字节码文件响应用户请求。
2.include指令标记和include动作标记的区别答:include指令标记的作用是在JSP页面出现该指令的位置处,静态插入一个文件,即JSP页面和插入的文件合并成一个新的JSP页面,然后JSP引擎再将这个新的JSP页面转译成Java文件。
因此,插入文件后,必须保证新合并成的JSP页面符合JSP语法规则,即能够成为一个JSP页面文件。
include动作标记告诉JSP页面动态加载一个文件,不把JSP页面中动作指令include所指定的文件与原JSP页面合并一个新的JSP页面,而是告诉Java解释器,这个文件在JSP运行时(Java文件的字节码文件被加载执行)才被处理。
如果包含的文件是普通的文本文件,就将文件的内容发送到客户端,由客户端负责显示;如果包含的文件是JSP文件,JSP引擎就执行这个文件,然后将执行的结果发送到客户端,并由客户端负责显示这些结果。
3.用户可以使用浏览器直接访问一个Tag文件吗!?答:不可以4.Tag文件应当存放在怎样的目录中?答:如果某个Web服务目录下的JSP页面准备调用一个Tag文件,那么必须在该Web服务目录下,建立目录:Web服务目录\WEB-INF\tags,其中,WEB-INF和tags 都是固定的子目录名称,而tags下的子目录名字可由用户给定。
一个Tag文件必须保存到tags目录或其下的子目录中。
处理汉字String str=request.getParameter(“girl”);Byte b[]=str.getBytes(“iso-8859-1”);Str=new String(b);5.Response调用sendRedirect(URL url)方法的作用是实现用户的重定向。
6.(1)一个用户在不同的web服务器目录中的session对象不相同(2)一个用户在相同的web服务器目录的不同子目录中的session对象相同(3)如果用户长时间不关闭浏览器,用户的sessoin对象可能消失(4)用户关闭浏览器后,用户的session对象一定消失7.RandomAccessFile类创建的流在读/写文件时有什么特点?答:RandomAccessFile类既不是输入流类InputStream类的子类,也不是输出流类Outputstream类的子类。
想对一个文件进行读写操作时,可以创建一个指向该文件的RandomAccessFile流,这样我们既可以从这个流中读取这个文件的数据,也可以通过这个流给这个文件写入数据8.JSP连接MySQL数据库:<%@page language="java"contentType="text/html; charset=GB2312"%><%@page import="java.sql.*"%><html><body bgcolor="cyan"><%Connection con;Statement sql;ResultSet rs;try{ Class.forName("com.mysql.jdbc.Driver");}catch(Exception e){}try{ String uri="jdbc:mysql://127.0.0.1/Student";String user="root";String password="asd85440821";con = DriverManager.getConnection(uri,user,password);sql=con.createStatement();rs=sql.executeQuery("SELECT * FROM mess");///解决中文乱码String uri=”jdbc:mysql://127.0.0.1/Student?user=root&password=asd85440821&characherEncoding=gb2312”;Connection con=DriverManager.getConnection(uri);Statement stmt=con.createStatement();ResultSet rs=stmt.executeQuery();9.设Web服务目录mymoon中的JSP页面要使用一个bean,该bean的包名为blue.sky。
请说明应当怎样保存bean的字节码。
答:把创建bean的字节码保存到 mymoon\WEB-INF\classes\blue\sky中。
10.创建了一个名字为moon的bean,该bean有一个String类型、名字为number 的属性。
如果创建moon的java类没有提供public String getNumber()方法,在JSP页面中是否允许getProperty标记获取moon的number属性的值?答:不允许11.tom.jiafei.Circle是创建bean的类,则正确创建session周期bean的标记是:<jsp:useBean id=”circle” class=”tom.jiafei.Circle” scope=”session”/>12.假设创建bean的类有一个int型的属性number,则设置该属性值的正确方法是:public voidsetNumber(int n){number=n;}。