《Web应用开发(JSP)》复习大纲
第1章 Java Web应用概述
1.什么是B/S架构?它有什么优点?
即为浏览器/服务器架构
B/S架构的优点在于:
●客户端基于统一的Web浏览器,减少了投资,解决了系统维护升级的问题;
●系统功能模块化:采用模块化结构,使用户可以根据管理要求和规模对系统功能进行调整;
●灵活性和可扩展性:系统可根据规模的不断扩大,在不影响用户日常工作的前提下,对Web服务器和数据库服务器等设备进行扩展;
●简易型:操作直观、简单,培训方便,对使用人员的计算机操作水平要求不高;
●实施成本低:充分利用现有的办公网络,避免了网络重复建设。
2.简述静态Web页面的工作原理。
用户发送Http请求到WEB服务器,服务器检查在服务器上是
否存在客户端所请求的文件,如果该文件存在,则用HTTP
响应(HTTP Response)的形式把客户端所请求的文件送回
给客户端的浏览器,当客户端浏览器接收到了HTTP 响应
后,它把HTML 文档进行格式化显示,这样用户就可以看
到所请求的HTML 文档的内容了。
3.简述动态Web页面的工作原理。
当客户端浏览器向网络中的Web服务器发出请求时,浏览器会将用户输入的信息一起发送到Web服务器,Web服务器将该网页发送至应用程序服务器,应用程序服务器执行其中的应用程序,应用程序服务器会将处理好的数据插入网页中,此时动态网页变为静态网页,Web服务器将完成的静态网页传给浏览器,浏览器进行解读后将结果显示出来。
4.简述Java Web应用程序的工作过程。
一个Java Web应用的具体执行过程是:
(1)客户端向Web服务器发起一个HTTP请求;
(2)HTTP请求被Web服务器接收,如果请求的是静态页面,则由Web服
务器负责处理。如果请求的是Java Web组件(Servlet或者JSP),则移交给Web 容器;
(3)Web容器根据Servlet的配置文件(web.xml)确定调用的具体Servlet 类,并把请求(request)对象传给它;
(4)Servlet通过request对象知道客户端的使用者是谁,客户的请求信息是什么和其他的一些信息。Servlet处理完请求后把要返回的信息放入响应(response)对象通过Web服务器返回到客户端;
(5)一旦Servlet完成了请求的处理,Web容器就会刷新response,把控制权返回给web服务器。
5.请写出Java Web应用的目录结构。
一个完整的Java Web应用首先必须有一个WEB-INF目录,该目录下必须有一个Java Web应用配置文件web.xml。除此之外,这个WEB-INF 目录下会有一个classes目录用于放置编译后的Java类文件,一个lib 目录用于保存需要的jar包。其次还有根据具体项目新建的文件夹,如images存放图片等。
6.Java Web应用程序有哪几种发布方式?(开放式目录结构和打.war
包的形式)
7.Java Web开发环境的配置,如何开发部署一个web项目?
①安装并配置JDK;安装并配置Tomcat;安装并配置MyEclipse。
②在MyEclipse新建一个web project ,选择Tomcat 6.x作为服务器并配置到你所新建的项目,启动Tomcat 6.x,建立JSP等所需文件进行web项目开发。
第2章 JSP与JavaBean技术
1.什么是JSP?它有哪些优点?
①JSP,Java Server Pages的缩写,是基于Java Servlet以及整个Java体
系的Web开发技术。
②动态页面与静态页面互相分离,程序可以跨平台执行,多样化和功
能强大的开发工具支持,强大的的可伸缩性。
2.简述JSP文件的执行过程。
可以把执行JSP页面的执行分成两个阶段,一个是转译阶段,一个是请求阶段。转译阶段:JSP页面转换成Servlet类。请求阶段:Servlet
类执行,将响应结果发送至客户端。
3.JSP 2.0规范中,元素有哪些类型?
指令元素、脚本元素和动作元素。
4.include指令与include动作的区别?
include指令的作用是在JSP页面中该指令出现的位置静态的插入一个文件,然后JSP引擎再将整个页面一起转换成Servlet;include动作则是在生成的Servlet中调用(或插入处理结果,或插入静态资源本身)。
5.JSP内置对象及其对应类型。
request -->javax.servlet.http.HttpServletRequest
response -->javax.servlet.http.HttpServletResponse
pageContext -->javax.servlet.jsp.PageContext
session -->javax.servlet.http.HttpSession
application -->javax.servlet.ServletContext
out -->javax.servlet.jsp.JspWriter
config -->javax.servlet.ServletConfig
page -->https://www.wendangku.net/doc/7718645852.html,ng.Object
exception -->https://www.wendangku.net/doc/7718645852.html,ng.Throwable
6.JavaBean有哪些特征?
①JavaBean必须是一个公开的类;②JavaBean必须具有一个无参数的构造方法;③JavaBean一般将属性设置成私有的,通过使用getXXX()方法和setXXX()方法来进行属性的取得和设置。
第3章 Servlet技术
1.什么是Servlet?它能完成哪些功能?
a).0..的Java类,是基于Java编程语言的Web服务器端编程
技术。
b)功能:①获取客户端通过HTML的FORM表单递交的数据
和URL后面的参数信息②创建对客户端的响应消息内容③
访问服务器端的文件系统④连接数据库并开发基于数据库
的应用。
2.简述Servlet的执行过程。(能画图说明)
客户端发出请求,WEB服务器传递给servlet引擎,调用对应servlet 对象,如果该对象没有初始化,调用构造函数创建对象,再调用init ()方法初始化对象,如果该对象已经初始化并标记为可用,则该对象在内存中不用初始化,然后调用service()方法处理请求,并且service ()方法返回响应信息。
3.Servlet的生命周期。实例化、初始化、服务、销毁、不可用。
4.实现Servlet有哪些方法?(继承HttpServlet或GenericServlet)
5.HttpServlet的实现方法(能够编写Servlet并进行配置)。
页面doGetForm.jsp的内容如下:
<%@ page language="java" contentType="text/html;charset=gb2312"%>
?DoGetServlet代码如下:
package com.javaweb.ch06;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class DoGetServlet extends HttpServlet
{
public void doGet(HttpServletRequest request,HttpServletResponse res ponse)throws IOException,ServletException{
request.setCharacterEncoding("gb2312");
response.setContentType("text/html;charset=gb2312");
PrintWriter out=response.getWriter();
out.println("获得了以下的参数值:
“);
out.println(“用户名:” +request.getParameter(“username")+ "
"); out.println(“密码:” +request.getParameter(“password")+ "
");
}
}
?在web.xml中进行配置,添加如下代码:
6.ServletContext对象的使用方法。
7.简述请求转发与重定向的不同。
请求转发时一次请求一次响应,重定向是两次请求两次响应。
请求转发是服务器行为,重定向是客户端行为。
8.请求转发与重定向的实现方法。
调用RequestDispatcher.forward方法来实现请求转发;调用HttpServletResponse.sendRedirect方法实现请求重定向
9.常用跟踪客户端状态的方法有哪些?
①建立含有跟踪数据的隐藏表格字段
②重写包含额外参数的URL
③使用持久化的Cookie
④使用Servlet API中的Session(会话)机制
10.HttpSession对象的使用方法。
11.简述Session与Cookie的区别。
Session是一种服务器端技术;Cookie是由服务器发送给客户端的片段信息。Session在服务器端保存信息,Cookie在客户端保存信息。12.简述过滤器的工作过程。
当Web容器接收到请求时,它首先判断是否有过滤器与这个资源相关联。如果有,容器会把请求先交给过滤器进行处理。在过滤器中,可以改变请求的内容,或者重新设置请求头信息,然后再将请求发送给目标资源。当目标资源对请求做出响应后,容器同样会将响应先交给过滤器处理,然后再把它发送到客户端。
13.过滤器的实现方法(能够实现过滤器并进行配置)。
LogFilter.java
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class LogFilter implements Filter {
private FilterConfig config;
public void destroy() {
this.config = null;
}
public void doFilter(ServletRequest request, ServletResponse response,FilterChain chain) throws IOException, ServletException {
HttpServletRequest req = (HttpServletRequest) request;
String username = req.getParameter("username");
if (username == null || !username.equalsIgnoreCase(“admin”))
{
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
out.println("
out.println("禁止访问");
out.println("
out.println("对不起," + username + ",您没有足够的权限!");
out.println("");
out.close();
}
else {
ServletContext context = config.getServletContext();
context.log("-------------开始过滤请求-------------");
context.log("客户端地址:" + req.getRemoteAddr());
context.log("请求URL:" + req.getRequestURI());
chain.doFilter(request, response);
context.log("-------------过滤请求结束-------------");
}
}
public void init(FilterConfig config) throws ServletException { this.config = config;
}
}
配置Servlet过滤器
14.监听器的使用方法(能够实现监听器并进行配置)。
【例】实现一个ServletContext监听器,在日志文件中记录当前Web 应用程序的启动和关闭信息。
package com.javaweb.ch06;
import javax.servlet.*;
public class MyFirstListener implements ServletContextListener { public void contextDestroyed(ServletContextEvent sce) {
ServletContext sc = sce.getServletContext();
sc.log("[INFO]Web应用程序正在关闭!");
}
public void contextInitialized(ServletContextEvent sce) {
ServletContext sc = sce.getServletContext();
sc.log("[INFO]Web应用程序正在启动!");
}
}
配置监听器
第4章 MVC模式及其实现
1.什么是MVC模式?M、V、C各指什么?说明Servlet、JSP、JavaBean 通常在MVC中所扮演的角色,并说明开发中使用MVC模式的好处。
a)MVC是Model-View-Controller的简称,即模型-视图-控制
器,是一种软件设计模式。
b)Servlet通常作为控制器、JSP通常作为视图、JavaBean通常
作为模型。
c)①适合可扩展性、可维护性的需要②一个模型可以呈现给多
个视图,大大提高代码重用性。③控制器提高了应用程序的
灵活性和可配置性,为构造应用程序提供强有力的手段。④
通过将表示与模型分离,使开发者可以明确分工。
2.JSP模型1与JSP模型2有哪些不同?
在JSP Model 1中,JSP页面负责处理用户请求,而在JSP Model 2中引入了MVC设计模式,用户的所有请求提交给Controller。
第5章 Struts
1.什么是Struts?
Struts 是Apache 软件基金会资助的一个为开发基于MVC模式的Web 应用而设计的一个开源框架。
2.简述Struts体系结构。(画图说明)
?从模型角度
?模型通常由Java Bean或EJB组件实现,负责处理业务逻辑。
?从视图角度
?Struts框架的视图部分包括一组JSP文件,这些文件主要由JSP标签或TagLib构成,它简化了JSP页面的编码工作,
可以实现和模型部分中的ActionForm 映射,完成对用户数
据的封装,还提供了国际化、表单验证、模板定制等功能。?从控制器角度
?在Struts框架中控制器主要包括Action Servlet类和Action 类,Action Servlet是Struts的核心部件,它接受用户的
Http请求,根据配置信息将请求转发给适当的Action对象,
Action类负责调用模型的方法,并帮助控制应用程序的流
程。
?Struts配置文件
?web.xml是Java Servlet规范规定的Web应用配置文件,Servlet/JSP容器使用该文件载入和配置应用。它指定了
ActionServlet类、访问映射和其他Struts相关的选项,并
且包含标签库的完整路径信息。
?struts-config.xml是Struts框架的配置文件,用来创建和配置各种Struts组件。Struts框架启动时,该文件中的配置
信息读入到内存,存放到config包中相关JavaBean类的实
例中。
3.采用Struts实现一个基本的登录系统,给出主要组件的实现,并结
合它说明Struts的工作流程。
LoginForm.java
package admin;
import org.apache.struts.action.*;
public class LoginForm extends ActionForm {
private String username;
private String password;
public String getUsername() {
return username;
}
public void setUsername(String username) {
https://www.wendangku.net/doc/7718645852.html,ername = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
LoginAction.java
package admin;
import javax.servlet.http. *;
import org.apache.struts.action.*;
public class LoginAction extends Action {
public ActionForward execute(ActionMapping mapping, ActionForm fo rm, HttpServletRequest request, HttpServletResponse response)
throws Exception {
LoginForm lf = (LoginForm)form;
if(lf.getUsername().equals("element")&&lf.getPassword
().equals("123")){
return mapping.findForward(“suc");
}else
return mapping.findForward(“fal");
}
}
配置文件
Login.jsp
<%@ page contentType="text/html;charset=gb2312"%>
failure.jsp
<%@ page contentType="text/html;charset=gb2312"%>
success.jsp
<%@ page contentType="text/html;charset=gb2312"%>
工作过程①:用户在login.jsp的HTTP请求以login.do作为请求
服务名,被传给控制器ActionSevlet
。②ActionSevlet根据struts-config.xml中的配置信息,将用户请求封装在LoginForm里。③将LoginForm传至LoginAction。④LoginAction完成用户名和密码的判断。⑤ActionServlet得到LoginAction的执行结果,并根据struts-config.xml中的配置,根据情况将结果转发给success.jsp或failure.jsp。
4.Struts应用有哪两个配置文件?
web.xml、struts-config.xml
5.Struts标签库有哪几部分组成?
Bean标签、HTML标签、Logic标签、Template标签、Nested标签6.对于常用的标签,能够写出其正确的含义。
id=变量名
name=复制对象
property=相当于普通HTML标签的name属性
value=赋值
scope=范围(page,request,session,application)
LOGIC:ITERATE
id=同上
name=包含需要对象的表单form
property=表单中对象对性的属性,遍历时需要
type=输出类型
针对以下题目请选择正确的答案(每道题目有一个或多哥正确的答案)。每一道题目,所有答案都选对,则该题加分,所选答案错误或不能选出所有正确答案,则该题不得分。 1)在JSP中,要定义一个方法,需要用到以下()元素。(选择一项) a) <%= %> b) <% %> c) <%! %> d) <%@ %> 2)JSP页面经过编译之后,将创建一个()。(选择一项) a) applet b) servlet c) application d) exe文件 3)当JSP页面执行自定义标签,遇到结束标签时将调用()方法执行处理。(选择一项) a) doStartTag() b) doEndTag() c) doInitBody() d) doAfterBody() 4) 在J2EE中,test.jsp文件中有如下一行代码:(选择一项)
J S P期末考试复习题文件编码(008-TTIG-UTITD-GKBTT-PUUTI-WYTUI-8256)
一、填空(共10分,每空1分) 1. JSP 是_____ Sun Microsystems ___ 公司倡导,由多家公司参与一起建立的一种动态网页技术标准,主要用于开发动态网页。 2. 在Tomcat服务器中部署Web应用程序时,可以直接将Web程序归档文件WAR存放到t o m c a t服务的_______________w e b a p p s________目录中。 3. 在Servlet中用来接收客户表单数据的两个常用方法为____ get _________、 _____post _________。 4. 在一个应用程序中不同的页面共享数据时,最好的JSP内置对象为 __________application /session _______。 5. 假设有一个JavaScript函数为 show() ,如果要求在页面加载时就执行,最好使用
标记的_____event/onload _________什么事件。 6. 在删除数据时要求用户确认是否真的删除数据,如果使用JavaScript实现,应 用使用______onclick/confirm __________对话框。 7. JDBC中_________DriverManager/Connection _接口用于连接数据库。 8. Resulset接口的_________next()_方法可以使结果集指针指向下行数据。 9. 如果要获取请求客户端的IP地址,应使用______象。 二、单选选择 (60分,每题分) 1.在JSP中如果要导入 .* 包,应该使用_________A______指令。 A. page B. taglib C. include D. forward 2.如果当前JSP页面出现异常时需要转到一个异常页,需要设置page 指令的 __D______属性。第一章 一.选择题 1.早期的动态网站开发技术主要使用的是()技术。该技术的基本原理是将浏览器提交至Web服务器的数据通过环境变量传递给其他外部程序,经外部程序处理后,再把处理结果传送给Web服务器,最后由Web服务器把处理结果返回浏览器。 A.JSP B.ASP C.PHP D.CGI 2.JSP页面的代码由两个部分组成,它们是()和()。 A.javascript代码 B.vbscript代码 C.HTML代码 D.JSP代码 3.JSP在服务器中进行编译时,将首先被转译成() A.JA V A语言 B.HTML代码 C.servlet D.以上都是 4.在一个JSP页面代码中一定没有的部分是() A.javascript代码 B.JSP指令 C.JSP动作 D.HTML代码 二.问答题 1.简述JSP的基本运行原理。 2.列举出JSP具有的一些特点。
参考答案 一.选择题 1. D 2. C D 3. C 4. A 二.问答题 1.答:首先由浏览器向Web服务器提出访问JSP页面的请求(Request),然后由JSP容器负责将JSP转换成Servlet,产生的Servlet经过编译后生成类文件,然后再把类文件加载到内存进行执行。最后由Web服务器将执行结果响应(Response)给客户端浏览器。 2.答:1. 一次编写,随处运行 2. 可重用组件技术 3. 标记化页面开发 4. 对大型复杂Web应用支持良好 第二章习题 三.选择题 1.下列不是JSP开发工具的是() A.JBuilder B.IBM WebSphere C.MyEclipse D.Firework 2.要建构JSP的开发环境,除了需要安装以上的JSP开发工具外,还必须安装()和() A.JDK B.Dreamweaver MX C.Flash MX D.Tomcat 3.JSP隶属Java家族,下列不属于JA V A家族的是() A.servlet B.javabean C.java D.javascript 4.web应用程序体系结构最多可分为三层,不属于这三层的是() A.表示层 B.业务层 C.数据访问层 D.网络链接层
选择题(没有注明多选,则为单选) 1.下面哪个不是Form的元素? ( D) A.Input B: textarea C: select D: table 2. HTML页面中,下面哪个表示空格( B ) A.& B. C.© D.< 3.
一、填写 1、 JSP是指(Java Server Pages)是由(Sun Microsystems)公司倡导、许多公司参与一起建立的一种(动态)网页技术标准 2、在传统的网页HTML文件(*.htm,*.html)中加入(Java程序片段(Scriptlet))和(JSP标记(tag)),就构成了JSP网页 3、 JSP网页文件的扩展名是(jsp)。 4、所有JSP程序操作都在(服务器端)执行。 5、三种常用的动态网页技术是(ASP)、(PHP)、(JSP) 6、 Tomcat目录bin(包含启动/关闭脚本)、conf(包含各种配置文件,包括Tomcat的主要配置文件server.xml和为不同的Tomcat配置的Web应用设置缺省值的文件web.xml)、lib (包含Tomcat中使用的jar文件。在Unix平台中,此目录下的任何文件都被加到Tomcat 的classpath中)。 7、Tomcat脚本Startup(启动Tomcat)、 Shutdown(关闭Tomcat)。 8、Tomcat的主要配置文档是(server.xml)。可以通过配置server.xml设置(服务器的端口及虚拟路径)。 9、 Java 中的(异常(Exception))是当程序中出现不同寻常的情况时生成的一个对象。 10、对待异常的方式有两种:(在方法内部捕获并处理该异常);(在本方法内不处理该异常,而是将异常抛给方法的调用者,由调用者决定如何处理异常)。 11、JSP 中不能应用(JavaScript)函数。 12、解决汉字的问题,最简单的方法就是在文件头加入(<%@ page contentType="text/html;charset=GBK" %>)。 13、JSP编译指令用于指定所使用的(脚本语言)、(Servlet实现的接口)、(Servlet 扩展的类)、(Servlet)。 14、JSP编译指令的一般语法形式为(<%@指令名=“值” %>)。 15、page指令的语法为(<%@page pageDirectiveAttributeList %>)。 16、为了解释page指令的import属性的使用,用(time.jsp程序)来说明。 17、Include指令的语法格式(<%@include file=“relativeURL” %>),其中(relativeURL)意思为相对地址。 18、taglib指令语法格式(<%@taglib uri="tagLibraryURI" prefix="tagPrefix" %>)。 19、URI(Uniform Resource Identifier)是(统一资源标记符)的缩写,可以是绝对路径或者相对路径。 20、定制标识的前缀是(prefix)。 21、(id)和(scope)属性是每一个JSP动作都具有的属性。其中(id)表示一个动作的名称,而(scope)则表示一个动作的作用域。
一、判断题 HTML称为超文本元素语言,它是Hypertext Marked Language的缩写。(对) 一个HTML文档必须有
和