一、填空(30分) 21
1、 Tomcat服务器的默认端口是 8080 。怎样修改tomcat的端口__在Tomcat下打开conf文件夹找到server.xml文件用记事本打开在<Connector port=”
2、 异常的处理,可在该方法的代码段中包含3类代码: try 、 catch 和finally代码块。
3、 jsp主要内置对象有: application 、exception 、 pageContext 、 request 、 session 、_____response_____out、config、page。
4、 理论上,GET是 用于获取服务器信息并将其作为响应返回给客户端 ,POST是 用于客户端把数据传送到服务器 。
5、 application对象是 代表应用程序上下文,它允许JSP页面与包括在同一应用程序中的任何Web组件共享信息 ,而session对象则是每个客户专用的。
6、 JDBC的主要任务是: 与数据库建立连接 、 发送SQL语句 、 处理结果 。
7、 一个Bean由三部分组成: 实现java.io.serializable接口、 提供无参数的构造方法 、 提供getter()和setter()方法访问它的属性 。
8、 Java Servlet的主要特点是: 、方便、 、 、节省投资。运行servlet需要在___web.xml_____注册.
9、 Servlet的生命周期分三个时期: 装载Servlet 、 创建一个Servlet实例 、 销毁 。
10、 JSP开发网站的两种模式分为_____jsp+javabean___________和 jsp+javabean+servlet 。
二、选择题(20分) 14
1、下面哪一个不是JSP本身已加载的基本类?(b )
A、java.lang.* B、java.io.* C、javax.servlet.* D、javax.servlet.jsp.*
2、对于预定义<%!预定义%>的说法错误的是:(c)
A、一次可声明多个变量和方法,只要以“;”结尾就行 B、一个声明仅在一个页面中有效
C、声明的变量将作为局部变量 D、在预定义中声明的变量将在JSP页面初始化时初始化
3、从 “员工” 表的“姓名”字段中找出名字包含“玛丽”的人,下面哪条select语句正确:( D )
A、 Select * from员工 where 姓名 =’_玛丽_’ B 、Select * from员工 where 姓名 =’%玛丽_’
C、 Select * from员工 where 姓名 like ‘_玛丽%’ D、 Select * from员工 where 姓名 like ‘%玛丽%’
4、下述选项中不属于JDBC基本功能的是:( D )
A. 与数据库建立连接 B. 提交SQL语句 C. 处理查询结果 D. 数据库维护管理
5、在JSP中使用<jsp:getProperty>标记时,不会出现的属性是:( c )
A. name B. property C. value D. 以上皆不会出现
6、Page指令用于定义JSP文件中的全局属性,下列关于该指令用法的描述不正确的是:(D )
A. <%@ page %>作用于整个JSP页面。
B. 可以在一个页面中使用多个<%@ page %>指令。
C. 为增强程序的可读性,建议将<%@ page %>指令放在JSP文件的开头,但不是必须的。
D. <%@ page %>指令中的属性只能出现一次。
7、在JSP中调用JavaBean时不会用到的标记是:( A )
A. <javabean> B. <jsp:useBean> C. <jsp:setProperty> D. <jsp:getProperty>
8、关于JavaBean正确的说法是:( A)
A、Java文件与Bean所定义的类名可以不同,但一定要注意区分字母的大小写
B、在JSP文件中引用Bean,其实就是用<jsp:useBean>语句
C、被引用的Bean文件的文件名后缀为.java
D、Bean文件放在任何目录下都可以被引用
9、Servlet程序的入口点是:(A )
A、init() B、main() C、service() D、doGet()
10、 不能在不同用户之间共享数据的方法是(A )
A、通过cookie B、利用文件系统 C、利用数据库 D、通过ServletContext对象
三、问答题(40分) 30
1.jsp有哪些内置对象?作用分别是什么?
application对象代表应用程序上下文,它允许JSP页面与包括在同一应用程序中的任何Web组件共享信息。
Config对象允许将初始化数据传递给一个JSP页面
Exception对象含有只能由指定的JSP“错误处理页面”访问的异常数据。
Out对象代表提供输出流的访问
Page对象代表JSP页面对应的Servlet类实例
PageContext对象是Jsp页面本身的上下文,它提供唯一一组方法来管理具有不同作用域的属性
Request对象提供对Http请求数据的访问,同时还提供用于加入特定请求数据的上下文
Response对象允许直接访问HttpServletResponse对象
Session对象可能是状态管理上下文中使用最多的对话
2.jsp有哪些动作?作用分别是什么?
<jsp:param>操作被用来以“名—值”队的形式为其他标签提供附加信息
<jsp:include>操作允许在请求是在现成的JSP页面里包含静态或者动态资源
<jsp:forward>操作允许将请求转发到另一个JSP、servlet或静态资源文件
<jsp:useBean>标签用来在JSP页面中创建一个JavaBean实例并指定他的名字以及作用范围
<jsp:setProperty>此操作和setBean一起协作,用来设置JavaBean的属性
<jsp:getProperty>操作是对<jsp:setProperty>操作的补充,用来访问一个Bean的属性
<jsp:plugin>用来产生客户端浏览器的特别标签,可以使用它来插入Applet和JavaBean
<jsp:fallback>
3.JSP中动态INCLUDE与静态INCLUDE的区别?
如果文件仅仅是静态文件,那么这种包含仅仅是把包含文件的内容加到JSP文件中去,但这个被包含文件不会被JSP编译器执行。相反,如果这个被包含文件是动态的文件,那么他将被JSP编译器执行。如果是动态文件还可以用<jsp:param>传递参数
4.两种跳转方式分别是什么?有什么区别? <jsp:include page="included.jsp" flush="true">
<jsp:forward page= "nextpage.jsp"/>
<jsp:include>操作允许在请求是在现成的JSP页面里包含静态或者动态资源
<jsp:forward>操作允许将请求转发到另一个JSP、servlet或静态资源文件
销毁Servlet实例(调用destroy方法)
6.jspsmartupload实现上传下载的步骤.(简述,并用代码实现)
首先创建Html文件
<html>
<body bgcolor="white">
<h1>jspsmartupload : Sample 1</h1>
<hr>
<form action="jsp/sample1.jsp" method="post" enctype="multipart/form-data">
<input type="file" name="file1" size="50"><br>
<input type="file" name="file2" size="50"><br>
<input type="file" name="file3" size="50"><br>
<input type="file" name="file4" size="50"><br>
<input type="submit" value="Upload">
</form>
</body>
</html>
在创建JSP页面
<%@ page language="java" import="com.jspsmart.upload.*"
pageEncoding="ISO-8859-1"%>
<jsp:useBean id="mySmartUpload" scope="page"
class="com.jspsmart.upload.SmartUpload"></jsp:useBean>
<html>
<body bgcolor="white">
<
<h1>
jspSmartUpload : Sample 1
</h1>
<hr>
<%
int count = 0;
mySmartUpload.initialize(pageContext);
mySmartUpload.setTotalMaxFileSize(1000000);
mySmartUpload.upload();
try {
count = mySmartUpload.save("/upload");
out.println(count + "file(s) upload.");
} catch (Exception e) {
out.println(e.toString());
}
%>
</body>
</html>
7.用jfreechart组件实现报表的步骤(简述,并用代码实现)
步骤:1 建立代表图表数据的Dataset对象
2 建立用于绘制图表JfreeChart类
3 将图表输出到指定目标
<%@ page language="java" contentType="text/html;charset=gb2312"%>
<%@ page import="org.jfree.chart.ChartFactory"%>
<%@ page import="org.jfree.chart.JFreeChart" %>
<%@ page import="org.jfree.chart.servlet.ServletUtilities" %>
<%@ page import="org.jfree.chart.plot.PlotOrientation" %>
<%@ page import="org.jfree.data.category.DefaultCategoryDataset" %>
<%@ page import="org.jfree.chart.ChartUtilities,org.jfree.chart.plot.CategoryPlot" %>
<%@ page import="java.awt.*" %>
<%
DefaultCategoryDataset dataset=new DefaultCategoryDataset();
dataset.addValue(300,"北京","苹果");
dataset.addValue(200,"北京","西瓜");
dataset.addValue(500,"北京","葡萄");
dataset.addValue(340,"北京","芒果");
dataset.addValue(280,"北京","香蕉");
JFreeChart chart=ChartFactory.createBarChart3D("水果销售量统计图",//图表标题
"水果",//X轴的显示标题
"销量",//Y轴的显示标题
dataset,//数据集
PlotOrientation.VERTICAL,//图表方向:水平、垂直
false,//是否包含图例
false,//是否包含提示
false//是否包含URL
);
//设置背景颜色
chart.setBackgroundPaint(new Color(200,200,200));
CategoryPlot cp=chart.getCategoryPlot();
cp.setBackgroundPaint(new Color(100,100,100));
cp.setDomainGridlinePaint(Color.black);
cp.setDomainGridlinesVisible(true);
cp.setRangeGridlinePaint(Color.red);
String fileName=ServletUtilities.saveChartAsJPEG(chart,800,600,null,null);
String url=request.getContextPath()+"/DisplayChart?filename="+fileName;
%>
<html>
<head>
<title>JFreeChart Example</title>
</head>
<body>
<p align="center">
<img src="<%=url %>" border=1>
</p>
</body>
</html>
8.在程序里怎样注册servlet.
<servlet>
<servlet-name>displayChart</servlet-name>
<servlet-class>org.jfree.chart.servlet.DisplayChart</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>displayChart</servlet-name>
<url-pattern>/displayChart</url-pattern>
</servlet-mapping>