设计做任务的网站/cps广告是什么意思
目录
- 第1章 了解JSP
- 1、关于Tomcat服务器的说法中正确的是( AC )(选择二项)
- 2、在WEB项目的目录结构中,web.xml文件位于( C )中(选择一项)
- 3、jsp在执行过程中经过()阶段,由web容器将之转换成java源代码( B )(选择一项)
- 4、jsp在执行过程中经过()阶段,会将java源码转换成class文件( C )(选择一项)
- 5、在WEB应用程序开发中,有时会出现Tomcat端口号已经被占用的情况,为此我们需要修改配置文件,下列选项中修改正确的是( D )(选择一项)
- 6、在WEB应用程序的目录结构中,在WEB-INF文件夹中的lib目录是放( C )文件的
- 7、安装和配置JDK。
- 8、安装和配置Tomcat。
- 9、安装和配置MyEclipse或Eclipse。
- 第2章Jsp语法
- 1、JSP中存在如下代码:<%="2"+"4" %>,运行该JSP后,以下说法正确的是( C )(选择一项)
- 2、JSP文件test.jsp文件如下所示,运行时,将发生(D)。(选择一项)
- 5、在index.jsp页面中,包含了以下的JSP代码,则运行test.jsp页面结果为( a )。(选择一项)
- 6、创建a.jsp文件,声明整型变量c和函数mul(),mul()定义如下:
- 7、创建b.jsp文件,在其中创建一整型数组A[]={0,1,2,3},输出A[4]的值,产生异常,要求再创建一错误处理页面error.jsp文件,取得从b.jsp网页传出的错误信息。
- 8、编写3个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子标记提供的圆的半径以及梯形的上底、下底和高的值。
- 9、JSP中动态INCLUDE与静态INCLUDE的区别?
- 第3章JSP内置对象
- 1、在JSP中,使用( )对象的( )方法可完成网页重定向(选择一项)b
- 2、对于ServletRequest接口的getAttribute()方法,说法正确的是( b )(选择一项)
- 3、在JSP页面中,下列( a )表达式语句可以获取页面请求中名字为title的文本框的内容。(选择一项)
- 4、在JSP页面中有如下Java代码,一共存在( )处错误(选择一项)
- 5、以下代码中可以正确设置客户端请求编码为UTF-8 的是( a )(选择一项)
- 6、在下JSP代码,用户访问login.jsp页面点击“登录”后的显示结果是( )。(选择一项)
- 7、假设session对象中存放了一个Book对象,即:session.setAttribute("book",new Book()) , 则取出Book对象的正确语句是( b )(选择一项)
- 8、在JSP中,假设表单的method="post",在发送请求时中文乱码处理的正确做法是( a )(选择一项)
- 9、以下关于转发和重定向的说法错误的是( c )(选择一项)
- 10、编写一个jsp页面,要求提供一个包含各省份名称的下拉列表框,让用户选择其籍贯,提交后,判断用户是否是北京,如果是,则跳入一个欢迎界面,如果不是,则在页面上显示该用户籍贯。
- 11、计算三角形面积,如图3.26所示。输入三角形三条边,单击“提交”按钮,计算出三角形的面积。
- 12、如表单中提交信息有汉字,接收该信息的页面应如何处理?解决表单提交的中文乱码问题有哪些方法?
- 13、编写一个jsp页面,要求提供一组复选框,让用户选择日常饮用的饮料,提交后,在页面输出用户所有选择项。
- 14、JSP的9个内置对象及其含义。
- 第4章客户标签
- 1、自定义标签的作用是( c )
- 2、在JSP中,若要在JSP正确使用标签:,在jsp中声明的taglib指令为:<%@taglib uri = “/WEB-INF/myTags.tld” prefix = “_____”%>,下划线处应该是 (A )
- 3、自定义标签中,如果要声明标签参数为必须的,则需要进行哪种配置( a )
- 4、编写自定义标签处理类后,需要编写一个( b )去描述
- 5、自定义标签中,使用属性时,需要在______文件中配置,使用_______标签
- 6、以下哪个方法不是TagSupport类的方法( )
- 7、建立一个简单标记
- 第5章在JSP中使用JavaBean
- 1、对于JavaBean的理解中,以下说法错误的是( )(选择一项)
- 2、test.jsp文件中有如下一行代码:
- 3、在JSP中,对<jsp:setProperty>标记描述正确的是( )
- 4、给定TheBean类,假设还没有创建TheBean类的实例,以下哪些JSP标准动作语句能创建这个bean的一个新实例,并把它存储在请求作用域( )
- 5、编写一个JSP页面,该页面提供了一个表单,用户可以通过表单输入梯形的上底、下底和高的值,并提交给本JSP页面,该JSP页面将计算梯形的面积任务交给一个Bean完成。JSP页面使用getProperty动作标记显示梯形的面积。
- 6、编写两个jsp页面a.jsp和b.jsp,a.jsp页面提供了一个表单,用户可以通过表单输入矩形的两个边长提交给b.jsp页面,b.jsp调用一个bean去完成计算矩形面积任务。b.jsp页面使用getProperty动作标记显示矩形面积。
- 7、使用javabean实现用户登录
- 8、使用javabean实现简单购物车
- 第6章Servlet基础
- 1、在Servlet生命周期中,对应服务阶段的方法是( )(选择一项)
- 2、在web编程中,对于cookie的作用说法正确的有( A )(选择一项)
- 3、对于以下代码片段,说法正确的是( ac )(选择二项)
- 5、写出Servlet生命周期。
- 6、Servletconfig和ServletContext区别?
- 7、转发和重定向的区别?
- 第7章访问数据库
- 1、以下对数据库连接池,以下说法正确的是( a )(选择一项)
- 2、在JSP中使用JDBC语句访问数据库,正确导入SQL类库的语句是( )(选择一项)
- 3、假设已经在tomcat/conf/context.xml中配置了 元素,其name属性名为jdbc/book,type属性为DataSource, 以下代码能够正确获取数据源对象的代码是( )(选择一项)
- 4、在JDBC中,负责执行SQL语句的接口是( a )(选择二项)
- 5、在JDBC中,用于封装查询结果的是( a )(选择一项)
- 6、查询MySql数据库
- 第8章Jsp和EL
- 1、以下JSP关键代码的运行效果为( b )。(选择一项)
- 2、 EL表达式,${10 mod3},执行结果为( b )
- 3、 Login.jsp为登录页面,表单代码如下:Index.jsp中直接显示用户名,以下哪种代码正确(A)
- 4、 JSP EL 表达式:${user.loginName}执行效果等同于( c )
- 5、利用表达式调用函数求阶乘。
- 6、通过表达式语言访问数组和列表的值。
- 7、禁用表达式语言
- 第9章JSTL核心标签库
- 1、对JSTL说法中正确的是( ab )(选择二项)
- 2、如下JSP代码输出集合中各元素,横线处应填写( )。(选择二项)
- 3、某JSP中有如下代码,显示结果为( )
- 4、以下代码执行效果为:( d )
- 第10章使用MVC创建WEB应用
- 1、MVC中的 M、V和C 分别用_______、_______、_____表示。c
- 2、下面关于MVC的说法不正确的是 ( d )
- 3、创建一MVC应用。说明,本题没有利用数据库,只是加深对MVC的理解。
第1章 了解JSP
1、关于Tomcat服务器的说法中正确的是( AC )(选择二项)
A. tomcat出自于apache,可以为web应用程序提供运行环境
B. 使用tomcat需要支付费用,否则不允许授权使用
C. tomcat是一款开源服务器,性能优良
D. 以上全正确
2、在WEB项目的目录结构中,web.xml文件位于( C )中(选择一项)
A. Src
B. META-INF
C. WEB-INF
D. WebRoot
3、jsp在执行过程中经过()阶段,由web容器将之转换成java源代码( B )(选择一项)
A. 翻译
B. 编译
C. 执行
D. 响应
4、jsp在执行过程中经过()阶段,会将java源码转换成class文件( C )(选择一项)
A. 翻译
B. 编译
C. 执行
D. 响应
5、在WEB应用程序开发中,有时会出现Tomcat端口号已经被占用的情况,为此我们需要修改配置文件,下列选项中修改正确的是( D )(选择一项)
A. 在tomcat目录\bin文件夹\server.xml文件中,修改 Connection的port
B. 在tomcat目录\conf文件夹\server.xml文件中,修改 Connector的port
C. 在tomcat目录\bin文件夹\server.xml文件中,修改 Connector的port
D. 在tomcat目录\conf文件夹\server.xml文件中,修改 Connection的port
6、在WEB应用程序的目录结构中,在WEB-INF文件夹中的lib目录是放( C )文件的
A. .jsp文件
B. .class文件
C. .jar文件
D. web.xml文件
7、安装和配置JDK。
8、安装和配置Tomcat。
9、安装和配置MyEclipse或Eclipse。
第2章Jsp语法
1、JSP中存在如下代码:<%=“2”+“4” %>,运行该JSP后,以下说法正确的是( C )(选择一项)
A. 没有任何输出
B. 输出6
C. 输出24
D. 指令将引发错误
2、JSP文件test.jsp文件如下所示,运行时,将发生(D)。(选择一项)
<% String str = null;%> str is <%=str%> A. 编译阶段出现错误 B. 翻译阶段出现错误 C. 执行字节码时发生错误 D. 运行后,浏览器上显示:str is null #### 3、JSP页面的page指令主要用于设置该页面的各种属性,page指令的language属性的作用是( )。(选择一项) A. 将需要的包或类引入到JSP页面中 B. 指定JSP页面使用的脚本语言,默认为Java C. 指定JSP页面采用的编码方式,默认为text/html D. 服务器所在国家编码 #### 4、在JSP页面中提交表单,下面代码在页面输出的内容是( )。(选择一项)<%@page language="java" import="java.util.*" pageEncoding="utf-8"%>
<!DOCTYPE HTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN">
<html><head><title></title></head><body><%int []nums={1,2};int num=0;for(int i =0;i<nums.length;i++){num+=nums[i];%><%=nums[i]%><%out.print(num);}out.print(num);%></body>
</html>
A. 1233
B. 11233
C. 1123
D. 编译错误
5、在index.jsp页面中,包含了以下的JSP代码,则运行test.jsp页面结果为( a )。(选择一项)
index.jsp页面的关键代码如下:
<% int i=5; %>
和index.jsp同路径下的test.jsp页面的关键代码如下:
<%@ include file="index.jsp" %>
<%int j=10;int i=7;
%>
<%=(i+j)%>
A. 17
B. 22
C. 25
D. 编译错误
6、创建a.jsp文件,声明整型变量c和函数mul(),mul()定义如下:
public int mul(int a,int b)
{c=a*b;return c;}
利用JSP表达式输出调用mul(3,4)的值。
7、创建b.jsp文件,在其中创建一整型数组A[]={0,1,2,3},输出A[4]的值,产生异常,要求再创建一错误处理页面error.jsp文件,取得从b.jsp网页传出的错误信息。
8、编写3个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子标记提供的圆的半径以及梯形的上底、下底和高的值。
9、JSP中动态INCLUDE与静态INCLUDE的区别?
动态导入1、会将多个jsp页面分别再编写成java文件,编译成class文件。2、jsp文件中允许有相同的变量名,每个页面互不影响。3、当java代码比较多优先选用动态导入。4、效率相对较低,耦合性低。静态导入1、会将多个jsp页面合成一个jsp页面,再编写成java文件,编译成class文件。2、jsp文件中不允许有相同的变量名。3、当java代码比较少或者没有java代码是优先选用静态导入。4、效率相对较高,耦合性高。 收起
第3章JSP内置对象
1、在JSP中,使用( )对象的( )方法可完成网页重定向(选择一项)b
A. request,getRequestDispatcher()
B. request,forward()
C. response,sendRedirect()
D. response,setRequestDispatcher()
2、对于ServletRequest接口的getAttribute()方法,说法正确的是( b )(选择一项)
A. 获取指定名称的属性值
B. 设置指定属性的值
C. 删除指定属性的值
D. 以上都不对
3、在JSP页面中,下列( a )表达式语句可以获取页面请求中名字为title的文本框的内容。(选择一项)
A. <%=request.getParameter(“title”)%>
B. <%=request.getAttribute(“title”)%>
C. <%=request.getParameterValues(“title”)%>
D. <%=request.getParameters(“title”)%>
4、在JSP页面中有如下Java代码,一共存在( )处错误(选择一项)
<%String userName= (String)session.getParameter("userName");if(userName==null){%>您尚未登录!<%}else{%>欢迎您,<%=userName %><%}
%>
A. 0
B. 1
C. 2
D. 3
5、以下代码中可以正确设置客户端请求编码为UTF-8 的是( a )(选择一项)
A. request.setCharacterEncoding(“UTF-8”)
B. request.setCharset(“UTF-8”)
C. request.setContentType(“UTF-8”)
D. request.setEncoding(“UTF-8”)
6、在下JSP代码,用户访问login.jsp页面点击“登录”后的显示结果是( )。(选择一项)
login.jsp页面代码如下:
<form action="display.jsp">
<input type="text" name="u1" value="admin1"/>
<input type="text" name="u2" value="admin2"/><input type="submit" value="登录"/>
</form>
display.jsp页面代码如下:
<%request.setAttribute("x","admin3");request.getRequestDispatcher("success.jsp").forward(request,response);
%>
success.jsp页面代码如下:
<%=request.getParameter("u1")%>
<%=request.getAttributer("x")%>
A. admin1 admin2
B. admin1 null
C. admin1 admin3
D. null admin3
7、假设session对象中存放了一个Book对象,即:session.setAttribute(“book”,new Book()) , 则取出Book对象的正确语句是( b )(选择一项)
A. Book book = session.getAttribute(“book”)
B. Book book = (Book)session.getAttribute(“book”)
C. Book book = session.getValue(“book”)
D. Book book = (Book)session.getValue(“book”)
8、在JSP中,假设表单的method=“post”,在发送请求时中文乱码处理的正确做法是( a )(选择一项)
A. request.setCharacterEncoding(“utf-8”);
B. response.setCharacter(“utf-8”);
C. request.setContentType(“text/html;charset=utf-8”);
D. response.setContentType(“text/html;charset=utf-8”);
9、以下关于转发和重定向的说法错误的是( c )(选择一项)
A. 转发通过request的getRequestDispatcher().forward()方法即可实现,它的作用是在多个页面交互过程中实现请求数据的共享。
B. 重定向可以理解为是浏览器至少提交了两次请求,它是在客户端发挥作用,通过请求新的地址实现页面转向
C. 转发和重定向都可以共享request范围内的数据
D. 转发时客户端的URL地址不会发生改变,而重定向时客户端浏览器中显示的是新的URL地址。
10、编写一个jsp页面,要求提供一个包含各省份名称的下拉列表框,让用户选择其籍贯,提交后,判断用户是否是北京,如果是,则跳入一个欢迎界面,如果不是,则在页面上显示该用户籍贯。
11、计算三角形面积,如图3.26所示。输入三角形三条边,单击“提交”按钮,计算出三角形的面积。
12、如表单中提交信息有汉字,接收该信息的页面应如何处理?解决表单提交的中文乱码问题有哪些方法?
13、编写一个jsp页面,要求提供一组复选框,让用户选择日常饮用的饮料,提交后,在页面输出用户所有选择项。
14、JSP的9个内置对象及其含义。
第4章客户标签
1、自定义标签的作用是( c )
A. 编写和使用方便
B. 规定是这样的,如果不用,别人会说我们不专业
C. 可以减少jsp中的java代码,将代码与界面标签分离,简化前台开发
D. 连数据库
2、在JSP中,若要在JSP正确使用标签:<x:getKing/>,在jsp中声明的taglib指令为:<%@taglib uri = “/WEB-INF/myTags.tld” prefix = “_____”%>,下划线处应该是 (A )
A. x
B. getKing
C. myTags
D. king
3、自定义标签中,如果要声明标签参数为必须的,则需要进行哪种配置( a )
4、编写自定义标签处理类后,需要编写一个( b )去描述
A. .tag文件
B. .tld文件
C. .dtd文件
D. .xml文件
5、自定义标签中,使用属性时,需要在______文件中配置,使用_______标签
6、以下哪个方法不是TagSupport类的方法( )
A. doPost()
B. doStartTag()
C. doEndTag()
D. doAfterBody()
7、建立一个简单标记
1)编写一个扩展SimpleTagSupport的类
package pfc;
import javax.servlet.jsp.tagext.SimpleTagSupport;
//更多import语句
public class SimpleTag1 extends SimpleTagSupport {
//放标记处理器代码
}
2)实现doTag()方法
public void doTag() throws JspException,IOException
{
getJspContext().getOut().print("SimpleTag first");
}
3)创建TLD文件,并放在WEB-INF目录下
<taglib……><tlib-version>1.0</tlib-version><uri>simpleTags</uri><tag><name>simple1</name><tag-class>pfc.SimpleTag1</tag-class><body-content>empty</body-content></tag></taglib>
4)编写使用标记的jsp文件
<%@ taglib uri="simpleTags" prefix="mytags" %>
<html><body><mytags:simple1/></body>
</html>
8、建立一个有体简单标记
1)使用标记 jsp
<mytags:simple2>学会JSP真有用!
</mytags:simple2>
2)标记处理类
package pfc;
import javax.servlet.jsp.tagext.SimpleTagSupport;
//更多import语句
public class SimpleTag2 extends SimpleTagSupport {public void doTag() throws JspException,IOException{getJspBody().invoke(null);//JspFragment类}
}
3)标记的TLD
<taglib……><tlib-version>1.0</tlib-version><uri>simpleTags</uri><tag><name>simple2</name><tag-class>pfc.SimpleTag2</tag-class><body-content>scriptless</body-content></tag></taglib>
9、编写标签处理程序
给出JSP和TLD文件代码设置,以显示当前日期和时间。
1)JSP文件代码如下:
<%@ page import=”TestTag” %>
<%@ taglib uri=”taglib.tld” prefix=”first” %>
<HTML><BODY>Hello, Welcome!<first:welcome></first:welcome> </BODY>
</HTML>
2)TLD代码如下:
<taglib……><tlib-version>1.0</tlib-version><uri>simpleTags</uri><tag><name> welcome </name><tag-class> TestTag </tag-class><body-content> JSP </body-content></tag></taglib>
3)标签处理程序代码在此省略(代码可在清华大学出版社网站下载)。
第5章在JSP中使用JavaBean
1、对于JavaBean的理解中,以下说法错误的是( )(选择一项)
A. JavaBean正是基于组件重用的思想而提出的。
B. 按照用途不同,可分为:封装数据和封装业务两种。
C. JavaBean从本质上就是一个Java类,但它需要遵循一些编码约定。
D. JavaBean在项目大量使用,编写时可随意约定规范。
2、test.jsp文件中有如下一行代码:
<jsp:useBean id=”user” scope=”__” class=”com.UserBean”>
要使user对象可以作用于整个应用程序,下划线中应添入( )
A. page
B. request
C. session
D. application
3、在JSP中,对<jsp:setProperty>标记描述正确的是( )
A. jsp:setProperty和jsp:getProPerty必须在一个JSP文件中搭配出现
B. 就如同session.setAttribute()一样,来设计属性/值对
C. 和jsp:useBean动作一起使用,来设置bean的属性值
D. 就如同request.setAttribute()一样,来设置属性/值对
4、给定TheBean类,假设还没有创建TheBean类的实例,以下哪些JSP标准动作语句能创建这个bean的一个新实例,并把它存储在请求作用域( )
5、编写一个JSP页面,该页面提供了一个表单,用户可以通过表单输入梯形的上底、下底和高的值,并提交给本JSP页面,该JSP页面将计算梯形的面积任务交给一个Bean完成。JSP页面使用getProperty动作标记显示梯形的面积。
6、编写两个jsp页面a.jsp和b.jsp,a.jsp页面提供了一个表单,用户可以通过表单输入矩形的两个边长提交给b.jsp页面,b.jsp调用一个bean去完成计算矩形面积任务。b.jsp页面使用getProperty动作标记显示矩形面积。
7、使用javabean实现用户登录
1)创建login.html:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GBK">
</head>
<body>
<form name="form1" method="post" action="login.jsp"><table width="200" border="0" cellpadding="0" cellspacing="0"><tr> <td width="63" nowrap>用户名:</td><td width="137"><input type="text" name="usr_name"></td></tr><tr> <td>密码:</td><td><input type="text" name="usr_pass"></td></tr><tr> <td colspan="2"><input type="submit" name="Submit" value="登录"></td></tr></table>
</form>
</body>
</html>
2)创建Login.jsp:
<%@ page language="java" contentType="text/html; charset=GBK"pageEncoding="GBK"%>
<%request.setCharacterEncoding("gbk");%>
<jsp:useBean id="login" class="logbean.Login" /><jsp:setProperty name="login" property="usrName" param="usr_name"/>
<jsp:setProperty name="login" property="usrPassword" param="usr_pass"/>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GBK">
</head>
<body>
<p>welcome,
<jsp:getProperty name="login" property="usrName"/>,your loging password is
<jsp:getProperty name="login" property="usrPassword"/>,enjoy yourself!</p> </body>
</html>
3)创建Login.java:
package logbean;
public class Login
{String usrName;
String usrPassword;
public String getUsrName() {return usrName;
}
public void setUsrName(String usrName) {this.usrName = usrName;
}
public String getUsrPassword() {return usrPassword;
}
public void setUsrPassword(String usrPassword) {this.usrPassword = usrPassword;
}
}
8、使用javabean实现简单购物车
1)创建Shop.html
<html>
<body>
<form name="form1" method="post" action="car.jsp"><table width="50%" border="0" cellspacing="0" cellpadding="0"><tr> <td colspan="3">welcome to my shop </td></tr><tr> <td colspan="3">select the fruit you want to buy </td></tr><tr> <td> <select name="item" ><option value="apple" checked>apple</option><option value="banana">banana</option><option value="orange">orange</option></select>
</td> <tr><td width="34%"><input type="submit" name="sub" value="buy"></td><td width="21%"><input type="submit" name="sub" value="cancel"></td></tr></table>
</form>
</body>
</html>
2)创建car.jsp
<%@ page language="java" pageEncoding="GBK"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GBK">
</head>
<body>
<jsp:useBean id="car" scope="session" class="car.Mycar"/>
<p>你购买的水果如下</p><%car.setSubmit(request.getParameter("sub"));String action=car.getSubmit(); if (action.equals("buy")){if(!car.addItem(request.getParameter("item"))){out.println("you have choosed this kind of fruit!");}}else{ car.removeItem(request.getParameter("item"));} String shop[] =car.getItems();
for(int i=0;i<shop.length;i++)
{
%>
<li><%=shop[i] %></li>
<%} %>
<%@ include file="shop.html" %>
</body>
</html>
3)创建MyCar.java
package car;
import java.util.Vector;
public class MyCar {Vector v=new Vector();String submit=null;String item=null;public String[] getItems() {String items[]=new String[v.size()];v.copyInto(items);return items;}public void setItem(String item) {this.item = item;}public String getSubmit() {return submit;}public void setSubmit(String submit) {this.submit = submit;}public boolean addItem(String item){if(v.contains(item))return false;else{v.addElement(item);return true;}}public void removeItem(String item){v.removeElement(item);}
}
第6章Servlet基础
1、在Servlet生命周期中,对应服务阶段的方法是( )(选择一项)
A. init() 实例化阶段:服务器对Servlet进行实例化,调用Servlet的构造方法
B. destroy() 服务终止阶段:服务器调用Servlet的destroy方法销毁Servlet实例
C. service() 请求处理阶段:服务器调用Servlet的service方法,然后根据请求方式调用相应的doXXX方法
D. initial()
2、在web编程中,对于cookie的作用说法正确的有( A )(选择一项)
A. 为了识别不同的用户信息
B. 为了简化程序开发
C. 为了提高程序执行速度
D. 以上说法都不对
3、对于以下代码片段,说法正确的是( ac )(选择二项)
testServlet com.servlet.TestServlet A. 配置了逻辑名为testServlet的Servlet组件 B. 其对于的类的路径是:com.servlet.TestServlet C. 客户端可以通过testServlet访问 D. 以上说法都不对 #### 4、在java Web应用开发中,Servlet程序需要在( b )文件中配置。(选择一项) A. Jsp B. web.xml C. struts.xml D. servlet.xml5、写出Servlet生命周期。
1、 Web容器加载servlet类
2、 初始化servlet对象(构造函数运行)
3、 servlet调用init()方法(servlet一生只调用一次,在容器调用service()方法之前完成)
4、 调用service方法(处理客户请求doGet(),doPost()方法,每个请求都在一个单独的线程中运行)
5、 调用destroy(),容器调用这个方法,从而在servlet被垃圾回收之前有机会回收资源与init()方法一样,也只能调用一次。
6、Servletconfig和ServletContext区别?
1、定义1)ServletConfig:Servlet的配置对象,容器在初始化Servlet时通过它传递信息给Servlet。2)ServletContext:上下文对象,提供了一系列方法供Servlet与Web容器交互。
2、创建时机1)ServletConfig:在容器初始化Servlet的时候,并为其提供上下文初始化参数的名/值对的引用。2)ServletContext:容器启动的时候,并为其提供Servlet初始化参数的名/值对的引用。
3、作用范围(可见性)1)ServletContext:每个JVM中每个Web应用一个ServletContext。2)ServletConfig:每个JVM中每个Web应用的每个Servlet一个ServletConfig。
4.DD中的初始化参数配置ServletConfig配置如下(注意是在<servlet>标签中):<servlet> <init-param> <param-name>email</param-name> <param-value>www.linwei.com</param-value> </init-param> <servlet-name>JarDownload</servlet-name> <servlet-class>com.linwei.servlet.JarDownload</servlet-class> </servlet> ServletContext配置如下(注意是直接在<web-app>标签下):<context-param> <param-name>email</param-name> <param-value>www.linwei.com</param-value> </context-param>
5、Servlet中的访问方法1)ServletConfig:getServletConfig().getInitParameter(“name”)。2)ServletContext:getServletContext().getInitParameter(“name”)。
7、转发和重定向的区别?
转发与重定bai向的区别如下:
转发是服务器行为,重定向是客户端行为
1.转发在服务器端完成的;重定向是在客户端完成的
2.转发的速度快;重定向速度慢
3.转发的是同一次请求;重定向是两次不同请求
4.转发不会执行转发后的代码;重定向会执行重定向之后的代码
5.转发地址栏没有变化;重定向地址栏有变化
6.转发必须是在同一台服务器下完成;重定向可以在不同的服务器下完成
在servlet中调用转发、重定向的语句如下:
request.getRequestDispatcher(“new.jsp”).forward(request,
response);//转发到new.jsp
response.sendRedirect(“new.jsp”);//重定向到new.jsp
转发过程:客户浏览器发送http请求,web服务器接受此请求,调用内部的一个方法在容器内部完成请求处理和转发动作,将目标资源发送给客户;在这里,转发的路径必须是同一个web容器下的url,其不能转向到其他的web路径上去,中间传递的是自己的容器内的request。在客户浏览器路径栏显示的仍然是其第一次访问的路径,也就是说客户是感觉不到服务器做了转发的。转发行为是浏览器只做了一次访问请求。
重定向过程:客户浏览器发送http请求,web服务器接受后发送302状态码响应及对应新的location给客户浏览器,客户浏览器发现是302响应,则自动再发送一个新的http请求,请求url是新的location地址,服务器根据此请求寻找资源并发送给客户。在这里location可以重定向到任意URL,既然是浏览器重新发出了请求,则就没有什么request传递的概念了。在客户浏览器路径栏显示的是其重定向的路径,客户可以观察到地址的变化的。重定向行为是浏览器做了至少两次的访问请求的。
重定向,其实是两次request
第一次,客户端request
A,服务器响应,并response回来,告诉浏览器,你应该去B。这个时候IE可以看到地址变了,而且历史的回退按钮也亮了。重定向可以访问自己web应用以外的资源。在重定向的过程中,传输的信息会被丢失。
第7章访问数据库
1、以下对数据库连接池,以下说法正确的是( a )(选择一项)
A. 连接池从一定程度上提高了数据库访问效率
B. 使用连接池后,在程序代码中不必显式关闭连接
C. 连接池开销大,成本高,在企业级项目开发中不建议使用。
D. 以上说法均正确
2、在JSP中使用JDBC语句访问数据库,正确导入SQL类库的语句是( )(选择一项)
A. <%@ page import=“java.sql." %>
B. <%@ page import="sql.” %>
C. <% page import=“java.sql." %>
D. <%@ import="java.sql.” %>
3、假设已经在tomcat/conf/context.xml中配置了 元素,其name属性名为jdbc/book,type属性为DataSource, 以下代码能够正确获取数据源对象的代码是( )(选择一项)
A.Context ic = new Context();
DataSource ds = ic.lookup(“java:comp/env/jdbc/book”);
B.Context ic = new InitialContext();
DataSource ds =(DataSource) ic.lookup(“java:comp/env/jdbc/book”);
C.Context ic = new Context();
DataSource ds = (DataSource)ic.lookup(“java:comp/env/jdbc/book”);
D. Context ic = new InitialContext();
DataSource ds =(DataSource) ic.lookup(“java/comp/env/jdbc/book”);
4、在JDBC中,负责执行SQL语句的接口是( a )(选择二项)
A. Connection
B. Statement
C. Result
D. PreparedStatement
5、在JDBC中,用于封装查询结果的是( a )(选择一项)
A. ResultSet
B. Connection
C. PreparedStatement
D. DriverManager
6、查询MySql数据库
3) 建立mysql.jsp
<%@ page contentType="text/html; charset=gb2312" import="java.sql.*" %>
<HTML>
<BODY>
<HR>
<CENTER>
<%!
String driverName = "com.mysql.jdbc.Driver";
String dbURL = "jdbc:mysql://127.0.0.1:3306/mysqldb";
String userName = "root";
String userPwd = "root";
Connection con;
Statement stmt;
ResultSet rs;%>
<%
try {
Class.forName(driverName);
con = DriverManager.getConnection(dbURL, userName, userPwd);
out.print("连接成功!");
stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
rs = stmt.executeQuery("SELECT * FROM employees"); //建立ResultSet(结果集)对象,并执行SQL语句
rs.last(); //移至最后一条记录
}
catch(Exception e) {
e.printStackTrace();
}
%>
<br>
数据表中共有
<FONT SIZE = 4 COLOR = red>
<!--取得最后一条记录的行数-->
<%= rs.getRow() %>
</FONT>
笔记录
<br>
<TABLE border=1 bordercolor="#FF0000" bgcolor=#EFEFEF WIDTH=400>
<TR bgcolor=CCCCCC ALIGN=CENTER>
<TD><B>记录条数</B></TD>
<TD><B>雇员id</B></TD>
<TD><B>雇员姓名</B></TD>
<TD><B>部门id</B></TD>
<TD><B>职务</B></TD>
<TD><B>薪水</B></TD>
</TR>
<%
rs.beforeFirst(); //移至第一条记录之前
//利用while循环配合next方法将数据表中的记录列出
while(rs.next())
{
%>
<TR ALIGN=CENTER>
<!--利用getRow方法取得记录的位置-->
<TD><B><%= rs.getRow() %></B></TD>
<TD><B><%= rs.getString("EmpId") %></B></TD>
<TD><B><%= rs.getString("EmpName") %></B></TD>
<TD><B><%= rs.getString("DepId") %></B></TD>
<TD><B><%= rs.getString("Title") %></B></TD>
<TD><B><%= rs.getString("Salary") %></B></TD>
</TR>
<%
}
rs.close();//关闭ResultSet对象
stmt.close();//关闭Statement对象
con.close();//关闭Connection对象
%>
</TABLE>
</CENTER>
</BODY>
</HTML>
第8章Jsp和EL
1、以下JSP关键代码的运行效果为( b )。(选择一项)
<%Map map=new HashMap();map.put("a","Java");map.put("b","JSP");map.put("a","C#");request.setAttribute("map",map);
%>
${map.b}<br/>
${map["a"]}
A. JSP
C#
B. JSP
JAVA
C. 运行时出现错误
D. 什么也不输出。
2、 EL表达式,${10 mod3},执行结果为( b )
A. 10 mod 3
B. 1
C. 3
D. null
3、 Login.jsp为登录页面,表单代码如下:Index.jsp中直接显示用户名,以下哪种代码正确(A)
<form action="index.jsp"method="post"><input type="text" name="name"/><input type="submit" value="login"/>
</form>
A. ${requestScope.name}
B. <%=name%>
C. ${param.name}
D. <%=param.name%>
4、 JSP EL 表达式:${user.loginName}执行效果等同于( c )
A. <%=user.getLoginName()%>
B. <%user.getLoginName();%>
C. <%=user.loginName%>
D. <%user.loginName;%>
5、利用表达式调用函数求阶乘。
1)创建factorial类,其中fac函数求阶乘。
package pfc;
public class factorial {public static int fac(Integer n){int n1=n.intValue();if(n1==0 ||n1==1)return 1;elsereturn n1*fac(new Integer(n1-1));}
}
2)创建function.jsp
<%@ page language="java" contentType="text/html; charset=GBK"%><%@ taglib prefix="pfc" uri="/WEB-INF/tags/el.tld" %>
<html>
<body>
<p>EL 函数的使用:计算一个整数的阶乘</p>
<form action="function.jsp">
<input type="text" name="num">
<input type="submit" value="提交">
</form>
整数${param.num }的阶乘为:${pfc:fac(param.num)}
</body>
</html>
3)创建el.tld文件
<?xml version="1.0"?>
<taglib xmlns=http://java.sun.com/xml/ns/j2ee xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd" version="2.0" >
<tlib-version>1.0</tlib-version><function>
<description>to cumpute the factical of num n</description>
<name>fac</name>
<function-class> pfc.factorial</function-class>
<function-signature> int fac(java.lang.Integer)</function-signature>
</function>
</taglib>
6、通过表达式语言访问数组和列表的值。
<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<link href="css/style.css" rel="stylesheet" type="text/css">
<style type="text/css">
<!--
body {background-color: #FFCC00;
}
-->
</style></head>
<%
String name[] = {"清华","北大","北航","北科","北邮","北理"};
java.util.List<String> cityList = new java.util.ArrayList<String>();
cityList.add("廊坊");
cityList.add("石家庄");
cityList.add("秦皇岛");
cityList.add("唐山");
cityList.add("承德");
cityList.add("张家口");
request.setAttribute("name",name);
request.setAttribute("cityList",cityList);
%>
<body>
<p align="center">访问集合中的元素</p>
<table width="500" height="100" border="0" align="center"><tr align="center"><td width="120">访问数组:</td><td width="98" height="50">${name[0]}</td><td width="98">${name[1]}</td><td width="98">${name[2]}</td><td width="98">${name[3]}</td><td width="98">${name[4]}</td><td width="98">${name[5]}</td></tr><tr align="center"><td width="120">访问列表:</td><td height="90">${cityList[0]}</td><td>${cityList[1]}</td><td>${cityList[2]}</td><td>${cityList[3]}</td><td>${cityList[4]}</td><td>${cityList[5]}</td></tr>
</table>
</body>
</html>
7、禁用表达式语言
使用page指令禁用表达式代码如下:
<%@ page isELIgnored=”true”%>
第9章JSTL核心标签库
1、对JSTL说法中正确的是( ab )(选择二项)
A. foreach用来循环输出集合中的数据
B. set标签用来定义变量
C. out标签只能输出session中的变量值
D. if标签主要用来执行数据库操作
2、如下JSP代码输出集合中各元素,横线处应填写( )。(选择二项)
<%List<String> strs= new ArrayList<String>();strs.add("北京");strs.add("上海");strs.add("浙江");request.setAttribute("strs",strs);
%>
<c:forEach var="strList" items="___________"><c:out value="________"></c:out>
</c:forEach>
A. strs,{strs},strs,{strList}
B. strList,{strList},strList,{strs}
C. requestScope.strs,{requestScope.strs},requestScope.strs,{strList}
D. ${strList}, ${requestScope.strs}
3、某JSP中有如下代码,显示结果为( )
<%inta = 5;request.setAttribute(“a”,”123”);session.setAttribute(“a”,”456”);
%>
<c:out value="${a}"/>
A. 5
B. 123
C. 456
D. null
4、以下代码执行效果为:( d )
<%
session.setAttribute(“a”,”good”);
%>
<c:if test=“${2>1}”>
<c:out value=“${a}”/>
</c:if>
A. a
B. good
C. 2>1
D. null
第10章使用MVC创建WEB应用
1、模型(Java 类)
2、视图(JSP)
3、控制器(Servlet)
1、MVC中的 M、V和C 分别用_______、_______、_____表示。c
A. jsp servlet javabean
B. HTml javabean jsp
C. Javabean jsp servlet
D. servlet html jsp
2、下面关于MVC的说法不正确的是 ( d )
A. M表示Model层,是存储数据的地方
B. View表示视图层,负责向用户显示外观
C. Controller是控制层,负责控制流程
D. 在MVC架构中 jsp通常做控制层
3、创建一MVC应用。说明,本题没有利用数据库,只是加深对MVC的理解。
1)控制器
SimpleController.java:
package com.wrox.begjsp.ch17.mvc;
import java.io.IOException;
import java.util.List;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class SimpleController extends HttpServlet
{protected void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException{String action = request.getParameter("action");String jspPage = "/index.jsp";if ((action == null) || (action.length() < 1)){action = "default";}if ("default".equals(action)){jspPage = "/index.jsp";}else if ("displaylist".equals(action)){CustomerManager manager = new CustomerManager();List customers = manager.getCustomers();request.setAttribute("customers", customers);jspPage = "/displayList.jsp";}else if ("displaycustomer".equals(action)){String id = request.getParameter("id");CustomerManager manager = new CustomerManager();Customer customer = manager.getCustomer(id);request.setAttribute("customer", customer);jspPage = "/displayCustomer.jsp";}else if ("editcustomer".equals(action)){String id = request.getParameter("id");CustomerManager manager = new CustomerManager();Customer customer = manager.getCustomer(id);request.setAttribute("customer", customer);jspPage = "/editCustomer.jsp"; }else if ("editcustomerexe".equals(action)){String id = request.getParameter("id");CustomerManager manager = new CustomerManager();Customer customer = manager.getCustomer(id);String a1=request.getParameter("firstname");String a2=request.getParameter("lastname");String a3=request.getParameter("address");customer.setFirstName(a1);customer.setLastName(a2);customer.setAddress(a3);request.setAttribute("customer", customer);jspPage = "/displayCustomer.jsp"; }dispatch(jspPage, request, response);}protected void dispatch(String jsp, HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException{if (jsp != null){RequestDispatcher rd = request.getRequestDispatcher(jsp);rd.forward(request, response);}}protected void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException{doPost(request, response);}
}
2)模型
(1) Customer.java:
package com.wrox.begjsp.ch17.mvc;
public class Customer
{private String _id;private String _firstName;private String _lastName;private String _address;public Customer(String id, String firstName, String lastName, String address){_id = id;_firstName = firstName;_lastName = lastName;_address = address;}public String getAddress(){return _address;}public void setAddress(String address){_address = address;}public String getFirstName(){return _firstName;}public void setFirstName(String firstName){_firstName = firstName;}public String getLastName(){return _lastName;}public void setLastName(String lastName){_lastName = lastName;}public String getId(){return _id;}public void set_id(String id){_id = id;}
}
(2)CustomerManager.java:
package com.wrox.begjsp.ch17.mvc;
import java.util.ArrayList;
import java.util.List;
public class CustomerManager
{public List getCustomers(){return generateCustomers();}private List generateCustomers(){List rv = new ArrayList();for (int i = 0; i < 10; i++){rv.add(getCustomer(String.valueOf(i)));}return rv;}public Customer getCustomer(String id){return new Customer(id, id + "First", "Last" + id,"123 Caroline Road Fooville");}
}
3)视图
(1)index.jsp:
<a href="controller?action=displaylist" target="_self">
View List of Customers
</a>
(2)displayList.jsp:
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head><title>Display Customer List</title>
</head>
<body>
<table cellspacing="3" cellpadding="3" border="1" width="500">
<tr><td colspan="4"><b>Customer List</b></td>
</tr>
<tr><td><b>Id</b></td><td><b>First Name</b></td><td><b>Last Name</b></td><td><b>Address</b></td>
</tr>
<c:forEach var="customer" items="${requestScope.customers}">
<tr><td><a href="controller?action=displaycustomer&id=${customer.id}">${customer.id}</a></td><td>${customer.firstName}</td><td>${customer.lastName}</td><td>${customer.address}</td>
</tr>
</c:forEach>
</table>
</body>
</html>
(3)displayCustomer.jsp:
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<c:set var="customer" value="${requestScope.customer}"/>
<html>
<head><title>Display Customer</title>
</head>
<body><table cellspacing="3" cellpadding="3" border="1" width="60%">
<tr><td colspan="2"><b>Customer:</b> ${customer.firstName} ${customer.lastName}</td>
</tr>
<tr><td><b>Id</b></td><td>${customer.id}</td>
</tr>
<tr><td><b>First Name</b></td><td>${customer.firstName}</td>
</tr>
<tr><td><b>Last Name</b></td><td>${customer.lastName}</td>
</tr>
<tr><td><b>Address</b></td><td>${customer.address}"</td>
</tr>
<tr><td colspan="2"><a href="controller?action=editcustomer&id=${customer.id}">Edit This Customer</a></td>
</tr>
</table>
</body>
</html>
(4)editCustomer.jsp:
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<c:set var="customer" value="${requestScope.customer}"/>
<html>
<head><title>Edit Customer</title>
</head>
<body>
<form method="post" action="controller?action=editcustomerexe">
<table cellspacing="3" cellpadding="3" border="1" width="60%">
<input type="hidden" name="id" value="${customer.id}">
<tr><td><b>First Name:</b> </td><td><input type="text" name="firstname" value="${customer.firstName}"></td>
</tr>
<tr><td><b>Last Name:</b> </td><td><input type="text" name="lastname" value="${customer.lastName}"></td>
</tr>
<tr><td><b>Address:</b> </td><td><input type="text" size="50" name="address" value="${customer.address}"></td>
</tr>
<tr><td colspan="2"><input type="submit" value="edit customer"></td>
</tr>
<tr><td colspan="2"><a href="controller?action=displaylist&id=${customer.id}">Return customer list</a></td><tr>
</table>
</form>
</body>
</html>