1、1一选择题:(20 个)范围:除tag 文件与 tag 标记之外的所有章节二。填空题:1 当在 JSP 文件中要使用到 Vector 对象时,应在 JSP 文件中加入2 _response_对象封装了对客户端的响应。3 HTML 一种标记语言,使用各种标记格式化文本信息。在 HTML 页面里以_标记页面的起始,_标记页面的标题,_标记页面的主体内容。6 假设在 helloapp 应用中有一个 HelloServlet 类,它在 web.xml 文件中的配置如下:HelloServlet org.javathinker.HelloServletHelloServlet /hello那么在本地浏览
2、器端访问 HelloServlet 的 URL 是_http:/localhost:8080/helloapp/hello7 下面 date1.jsp 程序要求在网页中显示当前日期,请将补充程序。8 JDBC 的主要任务是:建立与数据库的连接、向数据库发起查询请求、处理数据库返回结果。9 Servlet 的生命周期分三个时期:装载 Servlet、创建一个 Servlet 实例、销毁11 File 类是 Object 的直接子类,它既可以对文件进行读操作,又可以对文件进行写操作。12 在 Tomcat 中创建自己的开发目录 BW 文件夹,需要在 BW 文件夹中创建_WEB_INF 文件夹,还需
3、要_classes 文件夹来存放 class 文件。13 调用 request 的 getRemoteAddr()方法可以_获取客户机的 IP 地址三。简答题:(5 个)1 简述在程序开发中,JSP 的运行原理。 1.Web 服务器上的 JSP 引擎将 JSP 文件转换为 Java 文件2.JSP 引擎调用 Java 编译器对 Java 文件进行编译3.Java 虚拟机执行编译文件,并将结果返回给客户端 注: Web 服务器执行 JSP 的三个过程不是客户端每次请求一个 JSP 页面时都被执行的.当 Web 服务器启动后,客户端第一次请求一个 JSP 页面时,需要完全执行上述三个过程,此后 S
4、ervlet 的代码便驻留在内存当中,因此当客户端再次请求这个 JSP 页面时,就可以非常快的得到返回结果.2 列举出九个 JSP 的内置对象,并简述 request、response 和 session 的作用。request, response, out, session, application, config, pagecontext, page, exceptionrequest 作用内置对象 request 封装了用户提交的信息,该对象调用相应的方法可以获取封装的信息。 request 对象是实现了ServletRequest 接口的类的一个实例response 作用respons
5、e 对象与 request 对象相对应,服务器可以用 response 对象对客户端的请求进行动态的响应。session 作用2HTTP 是一种无状态协议,服务器在响应了客户端的请求后,服务器与客户端的连接就关闭了,服务器不会保存连接的有关信息。Tomcat 可以使用内置 session 对象记录有关连接的信息,它是实现了 HttpSession 接口类的一个实例。3 简述与的区别。(1)前者动态包含;后者静态插入且被插入页面和插入页面不能有不同的 contentType 属性值(2)include 指令标记与 include 动作标记比较:二者都是在当前 JSP 页面处理所需要的文件,前者是
6、在编译阶段处理,逻辑和语法上依赖于当前 JSP 页面,但执行速度快;而后者是在运行阶段处理,逻辑和语法上独立于当前页面,速度慢,但可以使用 param 子标记4 jsp 有哪些动作指令?作用分别是什么 ?include(1)动态包含(2)在当前 JSP 页面处理所需要的文件,在运行阶段处理,逻辑和语法上独立于当前页面,速度慢,但可以使用param 子标记paramparam 标记不能独立使用,需要作为 jsp:include、jsp:forward、jsp:plugin 标记的子标记来使用。格式为:param 标记与 jsp:include 标记一起使用的时候,可以将参数传递到要加载的文件中去
7、,被加载的文件可以通过request 内置对象的 getParameter()方法获取传递过来的参数。forward从该指令处停止当前页面的执行,而转向 page 属性指定的 JSP 页面pluginplugin 标记保证客户浏览器能执行 Java applet 程序5 简述编写 JavaBean 要满足的条件编写 JavaBean 就是编写一个 java 类,只是方法的命名上有一些规则:(1)对应于类的成员变量名 xxx,获取及设置 xxx 的值的两个方法应为 getXxx()和 setXxx()(2)对于 boolean 类型的成员变量,允许使用 is 代替上面的 get 和 set(3)
8、方法的访问控制符必须都是 public(4)类中声明的构造函数必须是 public,无参数的6 描述 JSP 和 Servlet 的区别、共同点、各自应用的范围JSP 在本质上就是 SERVLET,但是两者的创建方式不一样。Servlet 完全是 JAVA 程序代码构成,擅长于流程控制和事务处理,通过 Servlet 来生成动态网页很不直观。JSP 由 HTML 代码和 JSP 标签构成,可以方便地编写动态网页。因此在实际应用中采用 Servlet 来控制业务流程,而采用 JSP 来生成动态网页。在 struts 框架中,JSP 位于 MVC 设计模式的视图层,而 Servlet 位于控制层。
9、JSP 是 Servlet 技术的扩展,本质上就是 Servlet 的简易方式。JSP 编译后是“ 类servlet”。Servlet 和 JSP 最主要的不同点在于, Servlet 的应用逻辑是在 Java 文件中,并且完全从表示层中的 HTML 里分离开来。而 JSP 是 Java 和 HTML 组合成一个扩展名为.jsp 的文件。JSP 侧重于视图,Servlet 主要用于控制逻辑。7.简述重定向与转发的实现方式以及区别(实现方式可用代码举例)重定向的功能是将用户从当前页面或 servlet 重定向到另一个页面或 servlet;转发的功能是将用户对当前 JSP 页面或servlet
10、对象的请求转发给另一个 JSP 页面或 servlet 对象。转发后用户在地址栏中不能看到 forward 方法转发的页面或servlet 的地址,只能看到该页面或 servlet 的地址。重定向:void sendRedirect(String location)实现转发需要两个步骤:(1)得到 RequestDispatcher 对象RequestDispatcher dispatcher=request.getRequestDispatcher(“a.jsp”);其中 a.jsp 是要转发的 JSP 页面或 servlet 的地址(2)转发:dispatcher.forward(requ
11、est,response);8.简述 MVC 模式的基本思想。模型-视图- 控制器(model-view-controller),简称 MVC.MVC 是一种先进的设计模式,是一种通过三个不同部分构造一个软件或组建的理想方法:3模型(model):用于存储数据的对象视图(view):显示模型中的数据,向控制器提交所需数据控制器(controller):负责具体的业务逻辑操作,即控制器根据视图提出的要求对数据作出处理,将有关结果存储到模型中,并负责让模型和视图进行必要的交互,当模型中的数据变化时,让视图更新显示。9.简述数据库连接池的思想以及使用连接池的好处。连接池的思想:Tomcat 服务器预
12、先准备好若干个连接对象,将这些对象保存在一个称为连接池的容器中(通常为链表) ,当某个用户需要操作数据库时,只要从连接池中取出一个连接对象,当用户使用完该连接对象后,再将该对象放回连接池。若连接池中没有连接对象可用,那么用户必须等待。连接池的好处:1 资源复用 2 更快的系统响应速度 3 新的资源分配手段 4 统一的连接管理,避免数据库连接泄漏四。程序设计题:(1 个)范围:对 mysql 数据库的连接及增删改查的操作inquire.jspInsert title here学生成绩查询(按条件查询 )数学成绩:英语成绩:按条件查询:数学成绩是,英语成绩是的记录:4学生成绩添加姓名:学号:数学成
13、绩:英语成绩:学生成绩修改姓名:数学成绩:英语成绩:学生成绩删除姓名:查询所有:SelectME.javapackage database.select;import java.sql.*;public class SelectME int math=90,english=90;String name=“;int number;StringBuffer queryResultByScore,queryResultByAll,addResult,updateResultByName,delResultByName;5public SelectME() /queryResultByScore=ne
14、w StringBuffer();/queryResultByAll=new StringBuffer();/ updateResultByName=new StringBuffer();/ delResultByScore=new StringBuffer();try Class.forName(“com.mysql.jdbc.Driver“);catch(Exception e) public int getMath() return math;public void setMath(int math) this.math=math;/ queryResultByScore=new Str
15、ingBuffer();public int getEnglish() return english;public void setEnglish(int english) this.english = english;/queryResultByScore=new StringBuffer();public String getName() return name;public void setName(String name) this.name = name;public int getNumber() return number;public void setNumber(int nu
16、mber) this.number = number;/按条件查询 public StringBuffer getQueryResultByScore() String condition=“SELECT * FROM student Where math = “+math+“ AND “+“english = “+english;6queryResultByScore=f(condition);return queryResultByScore;/查询所有public StringBuffer getQueryResultByAll() String condition=“SELECT *
17、FROM student“;queryResultByAll=f(condition);return queryResultByAll;/添加public StringBuffer getAddResult() String condition=“insert into student(name,number,math,english) value(“+ name +“,“+ number +“,“+ math +“,“+ english +“)“;addResult= AddOrUpd(condition);return addResult;/按条件修改public StringBuffer
18、 getUpdateResultByName() String condition=“update student set math=“+ math +“,english=“+ english +“ where name = “+name;updateResultByName= AddOrUpd(condition);return updateResultByName;/按条件删除(删除条件看情况具体写)public StringBuffer getDelResultByName() String condition=“delete from student where name = “+na
19、me;delResultByName= AddOrUpd(condition);return delResultByName;private StringBuffer f(String condition) StringBuffer str=new StringBuffer();Connection con;Statement sql; ResultSet rs;try String uri=“jdbc:mysql:/localhost:3306/school“;con=DriverManager.getConnection(uri,“root“,“123456“);sql=con.creat
20、eStatement();rs=sql.executeQuery(condition);str.append(“);str.append(“+“name“);str.append(“+“number“);str.append(“+“math“);str.append(“+“english“);while(rs.next()7 str.append(“);str.append(“+rs.getString(1)+“);str.append(“+rs.getInt(2)+“);str.append(“+rs.getInt(3)+“);str.append(“+rs.getInt(4)+“);str
21、.append(“);str.append(“);con.close();catch(SQLException e) System.out.println(e);return str;private StringBuffer AddOrUpd(String condition) StringBuffer str=new StringBuffer();Connection con;Statement sql; ResultSet rs;int rows = 0;try String uri=“jdbc:mysql:/localhost:3306/school“;con=DriverManager.getConnection(uri,“root“,“123456“);sql=con.createStatement();rows = sql.executeUpdate(condition); if(rows0)System.out.println(“成功!“);con.close();catch(SQLException e) System.out.println(e);return str;