admin 管理员组文章数量: 1184232
2024年3月7日发(作者:springbootmavenplugin不生效)
习题1 JSP 简介
1. 安装Tomcat5.5所在的计算机需要事先安装JDK吗?
答:需要。
2. 运行启动Tomcat服务器的好处是什么?
答:能够确保Tomcat服务器使用的是JAVA_HOME环境变量设置的JDK.
3. 和是否是相同的JSP文件名字
不是
4. 请在D:下建立一个名字为water的目录,并将该目录设置成一个Web服务目录,然后编写一个简单的JSP页面保存到该目录中,让用户使用权虚拟目录fish来访问该JSP页面?
答:设置方法:
① 建立D: water目录;
② 修改文件,在上一行添加:
reloadable="true"/> ③ 使用localhost:8080/ fish /example1_访问example1_页面. 1 5. 假设Dalian是一个Web服务目录,其虚拟目录为moon, 保存在Dalian的子目录sea中。那么在Tomcat服务器(端口号8080)所在计算机的浏览器键入下列哪种方式是访问的正确方式? A.127.0.0.1:8080/ 127.0.0.1:8080/Dalian/ C. 127.0.0.1:8080/moon/ D. B. 127.0.0.1:8080/moon/sea/ 答:D 6. 如果想修改的端口号,应当哪个文件?能否将端口号修改为80? 答:修改Tomcat服务器的conf目录下的主配置文件可以更改端口号. 若Tomcat服务器上没有其他占有80端口号的程序,可以将其修改为8080,否则不能。 习题2 JSP页面 1. "<%!"和"%>"之间声明的变量与"<%"和"%>"声明的变量有何不同? 答: "<%!"和"%>"声明的变量为类的成员变量,其所占的内存直到 2 Tomcat服务器关闭才释放. "<%"和"%>"为类方法中声明的局部变量,仅在JSP页面后继的程序片及表达式中有效. 2. 如果有2个用户访问一个JSP页面,该页面中的Java程序片将被执行几次? 答:当有一个用户访问JSP页面,JAVA程序片就被访问一次. 3. 假设有2个不同用户访问下列JSP页面,请问第一个和第二个访问页面的用户看到的页面效果有何不同? <%@ page contentType="text/html;Charset=GB2312" %>
<%!
String str=new String("你好");
synchronized void f(String s)
{ str=str+s; }
%>
<%
String s="abcd";
3
f(s);
%>
<%=str%>
答: 第一个客户看到结果是 你好abcd
第二个客户看到结果是 你好abcdabcd
4.
<%@ page contentType="text/html;Charset=GB2312" %>
<%
int i,j;
for(i=2;i<=100;i++)
{
for(j=2;j
{
if (i%j==0)
{ break;}
}
4
if(j==i)
{
%>
<%=i%>
<%
}
}
%>
结果:2 3 5 7 11 13 17 19 23 29
41 43 47 53 59 61 67 71 73 79
97
5.
<%@ page contentType="text/html;charset=GB2312" %>
<%@ page contentType="text/html;charset=GB2312" %>
<%
String str=ameter("mes");
(str+"
");
("其长度为:"+());
%>
6.
<%@ page contentType="text/html;charset=GB2312" %>
<%@ page contentType="text/html;charset=GB2312" %>
<%
int number=nt(ameter("number"));
(number+"的平方为:"+number*number+"
");
(number+"的立方为"+number*number*number+"
");
%>
习题3 JSP标记
7
:
1.
只能1个
2.
可以
3.
include指令标记:是把被包含的文件的内容放于包含文件中,组成一个文件后编译运行.
include动作标记: 是把被包含的文件的运行结果放于包含文件运行产生的结果中,这2个文件各自编译运行.
4.
param动作标记经常作为include、forward动作标记的字标记,作用是向动态加载的页面传值
5.
服务目录下建立WEB-INFtags,将Tag文件存放在“服务目录下WEB-INFtags”下或其子目录下
6.
用浏览器不可以直接访问Tag文件,可以通过jsp页面访问
7.
(1)JSP页面用
tagdir="/WEB-INF/tags" prefix="***" %>
(2)JSP页面使用Tag标记调用Tag文件:<***:tag文件名/>
8
8.
<%@ page contentType="text/html;Charset=GB2312" %>
<%@ taglib tagdir="/WEB-INF/tags" prefix="area" %>
以下是调用文件的效果:
以下是调用文件的效果:
<%@ attribute name="width" required="true" %>
<%@ attribute name="height" required="true" %>
该Tag文件计算长方形的面积.
<%!
public String getArea(double a,double b)
{
9
double area;
area=a*b;
return "
面积:"+area;
}
%>
<%
n("JSP页面传递过来的长、宽分别为:"+height);
double a=ouble(width);
double b=ouble(height);
n(getArea(a,b));
%>
<%@ attribute name="radius" required="true" %>
该Tag文件计算园的面积.
<%!
public String getArea(double a)
10
"+width+"
{
double area;
area=a*a*3.141593;
return "
面积:"+area;
}
%>
<%
n("JSP页面传递过来的半径为:"+radius);
double a=ouble(radius);
n(getArea(a));
%>
结果:
以下是调用文件的效果:
该Tag文件计算长方形的面积. JSP页面传递过来的长、宽分别为:6 4
面积:24.0
11
以下是调用文件的效果:
该Tag文件计算园的面积. JSP页面传递过来的半径为:10
面积:314.1593
习题4 JSP 内置对象
1.假设JSP使用的表单中有如下的GUI(复选框)
鸟
苹果
猫
月亮
该表单所请求的JSP可以使用内置对象request对象获取该表单提交的数据,那么,下列哪些是request获取该表单提交值的正确语句?
A. String a=ameter("item");
B. String b=ameter("checkbox");
C. String c[]=ameterValues("item");
D. String d[]=ameterValues("checkbox");
答: C.
2. 如果表单提交的信息中有汉字,接收该信息的页面应做怎样的处
12
理?
答:处理方法有2种:
第1种:
<%@ page contentType="text/html;Charset=GB2312" %>指令中的Charset首字母”C”大写.
第2种:重新编码
<% String str1=ameter("number");
byte c[]=es("ISO-8859-1");
str1=new String(c);
%>
4. reponse调用sendRedirect(URL: url)方法的作用是什么?
答:从一个页面跳转到sendRedirect(URL: url)中url指定的页面,并且这种跳转是客户端跳转.
6. 一个用户在不同Web服务目录中的session对象相同吗?
答:不相同.
7. 一个用户在同一Web服务目录中的session对象相同吗?
答:相同.
8. 如果用户长时间不关闭浏览器,用户的session对象可能消失吗?
13
答:可能消失.
9. 用户关闭浏览器后,用户的session对象一定消失吗?
答:一定消失.
14
习题5 JSP与Javabean
1. 假设Web服务目录Dalian中的JSP页面要使用一个bean,该bean的包名为.请说明,应当怎样保存bean的字节码文件?
答:
(1)在当前Web服务目录下建立如下目录结构: Web服务目录WEB-INFclasses
(2)根据类的包名,在目录classes下建立相应的子目录,将获得的字节码文件保存在子目录下
2. 是创建bean的类,下列哪个标记是正确创建session周期bean的标记?
答:
答: C.
3. 假设创建bean的类有一个int型的属性number,下列哪个方法是设置该属性值的正确方法?
A. public void setNumber(int n) B. void setNumber(int n)
15
{number=n; {number=n;
} }
C. public void SetNumber(int n) D. void Setnumber(int n)
{number=n; {number=n;
} }
答: A.
4.
input_
<%@ page contentType="text/html;Charset=GB2312" %>
<%@ page import="tom.*" %>
16 /> property="perimeter"/> package tom; public class Circle { double radius,perimeter,area; public Circle() { } public void setRadius(double r) { } public double getRadius() { 17 radius=0; radius=r; } } return radius; public double getPerimeter() { } public double getArea() { } area=3.141593*radius*radius; return area; perimeter=2*3.141593*radius; return perimeter; 结果: 请输入圆的半径(数字字符): 圆的周长:0.0 圆的面积:0.0 输入“10”提交 计算周长、面积 18 请输入圆的半径(数字字符): 圆的周长:62.83186 圆的面积:314.1593 5. 计算周长、面积 <%@ page contentType="text/html;Charset=GB2312" %>
圆的周长:
圆的面积:
长:
宽:
<%@ page contentType="text/html;Charset=GB2312" %>
<%@ page import="tom.*" %>
19
/> param="length" /> param="width" /> 面积: package tom; public class Rectangle { name="countArea" property="length" name="countArea" property="width" double length,width,area; public Rectangle() { } public void setLength(double l) { 20 length=0; width=0; } } length=l; public double getLength() { } public void setWidth(double w) { } public double getWidth() { } public double getArea() { } area=length*width; return area; return width; width=w; return length; 结果: 21 长:击 计算面积 面积:2000.0 6. 宽: 计算面积:输入 “100”、“20”点<%@ page contentType="text/html;Charset=GB2312" %> <%@ page import=".*" %> <%@ page import="umber" %> <% int n=(int)(()*100)+1; %> /> /> <% ibute("time",new Date()); %> 随机给你一个1到100之间的数,请猜这个数是多少? <% String str=RedirectURL(""); %> 22 输入你的猜测: <%@ page contentType="text/html;Charset=GB2312" %> <%@ page import=".*" %> <%@ page import="umber" %> <% String strGuess=RedirectURL(""); String strGetNumber=RedirectURL(""); %> /> param="guessNumber" /> 23 你给出的数是: property="guessNumber" /> <% if (t()==false) { name="guess" %> 再输入你的猜测: name="guessNumber" /> type="text" <% } else n(" Date()).getTime()-((Date)ribute("time")).getTime())/1000+"秒"); %> 24 猜数 package tom; public class GuessNumber { int answer,guessNumber,guessCount; String result=null; boolean right=false; public GuessNumber() { } public void setAnswer(int a) { answer=a; 25 answer=0; guessNumber=0; guessCount=0; result=null; right=false; } guessCount=0; public int getAnswer() { } public void setGuessNumber(int a) { guessNumber=a; return answer; guessCount++; if (guessNumber==answer) { } else if (guessNumber>answer) { } else if (guessNumber 26 right=true; result="恭喜,猜对了"; result="猜大了"; right=false; { result="猜小了"; right=false; } } public int getGuessNumber() { return guessNumber; } public int getGuessCount() { return guessCount; } public String getResult() { return result; } public boolean isRight() { return right; 27 } } 习题6 JSP中的文件操作 1. File类对象主要用来获取文件本身的一些信息,如文件所在的目录、文件的长度、文件的读写权限等。 2. File类对象.length() 返回的就是文件的长度 3. RandomAccessFile流的指向既可以作为源,也可以作为目的地。即通过这个流既可以读取所指向的文件,也可以写入其指向的文件。 4. 通过scope取值为session的bean来实现分行读取文件。 5. <%@ page contentType="text/html;Charset=GB2312" %> 输入新建的Web服务目录的名字: 28 name="newWebDirName" /> <%@ page contentType="text/html;Charset=GB2312" %> <%@ page import="r" %> <% if (ess()) n("新建Web服务目录成功!"); else n("新建Web服务目录失败!"); %> 29 package tom; import .*; public class FileDir { String newWebDirName=null; boolean success=false; public void setNewWebDirName(String s) { newWebDirName=(); File file=new File("D:Program FilesApache FoundationTomcat 6.0webapps",newWebDirName); if (()) { success=true; } } public String getNewWebDirName() { return newWebDirName; } public boolean isSuccess() 30 Software } { } return success; 结果: 输入新建的Web服务目录的名字:提交 输入“chapter7”,提交 新建Web服务目录成功! 6. package tom; import .*; public class Read { String dirName; String fileName; String fileContent; StringBuffer fileCont; public void setDirName(String dirName) { 31 } e=dirName; public String getDirName() { } public void setFileName(String fileName) { } public String getFileName() { } public String getFileContent() { File file=new File(dirName,fileName); if (()) { if (()) { 32 return dirName; me=fileName; return fileName; try { FileReader fr=new FileReader(file); } else 33 } BufferedReader br=new BufferedReader(fr); String s=ne(); while(s!=null) { } (); (); } catch(Exception e) {} (s+" s=ne(); else { } ("目录或文件不存在"); { } fileContent=ng(); ("目录或文件不存在"); return fileContent; } <%@ page contentType="text/html;Charset=GB2312" %>
您用的时间是"+((new
");
34
<%@ page contentType="text/html;Charset=GB2312" %>
<%@ page import="" %>
name="rf" property="fileName" param="fileName"/> 结果: 输入目录:输入文件名:提交 35 习题7 在JSP中使用数据库 1. ODBC设置数据源的主要步骤有哪些? 答: (1) 创建修改或删除数据源; (2) 为数据源选择驱动程序; (3) 数据源名称及所在位置; (4) 设置ID与密码; (5) 选择数据库; (6) 创建数据源 2. 36 剩余代码同例题7-1类似。testDB是Access数据库数据源的名字,如有ID、密码,则 conn=DriverManager(“jdbc:odbc:数据源名称”,ID,密码); 3. 加载SQL SERVER2000纯Java驱动程序的代码是什么? 答: try{ e("verDriver").newInstance(); } catch(Exception e){} 4. 加载MySql纯Java驱动程序的代码是什么? 37 答: try{ e("") } catch(Exception e){ } 5. 加载Oracle纯Java驱动程序的代码是什么? 答: try{ e("Driver"); } catch(Exception e){ } 6. 使用CachedRowSetImpl类有什么好处? 答: CachedRowSetImpl类的对象可以保存ResultSet对象中的数据,而且CachedRowSetImpl对象不依赖Connnection 对象,即把ResultSet对象中的数据保存到CachedRowSetImpl对象中后,就可以关闭和数据库的连接。 7. 使用预处理语句的好处是什么? 答: 预处理语句PreparedStatement会将传入的SQL命令封装在 38 PreparedStatement对象中,事先进行预编译处理等待使用。 当有单一的SQL语句多次执行时,用PreparedStatement类会比Statement类更有效率。 39 习题8 Java Servlet 基础 1. Servlet对象是在服务端还是在客户端创建的? 答: 服务端. 2. Servlet对象被创建后首选调用哪个方法? 答: init()方法. 3. service()方法 3. 下面的说法是否正确? “Servlet第一次被请求加载时调用init方法,当后续的客户请求Servlet对象时, Servlet对象不再调用init方法”. 答: 正确. 4. 假设创建Servlet的类是,创建的Servlet对象名字是myservlet,应当怎样配置? 答: 40 ….. rvletResponse类的sendRedirect方法和RequestDispatcher类的forward方法有何不同? 答: .HttpServletResponse提供的方法 void sendRedirect(String location) throws IOException 客户端跳转.即当前页面可用request对象获取用户提交参数,而目 41 标页面都不可用request对象获取用户提交参数. 转发 t .RequestDispatcher接口提供的方法 void ServletResponse response) // Forwards a request from a servlet to another resource (servlet, JSP file, or HTML file) on the server. 服务器跳转.即当前页面和目标页面都可用request对象获取用户提交参数. 7. Servlet对象怎样获得用户的会话对象? 答: 在doGet()或doPost()方法中使用获取当前会话对象. HttpSession session=sion(true); 一个用户在不同的Servlet中获取的session对象是完全相同的,不同的用户的session对象互不相同。 forward(ServletRequest request, 42 习题8 基于 Servlet的MVC模式 1. 在JSP中,MVC模式中的数据模型之角色由谁担当? 答: 由Java Bean或EJB充当. 2. 在JSP中,MVC模式中的控制器之角色由谁担当? 答: 一个或多个Servlet对象充当. 3. 在JSP中,MVC模式中的视图之角色由谁担当? 答: 由一个或多个JSP页面或HTML页面充当. 4. MVC的好处是什么? 答: MVC是Model-View-Controller的简写。Model 代表的是应用的业务逻辑(通过JavaBean,EJB组件实现), View 是应用的表示面(由JSP页面产生),Controller 是提供应用的处理过程控制(一般是一个Servlet),通过这种设计模型把应用逻辑,处理过程和显示逻辑分成不同的组件实现。这些组件可以进行交互和重用。 43 5. MVC模式中用到的Javabean是由JSP页面还是servlet负责创建? 答: 是servlet负责 44
版权声明:本文标题:JSP课后参考答案 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/b/1709762742a545627.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论