1、有人说:servlet和JavaBean都是java类,可以互换使用,请您回答,在MVC中,控制器部分是否可以使用JavaBean完成?为什么?
不能。因为javabean是普通的java类,MVC中的servlet要完成从客户端接收数据,采用的servlet是HTTP协议,而普通的javabean不能完成该功能。
2、有人说:JSP是Servlet的高级实现,在MVC中,控制器部分应该用JSP实现,请您回答JSP和servlet的异同。
相似:
(1)两者都是基于Java的技术,所以都继承了Java的所有特性(跨平台、多线程等),都可以使用Java强大的API。
(2)两者工作方式相似:JSP代码先被JSP容器转换为Servlet代码再编译为类。
(3)两者在J2EE体系结构中的工作层次相同,都负责与客户端的连接。
不同:
1编程方式不同。Servlets是一些运行于Web服务器端的Java小程序;而JSP是脚本,编写起来更简单容易。
2应用目的不同。Servlet主要用于从客户端接收请求信息,而JSP主要负责将服务器端信息传送到客户端
3、采用上文描述的MVC设计模式,有什么优点和缺点?
优点:1、提高了代码复用2、减少了开发时间3、更高的可维护性
缺点:1、系统结构变得复杂2、view对模型数据的访问效率低
4、简单回答Servlet的工作过程。
(1)客户机将请求发送到服务器。
(2)服务器上的Web容器实例化Servlet,并为Servlet进程创建线程。Servlet是在出现第一个请求时装入的,在服务器关闭之前不会卸载它。
(3)Web容器将请求信息发送到Servlet。
(4)Servlet创建一个响应,并将其返回到Web容器。Servlet使用客户端请求中的信息及服务器可以访问的其他信息资源如资源文件和数据库等来动态构造响应。
(5)Web容器将响应发回给客户机。
(6)服务器关闭或Servlet空闲时间超过一定限度时,调用destroy方法退出。
6、如果Browser已关闭了cookies,在JSP中我如何打开session来跟踪,举例说明。
使用URL重写即可,如下:
session1.jsp
<%@ page session="true" %>
<%
Integer num = new Integer(100);
session.putValue("num",num);
String url =response.encodeURL("session2.jsp");
%>
session2.jsp
<%@ page session="true" %>
<%
Integer i= (Integer )session.getValue("num");
out.println("Num value in session is "+i.intValue());
%>
7、JSP、Servlet和HTML中的请求转派发分别如何实现。
JSP实现转派发
(1) 在java脚本代码中使用response.sendRedirect("favorite.jsp") 实现转派发
(2) JSP标准动作:
Servlet实现转派发
(1) 代码response.sendRedirect("/abc.html"); 遇到该行代码,会转到abc.html页面。
(2) ServletContext的getRequestDispatcher(String path)方法返回与path相联系的RequestDispatcher对象
RequestDispatcher对象调用forward(ServletRequest request, ServletResponse response) 转向path
HTML实现转派发
(1) 使用href 超链接实现转派发
例如:返回!
(2) 使用form 表单提交实现转派发
(3) 使用meta 例如:
(4) 使用"history.back()"
例如:
(5) 使用"javascript:history.go(-1);"
例如:返回!
8. Servlets 与JSP四种会话跟踪技术
答:会话作用域Servlets JSP 页面描述
page是代表与一个页面相关的对象和属性。一个页面由一个编译好的Java servlet 类(可以带有任何的include 指令,但是没有include 动作)表示。这既包括servlet 又包括被编译成servlet 的JSP 页面
request是代表与Web 客户机发出的一个请求相关的对象和属性。一个请求可能跨越多个页面,涉及多个Web 组件(由于forward 指令和include 动作的关系)
session是代表与用于某个Web 客户机的一个用户体验相关的对象和属性。一个Web 会话可以也经常会跨越多个客户机请求application是代表与整个Web 应用程序相关的对象和属性。这实质上是跨越整个Web 应用程序,包括多个页面、请求和会话的一个全局作用域
9. Java servlet API中forward() 与redirect()的区别?
答:前者仅是容器中控制权的转向,在客户端浏览器地址栏中不会显示出转向后的地址;后者则是完全的跳转,浏览器将会得到跳转的地址,并重新发送请求链接。这样,从浏览器的地址栏中可以看到跳转后的链接地址。所以,前者更加高效,在前者可以满足需要时,尽量使用forward()方法,并且,这样也有助于隐藏实际的链接。在有些情况下,比如,需要跳转到一个其它服务器上的资源,则必须使用sendRedirect()方法。
10.JSP中动态include与静态include的区别?
答:动态include用jsp:include动作实现
静态include用include伪码实现,不会检查所含文件的变化,适用于包含静态页面
<%@ include file="included.htm" %>
1.Jsp工作原理是什么?
答:当我们访问一个JSP页面的时候,这个文件首先会被JSP引擎翻译为一个Java源文件,其实就是一个Servlet,并进行编译,然后像其他Servlet一样,由Servlet引擎来处理。Servlet引擎装载这个类,处理来自客户的请求,并把结果返回给客户
2.JSP有哪些内置对象?作用分别是什么?
答:JSP共有以下9种基本内置组件:
1.request用户端请求,此请求会包含来自GET/POST请求的参数
2.response网页传回用户端的回应
3.pageContext网页的属性是在这里管理
4.session与请求有关的会话期
5.Application servlet正在执行的内容
6.out用来传送回应的输出
7.configservlet的构架部件
8.pageJSP网页本身
9.exception针对错误网页,未捕捉的例外
3.jsp有哪些基本动作?作用分别是什么?
答:JSP共有以下6种基本动作
1.jsp:include:在页面被请求的时候引入一个文件。
2.jsp:useBean:寻找或者实例化一个JavaBean。
3.jsp:setProperty:设置JavaBean的属性。
4.jsp:getProperty:输出某个JavaBean的属性。
5.jsp:forward:把请求转到一个新的页面。
6.jsp:plugin:根据浏览器类型为Java插件生成OBJECT或EMBED标记
4. 说明MVC设计模式中,M、V、C分别代表什么,有什么作用。
答案:M代表Model(模型),该组件是对软件所处理问题逻辑的一种抽象,封装了问题的核心数据,逻辑和功能实现,独立于具体的界面显示以及I/O操作。
V代表View(视图),该组件将表示模型数据,逻辑关系以及状态信息,以某种形式展现给用户。视图组件从模型组件获得显示信息,并且对于相同的显示信息可以通过不同的显示形式或视图展现给用户。
C代表Controller(控制器),该组件主要负责用户与软件之间的交互操作,控制模型状态变化的传播,以确保用户界面与模型状态的统一。5.JavaBean的主要规范是什么?
5.简述使用JDBC技术的主要步骤?
答案:
1.注册和加载驱动器;
2.与数据库建立连接;
3.发送SQL语句;
4.处理结果;
5.关闭连接;
6.如何连接数据库?
答案:
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String url = "jdbc:odbc:数据源名称";
DriverManager.getConnection(url, "sa", "");
7.简述 JavaBean 的书写规范。
答案:
(1)JavaBean 是一个public 的类。
(2)类要实现Serializable 接口
(3)要有一个默认构造函数,以便任何一个容器都可以创建JavaBean 的实例。
(4)存放属性的变量为protected 或private 特性。
(5)设置和获取属性时,使用setXXX()和getXXX()方法。
二、填空题
1.W3C是指___万维网联盟_______。
2.Internet采用的通信协议是___TCP/IP___。
3.当今比较流行的技术研发模式是__C/S__和__B/S__的体系结构来实现的。
4.Web应用中的每一次信息交换都要涉及到__服务器_和_客户端__两个层面。
5.HTML文档的开头和结束元素为_______。
6.表格定义中使用的子标记
7.将一个图像作为一个超级链接,用到了____标记。
8.input表单域表示一个文本框时,它的type属性应该赋值为__text____。
9.URL是Uniform Resource Locator的缩写,中文称之为统一资源定位器。
10.超级链接标记的href属性取值为链接的目标地址。
11.一个完整的JSP页面是由普通的HTML标记、JSP指令标记、JSP动作标记、变量声明与方法声明、程序片(Scriptlet)、表达式()、注释(Comment)7种要素构成。
12.JSP页面的基本构成元素,其中变量和方法声明(Declaration)、表达式(Expression)和Java程序片(Scriptlet)统称为JSP脚本元素。
13.指令标记、JSP动作标记统称为JSP标记。
14.“<%!”和“%>”之间声明的方法在整个页面内有效,称为页面的成员方法。
15.在“<%!”和“%>”之间声明的变量又称为页面成员变量,其作用范围为整个JSP页面。
16.JSP页面的程序片中可以插入HTML 标记。
17.当JSP页面的一个客户线程在执行synchronized 方法时,其他客户必须等待。
18.JSP页面中,输出型注释的内容写在“”之间。
19.JSP声明函数时,如果在前面加上_synchronize 关键字,功能是当前一个用户在执行该方法时,其他用户必须等待,直到该用户完成操作。
20.Page指令的属性Language的默认值是java 。
21、在Error.jsp页面中,要使用Exception对象,必须设置的指令是<%@page isErrorPage = “true”%>.
22、要使java bean在整个应用程序的声明周期中,被该应用程序中的任何JSP文件所使用,则该java bean的Scope属性必须设置为
application 。
23、在Servlet中,主要使用HttpServletResponse类的重定向方法sendRedirect 方法实现重定向,以及使用RequestDispatcher类的转发方法forward 方法实现转发功能。
24.out对象的__ out.flush()_____方法,功能是输出缓冲的内容。
25.JSP的__session___对象用来保存单个用户访问时的一些信息。
26.response对象的_sendRedirect(URL url)___方法可以将当前客户端的请求转到其他页面去。
27.当客户端请求一个JSP页面时,JSP容器会将请求信息包装在__request__对象中。
28.response.setHeader(“Refresh”, “5”)的含义是指页面刷新时间为5秒__。
29.在JSP中为内置对象定义了4种作用范围,即Application Scope 、Session Scope 、Page Scope 和Request Scope 四个作用范围。30.表单的提交方法包括___post_______和____get______方法。
31.表单标记中的__action___属性用于指定处理表单数据程序url的地址。
32、JavaBean是一个java 类,它必须有一个无参的构造方法。
33、JSP的是内部对象可以直接使用,它是由web容器创建的。
34、在JSP中,页面间对象传递的方法:request 、session 、application 、cookie 等方法。
35、在jsp页面中,可以用request对象的 gtParameterValues() 方法来获取其他页面传递参数值的数组。.
36、在JSP中使用JavaBean的标签是
37、使用cookie的基本步骤为:创建cookie对象,传送cookie对象,读取cookie对象,设置cookie对象的有效时间。
38.在Web服务器端使用JavaBean,将原来页面中程序片完成的功能封装到JavaBean中,这样能很好地实现业务逻辑层与视图层的分离。
39.JavaBean中用一组set方法设置Bean的私有属性值,get方法获得Bean的私有属性值。set和get方法名称与属性名称之间必须对应,也就是:如果属性名称为xxx,那么set和get方法的名称必须为setXxx() 和getXxx() 。
40.用户在实际Web应用开发中,编写Bean除了要使用import语句引入Java的标准类,可能还需要自己编写的其他类。用户自己编写的被Bean引用的类称之为Bean的辅助类。
41.创建JavaBean的过程和编写Java类的过程基本相似,可以在任何Java的编程环境下完成编写、编译和发布。
42.布置JavaBean要在Web服务目录的WEB-INF\classes文件夹中建立与Bean的包名对应的子目录,用户要注意目录名称的大小写。
43.使用Bean首先要在JSP页面中使用import 指令将Bean引入。
44.要想在JSP页面中使用Bean,必须首先使用
45.scope属性代表了JavaBean的作用范围,它可以是page、request 、session和application四个作用范围中的一种。
46、getConnection()是DriverManager 类的方法,使用过程中可能会抛出SQLException 异常。
47、Servlet中使用Session对象的步骤为:调用HttpServletRequest.getSession() 得到Session对象,查看Session对象,在会话中保
存数据。
48、控制器主要负责两方面的动作:把用户的请求分发到相应的模型;将模型的改变及时反映到视图上。
49.JDBC的英文全称是Java Data Base Connectivity ,中文意义是Java数据库连接。
50.简单地说,JDBC能够完成下列三件事:与一个数据库建立连接(connection)、向数据库发送SQL语句(statement)、处理数据库返回的结果(resultset)。
51.JDBC主要由两部分组成:一部分是访问数据库的高层接口,即通常所说的JDBC API ;另一部分是由数据库厂商提供的使Java 程序能够与数据库连接通信的驱动程序,即JDBC Database Driver 。
52.目前,JDBC驱动程序可以分为四类:JDBC-ODBC桥、部分用Java来编写的本地API驱动程序、JDBC网络纯Java驱动程序、本地协议纯Java驱动程序。
53.数据库的连接是由JDBC 的DrvierManager类管理的。
54.下面的代码建立Mysql数据库的连接,请填空:
try{ Class.forName(" com.mysql.jdbc.Driver ");
}
创建连接的代码如下:
try{ //和数据库建立连接
conn=
DriverManager.getConnection(
" jdbc:mysql: //localhost:3306/booklib","root","");
……
conn.close();
}
catch(Exception e){ out.println(e.toString()); }
55.查询结果集ResultSet对象是以统一的行列形式组织数据的,执行ResultSet rs = stmt.executeQuery ("select bid,name,author,publish,price from book");语句,得到的结果集rs第一列对用bid ;而每一次rs只能看到一行,要在看到下一行,必须使用next() 方法移动当前行。ResultSet对象使用getXXX() 方法获得当前行字段的值。
56.stmt为Statement对象,执行String sqlStatement = "delete from book where bid='tp1001' ";语句后,删除数据库表的记录需要执行stmt.executeUpdate ( sqlStatement ); 语句。
57.用户可以有多种方式请求Servlet,如浏览器直接调用,页面form中提交调用、超级连接调用、Servlet调用等。58.javax.servlet.Servlet接口定义了三个用于Servlet生命周期的方法,它们是init() 、service() 、destroy() 方法。
59.Servlet中使用Session对象的步骤为:调用HttpServletRequest.getSession() 得到Session对象,查看Session对象,在会话中保存数据。
60.Servlet运行于服务器端,与处于客户端的___Applet____相对应。
61.当Server关闭时,__Servlet___就被销毁。
62.使用Servlet处理表单提交时,两个最重要的方法是_Post__和__Get__。
63.Serlvet接口只定义了一个服务方法就是_Service()_。
64.MVC是三层开发结构,这三个字母按顺序分别代表_Model__、___View_、__Controller_______。
65.模型封装了数据和对数据的操作,是实际进行数据处理计算的地方。视图是应用和用户之间的接口,它负责将应用显现给用户和显示模型的状态。控制器负责视图和模型之间的交互,控制对用户输入的响应、响应方式和流程。
66.控制器主要负责两方面的动作:把用户的请求分发到相应的模型;将模型的改变及时反映到视图上。
67.Sun公司的JSP规范提出了两种用JSP技术建立应用程序的方式,分别称为JSP Model 1(模式1)和JSP Model 2(模式2)。68.在Servlet中,主要使用HttpServletResponse类的重定向方法sendRedirect 方法实现重定向,以及使用RequestDispatcher类的转发方法forward 方法实现转发功能。
1.JSP 是sun公司倡导,由多家公司参与一起建立的一种动态网页技术标准,主要用于开发动态网页。
2.JDBC的主要任务是:与数据库建立连接、发送SQL语句、处理结果。
3.在JSP规范中,可以使用两种格式的注释:一种是输出注释;别一种是隐藏注释。
4.客户端向服务器端提交数据的方式通常有两种:一种是Get提交方式;另一种是Post提交方式。
5.Tomcat服务器的默认端口是8080 。
6.指令元素分为三种:它们分别是:Page、Include 、和Taglib。
7.Servlet的生命周期分三个时期:装载Servlet、创建一个Servlet实例、销毁。
8.在JSP中,当执行了查询操作时,一般将查询结果保存在ResultSet 对象中。
9.在JSP内置对象中,与请求相关的对象是Request 对象。
10.在JSP中,可以使用
12. JSP规范中描述了3种脚本元素:声明、表达式和脚本程序。
13.在JSP中,连接数据库的方式通常有两种:一种是通过JDBC-ODBC桥连接;另一种是通过JDBC驱动程序连接。14. JDBC中为Statement接口提供了3种执行方法,它们是:executeUpdate方法、executeQuery方法、execute方法。15.取表单(