《JSP实用教程(第三版)》课后答案
第1章 JSP简介
1. 安装Tomcat引擎的计算机需要事先安装JDK吗?
答:需要。
2. 略
3. Boy.jsp和boy.jsp是否是相同的JSP文件名字?
答:不是
4. 请在D:\\下建立一个名字为water的目录,并将该目录设置成一个Web服务目录,然后编写一个简单JSP页面保存到该目录中,让用户使用虚拟目录fish来访问该JSP页面。
答:设置方法:
① 建立D:\\ water目录;
② 修改server.xml文件,在上一行添加:
1 ③ 使用http://localhost:8080/ fish /example1_1.jsp访问example1_1.jsp页面. 5. 假设Dalian是一个Web服务目录,其虚拟目录为moon。A.jsp保存在Dalian的子目录sea中。那么在Tomcat服务器(端口号8080)所在计算机的浏览器键入下列哪种方式是访问A.jsp的正确方式? A.http://127.0.0.1:8080/A.jsp B. http://127.0.0.1:8080/Dalian/A.jsp C. http://127.0.0.1:8080/moon/A.jsp D. http://127.0.0.1:8080/moon/sea/A.jsp 答:D 6.如果想修改Tomcat服务器的端口号,应当修改哪个文件?能否将端口号修改为80? 答:修改Tomcat服务器的conf目录下的主配置文件server.xml可以更改端口号. 若Tomcat服务器上没有其他占有80端口号的程序,可以将其修改为8080,否则不能。 2 第2章 JSP语法 1."<%!"和"%>"之间声明的变量与"<%"和"%>"声明的变量有何不同? 答: "<%!"和"%>"声明的变量为类的成员变量,其所占的内存直到Tomcat服务器关闭才释放. "<%"和"%>"为类方法中声明的局部变量,仅在JSP页面后继的程序片及表达式中有效. 2. 如果有2个用户访问一个JSP页面,该页面中的Java程序片将被执行几次? 答:2次(当有一个用户访问JSP页面,JAVA程序片就被访问一次). 5. 假设有2个不同用户访问下列JSP页面hello.jsp,请问第一个和第二个访问hello.jsp页面的用户看到的页面效果有何不同? hello.jsp <%@ page contentType=\"text/html;charset=GB2312\" %> <%@ page isThreadSafe=\"false\" %> 3 <%! int sum=1; void add(int m) { sum = sum +m; } } %> <% int n =100; add(n); %> 4 <%=sum%> 答:第一个客户看到结果是101; 第二个客户看到结果是201; 6. 请编写一个简单的JSP页面,显示英文字幕表。 <%@ page contentType=\"text/html;charset=GB2312\" %> <% for(char c='A';c<='Z';c++) { out.println(\" \"+c); } %> 5 7. 请简单叙述include指令标记和include动作标记的不同. 答: include指令标记:是把被包含的文件的内容放于包含文件中,组成一个文件后编译运行. include动作标记: 是把被包含的文件的运行结果放于包含文件运行产生的结果中,这2个文件各自编译运行. 8. 编写三个JSP页面:main.jsp、circle.jsp、ladder.jsp,将三个JSP页面保存在同一web服务目录中。main.jsp使用include动作标记加载circle.jsp和ladder.jsp页面。circle.jsp页面可以计算并显示圆的面积。ladder.jsp页面可以计算并显示梯形的面积。当circle.jsp和ladder.jsp被加载时获取main.jsp页面include动作标记的param子标记提供的圆的半径以及梯形的上底、下底和高的值。 答: main.jsp: <%@ page contentType=\"text/html;charset=GB2312\" %> 6 circle.jsp: <%@ page contentType=\"text/html;charset=GB2312\" %> 7 <% String strR=request.getParameter(\"R\"); double R=Double.parseDouble(strR); double area=3.14*R*R; %> 圆形的面积是:<%= area %> lader.jsp: <%@ page contentType=\"text/html;charset=GB2312\" %> 8 <% String strA=request.getParameter(\"A\"); String strB=request.getParameter(\"B\"); String strC=request.getParameter(\"C\"); double a=Double.parseDouble(strA); double b=Double.parseDouble(strB); double c=Double.parseDouble(strC); double area=(a+b)*c/2; %> 梯形的面积是:<%= area %> 9 10 第3章 JSP 内置对象 1.假设JSP使用的表单中有如下的GUI(复选框) 鸟 苹果 猫 月亮 该表单所请求的JSP可以使用内置对象request对象获取该表单提交的数据,那么,下列哪些是request获取该表单提交值的正确语句? A. String a=request.getParameter(\"item\"); B. String b=request.getParameter(\"checkbox\"); C. String c[]=request.getParameterValues(\"item\"); D. String d[]=request.getParameterValues(\"checkbox\"); 答: C. 11 2. 如果表单提交的信息中有汉字,接收该信息的页面应做怎样的处理? 答:处理方法有2种: 第1种: <%@ page contentType=\"text/html;Charset=GB2312\" %>指令中的Charset首字母”C”大写. 第2种: <% String str1=request.getParameter(\"number\"); byte c[]=str1.getBytes(\"ISO-8859-1\"); str1=new String(c); %> 3.编写两个JSP页面inputString.jsp和computer.jsp,用户可以使用inputString.jsp提供的表单输入一个字符串,并提交个computer.jsp页面,该页面通过内置对象获取inputString.jsp页面提交的字符串,计算并显示该字符串的长度。 答: inputString.jsp 12 <%@ page contentType=\"text/html;Charset=GB2312\" %> computer.jsp <%@ page contentType=\"text/html;Charset=GB2312\" %> <% String yourString=request.getParameter(\"string\"); %> 您输入的字符串是:<%=yourString %> 13 字符串的长度是:<%=yourString.length() %> 4. reponse调用sendRedirect(URL: url)方法的作用是什么? 答:从一个页面跳转到sendRedirect(URL: url)中url指定的页面,并且这种跳转是客户端跳转. 5. 略 6. 一个用户在不同Web服务目录中的session对象相同吗? 答:不相同. 7. 一个用户在同一Web服务目录中的session对象相同吗? 答:相同. 14 第4章 JSP与Javabean 1. 假设Web服务目录mymoon中的JSP页面要使用一个bean,该bean的包名为blue.sky.请说明,应当怎样保存bean的字节码文件? 答: (1)在当前Web服务目录下建立如下目录结构: (2)Web服务目录\\WEB-INF\\classes (3)根据类的包名,在目录classes下建立相应的子目录.即: Web服务目录\\WEB-INF\\classes\\blue\\sky (4)将获得的字节码文件保存在其中. 2. tom.jiafei.Circle是创建bean的类,下列哪个标记是正确创建session周期bean的标记? 答: 15 答: C. 3. 假设创建bean的类有一个int型的属性number,下列哪个方法是设置该属性值的正确方法? A. public void setNumber(int n) B. void setNumber(int n) {radius=n; {radius=n; } } C. public void SetNumber(int n) D. void Setnumber(int n) {radius=n; {radius=n; } } 答: A. 16 4. 否 5. 编程.略 6. 编程.略. 17 第5章Java Servlet 基础 1. Servlet对象是在服务器端还是在客户端创建的? 答:服务器端. 2. Servlet对象被创建后首选调用init方法还是service方法? 答:init方法. 3. “Servlet第一次被请求加载时调用init方法,当后续的客户请求Servlet对象时, Servlet对象不再调用init方法”. 这样的说法是否正确? 答:正确. 4. 假设创建Servlet的类是tom.jiafei.Dalian,创建的Servlet对象名字是myservlet,应当怎样配置web.xml? 答: 18 ….. 5. 如果Servlet类不重写service方法,那么应当重写哪两个方法? 答:doGet方法或doPost方法。 19 6. HttpServletResponse类的sendRedirect方法和RequestDispatcher类的forward方法有何不同? 答: javax.servlet.http .HttpServletResponse提供的方法 void sendRedirect(String location) throws IOException 客户端跳转.即当前页面可用request对象获取用户提交参数,而目标页面都不可用request对象获取用户提交参数. 转发 javax.servlet .RequestDispatcher接口提供的方法 void forward(ServletRequest request, ServletResponse response) // Forwards a request from a servlet to another resource (servlet, JSP file, or HTML file) on the server. 服务器跳转.即当前页面和目标页面都可用request对象获取用户提交参数. 7. Servlet对象怎样获得用户的会话对象? 20 答: 在doGet()或doPost()方法中使用获取当前会话对象. HttpSession session=request.getSession(true); 一个用户在不同的Servlet中获取的session对象是完全相同的,不同的用户的session对象互不相同。 21 第6章 MVC模式 1. 在JSP中,MVC模式中的数据模型之角色由谁担当? 答: 由Java Bean或EJB充当. 2. 在JSP中,MVC模式中的控制器之角色由谁担当? 答: 一个或多个Servlet对象充当. 3. 在JSP中,MVC模式中的视图之角色由谁担当? 答: 由一个或多个JSP页面或HTML页面充当. 4. MVC的好处是什么? 答: MVC是Model-View-Controller的简写。Model 代表的是应用的业务逻辑(通 22 过JavaBean,EJB组件实现), View 是应用的表示面(由JSP页面产生),Controller 是提供应用的处理过程控制(一般是一个Servlet),通过这种设计模型把应用逻辑,处理过程和显示逻辑分成不同的组件实现。这些组件可以进行交互和重用。 5. MVC模式中用到的Javabean是由JSP页面还是servlet负责创建? 答: 是servlet负责 第7章 在JSP中使用数据库 1. 加载MySQL的JDBC数据库驱动程序代码是什么? 答: try{ Class.forName(\"com.mysql.jdbc.Driver\"); } catch(Exception e){ } 3. 加载SQL server的JDBC数据库驱动程序代码是什么? 答: 23 try{ Class.forName(\"com.microsoft.sqlserver.jdbc.SQLServerDriver\"); } catch(Exception e){ } 4. 使用预处理语句的好处是什么? 答: 预处理语句PreparedStatement会将传入的SQL命令封装在PreparedStatement对象中,事先进行预编译处理等待使用。 当有单一的SQL语句多次执行时,用PreparedStatement类会比Statement类更有效率。 第8章 JSP中的文件操作 1. File对象能读写文件吗? 答:不能。 2. File对象怎样获取文件的长度? 答:调用public long length()方法。 24 3. 准备读取文件“A.java”,下列哪些是正确创建输入流的代码? 答:A和D。 4. RandomAccessFile类创建的流在读写文件时有什么特点? 答:RandomAccessFile类既不是输入流类InputStream类的子类,也不是输出流类Outputstream类的子类。想对一个文件进行读写操作时,可以创建一个指向该文件的RandomAccessFile流,这样我们既可以从这个流中读取这个文件的数据,也可以通过这个流给这个文件写入数据。 25 因篇幅问题不能全部显示,请点此查看更多更全内容