1.JSP 页面经过编译之后,将创建一个( B )。
A.applet B.severlet C.application D.exe文件
2.以下对象中的(D)不是JSP的内置对象。
A.request B.session C.application D.bean
3.下边哪个不是FORM的元素?(D )。
A.Input B.textarea C.select D.table
4.page指令的import属性的作用是:(C )。
A.定义JSP页面响应的MIME类型
B.定义JSP页面使用的脚本语言
C.为JSP页面引入JAVA包中的类
D.定义JSP页面字符的编码
5.关于JavaBean的说法,哪个是正确的?(D )
A.JavaBean的具体类可以不是public的。B.JavaBean可以只提供一个带参数的构造器。
C.jsp:userBean可以向HTML标记一样不关闭。D.JavaBean可以保存状态。6.JavaBean的生命周期中,哪个是用来跟踪用户的会话的?( A )
A.session B.request C.page D.application
7.在JSP中,要定义一个方法,需要用到以下(C )元素。
A.<%= %> B.<% %> C.<%! %> D.<%@ %>
8.下面的说法错误的是:(D )
A.JSP可以处理动态内容和静态内容
B.在JSP最终会编译成字节码后执行
C.在JSP中可以使用脚本控制Html的标签生成
D.JSP中不能使用//注释Java脚本中的代码
9.不能在不同用户之间共享数据的方法是:(A )
A.通过cookie B.利用文件系统C.利用数据库D.通过ServletContext对象10.( B )指令指定自定义标签的描述器所在位置?
A.page B.taglib C.include D.config
11.在J2EE中,${2 + “4”}将输出(B )。
A.2 + 4 B.6 C.24 D.不会输出,因为表达式是错误的
12.Java EE中,JSP EL 表达式:${user.loginName}执行效果等同于(a)。
A.<% = user.getLoginName()%> B.<%user.getLoginName();%>
C.<% = user.loginName%> D.<% user.loginName;%>
13.以下是部署在主机https://www.doczj.com/doc/b417327416.html, 80口上的web应用webdev的部署描述文件web.xml的一部分:
一个客户在浏览器的地址栏输入了如下URL:
https://www.doczj.com/doc/b417327416.html,/webdev/account/deposit?accno=1212&amt=1000
调用(13)G 或(14)E 的方法(15)F 可以获得初始参数interestRate的值。在accountServlet中调用HttpServletRequest的getRequestURI返回(16)H , 调用getQueryString返回__ (17)B ___,调用getContextPath返回(18)A , 调用getServletPath返回(19)C ,调用getPathInfo返回(20) D 。
A. /webdev
B. accno=1212&amt=1000
C. /account
D. /deposit
E. Servletconfig
F. getInitParameter
G. HttpServlet H. /webdev/account/deposit
二、简答题
1. JSP页面是如何被执行的?JSP执行效率比Servlet低吗?
当客户端向一个JSP页面发出请求时,Web Container将JSP转化成Servlet的源代码(只在第一次请求时),然后编译转化后的Servlet并加载到内存中执行,执行的结果Response到客户端。
JSP只在第一次执行的时候会转化为Servlet,以后每次执行Web容器都是直接执行编译后的Servlet,所以JSP和Servlet只是在第一次执行的时候不一样,JSP慢一点,以后的执行都是相同的
2.如何避免JSP页面自动生成session对象?为什么要这么做?
在默认情况下,在对一个JSP页面发出请求时,如果session还没有建立,JSP页面会自动为请求建立一个session 对象,但是session是比较消耗资源的,如果没必要保持和使用session,就不应该创建session, 例如一些只是用来宣传产品的网站,往往没必要使用session来保存信息,可以使用jsp页面指令session=”false”来避免JSP 页面为每个请求都自动创建session.实例代码如下:
<%@ page session=”false”>
3.
jsp:forward>只能在本网站内跳转
response.sendRedirect跳转到任何一个地址的页面
4.简述JSP常用的内置对象。
request,请求对象 response,响应对象
pageContext,页面上下文对象 session,会话对象
application,应用程序对象 out,输出对象
page, 页面对象 config,页面配置对象
exception,异常对象
5.简述解决汉字乱码问题的常用方法。
request.setCharacterEncoding(“GB2312”);
name=new String(name.getBytes(“ISO8859_1”), “gb2312”);
6.简述http协议数据提交方式。
http协议提交时默认为get.
用get方式提交时,地址栏中可见且有长度限制(225);
用post方式提交时,地址栏不可见,无长度限制,使用方式为:method="post"
7.简述MVC设计模式
1、模型(Model)
模型是应用程序的主体部分。模型表示业务数据,或者业务逻辑.
2、视图(View)
视图是应用程序中用户界面相关的部分,是用户看到并与之交互的界面。
3、控制器(controller)
控制器工作就是根据用户的输入,控制用户界面数据显示和更新model 对象状态。
MVC不仅实现了功能模块和显示模块的分离,同时它还提高了应用系统的可维护性、可扩展性、可移植性和组件的可复用性
8. 简述Servlet生命周期
Servlet是一种可以在Servlet容器中运行的组件,那么理所当然就应该有一个从创建到销毁的过程,这个过程我们可以称之为Servlet生命周期。Servlet的生命周期可以分为加载、实例化、初始化、处理客户请求和卸载五个阶段,体现在方法上主要是init ()、service()和destroy()三个方法。生命周期的具体说明如下:
·Servlet容器完成加载Servlet类和实例化一个Servlet对象
·init()方法完成初始化工作,该方法由Servlet容器调用完成
·service()方法处理客户端请求,并返回响应结果
·destroy()方法在Servlet容器卸载Servlet之前被调用,释放一些资源
三、程序设计题
1. 第一个Servlet1文件,读取两个请求参数first和second,将其转换为int值后相加,和存放在请求范围内,然后把请求转发第二个Servlet
2.。第二个Servlet2文件(url为output),向客户输出Servlet1计算的结果。根据注释补充下列代码。
public class Servlet1 extends HttpServlet {
public void service(ServletRequest request,ServletResponse response)
throws ServletException, IOException {
//读取两个请求参数,并将其转换为int值
int first = Integer.valueOf(request.getParameter("first")).intValue();
int second= 1 Integer.valueOf(request.getParameter("second")).intValue(); __ //将两个数字相加
int sum=first+second;
//在request对象中添加sum属性
/*把请求转发给Servlet2 */
ServletContext context = getServletContext();
RequestDispatcher dispatcher =context.getRequestDispatcher("/output");
dispatcher.forward(request, response);
}}
public class Servlet2 extends HttpServlet {
public void service(ServletRequest request,ServletResponse response)
throws ServletException, IOException {
//读取请求范围内Servlet1计算出的和
String sum=(String)request.getAttribute("sum");
//向客户端输出和
PrintWriter out=response.getWriter();
out.print("the sum is "+sum);
}}
2。写一个JSP访问MySQL数据库的userT表,并完成查询和修改操作;JDBC数据源名为test,驱动类名为:"com.mysql.jdbc. Driver",连接数据库的url为:"jdbc:mysql://localhost:3306/test"。user表中id字段为主键数据类型为整型,name字段为文本类型,password为数字类型。数据库数据如下所示:
①完成数据库的连接
create database uset
Use useT
②插入一条记录(”赵六”,001122)到userT表中
Insert into useT(name,password)
values(“赵六”,001122)
③查询所有记录,并将结果集显示到客户端
Select *from useT