资源描述
《JSP动态网站开发》考义
———————————————————————————————— 作者:
———————————————————————————————— 日期:
10
个人收集整理 勿做商业用途
《JSP动态网站开发》考义
一、 填空题、简答题
1. JSP的优势:
1) 将内容的生成和显示进行分离
2) 生成可重用的组建
3) 采用标识简化页面
4) JSP能提供所有的Servlet功能
5) 健壮的储存管理与安全性
6) 一次编写、随处运行
7) JSP的平台适应性更广
8) Java中连接数据库的技术是JDBC(Java Database Connectivity)
9) 简单易学
2. 流行的动态网页技术主要有以下几种:
ASP
ASP。NET
PHP
JSP
3. 各种Web技术性能比较
参数
JSP
ASP
PHP
运行速度
快
较快
较快
运行耗损
较小
较大
较大
难易程度
容易掌握
简单
简单
运行平台
绝大部分平台均可
Windows平台
Windows/UNIX平台
扩展性
好
较好
较差
安全性
好
较差
好
函数支持
多
较少
多
数据库支持
多
多
多
厂商支持
多
较少
较多
对XML的支持
支持
不支持
支持
对组件的支持
支持
支持
不支持
对分布式处理的支持
支持
支持
不支持
应用程序
较广
较广
较广
4. JSP的技术架构
1) 纯粹JSP技术
2) JSP+JavaBean
3) JSP+JavaBean+Servlet
4) Struts框架
5) J2EE实现
5. MVC应用程序的三个核心部件:视图(view)、模型(model)、控制(controller)
1) 视图:代表用户交互界面.仅限于视图上数据的采集和处理以及用户的请求,不包括在视图上的业务流程处理。
2) 模型:业务流程或者状态的处理以及业务规则的制定。业务流程的处理对于其他层来说就是黑箱操作,模型接收视图请求的数据并返回最终的处理结果。业务模型是MVC最主要的核心。
3) 控制:从客户接受请求,将模型与视图匹配在一起共同完成该用户的请求。控制层不作任何的数据处理,它就是一个分发器.
6. JSP页面的构成:注释、指令、脚本元素、动作、模块数据(HTML页面元素和静态文本)。
7. 脚本元素:嵌入JSP页面的Java代码.包括三部分:声明、表达式、脚本小程序.
8. 声明的一般语法:〈%! Declaration; [declaration]+。.。%〉
9. 表达式的一般语法:<%=Java Expression%>
10. 脚本小程序的一般语法:<%代码内容(Java Code)%〉
11. 指令元素(始终被包括在〈%@ %〉)标记中
1) page指令
① import:用于指定在JSP页面中可以使用的Java类。〈%@ page import =”java类列表(java.util。Date)"%>
② session:用于指定一个页面是否内建session对象。默认值为true,表明内建session对象;如果设置属性值为false,则表示不会内建session对象。〈%@ page session=”true | false”%>
③ contentType:用于指定JSP页面输出到客户端时所用的MIME类型和字符集。如果输出简体中文,需要设置为gb2312。<%@ page contentType=”内容类型信息(gb2312)"%>
④ pageEncoding:用于指定JSP页面所用的字符集编码。设置了该属性,则JSP页面使用该属性设置的字符集代码,如果没有,则使用contentType属性指定的字符集。<%@ page contentType="字符编码(GBK)”%>
2) include指令:用于在JSP页面中包含一个静态文件,内容可以是JSP页面、HTML页面、文本文件或一段Java代码。〈%@ include file=”relativeURL"%〉
12. <jsp:include>和〈%@include%>的区别
1) 〈jsp:include〉:可以是动态改变的,只有在执行的时候才确定。
2) 〈%@include%>:包含的内容是固定不变的,一经编译就不能改变了.
13. 〈jsp:forward〉标签:用于请求转发到另一个JSP、Servlet或者静态资源文件.〈jsp:forward page={"relativeURL”| "〈%= expression %〉”} /〉
14. gerParameter(String):返回给定参数的值,如果参数不存在则返回空值
15. Meta标签的两大部分:HTTP标题信息(http-equiv)和页面描述信息(name)。
1) http-equiv 类似于HTTP的头部协议,用于相应给浏览器一些有用的信息,以帮助正确地显示网页内容。
2) Name 用于描述网页,便于搜索引擎分类和查找。name的值指定网页所提供的信息类型.有的值是预定义的,例如Description(说明)、Keyword(关键字)、Refresh(刷新),还可以是其他任意值,例如Creationdate(创建日期)。
16. 使用Response重定向
使用Response对象的sendRedirect()方法将客户端请求重定向到其他web地址。 〈% Response.sendRedirect(”login。jsp")%〉
17. setAttribute(String,Object) 将value对象以name名称绑定到会话,变成其name的属性。如果name属性已经存在,其对应的对象被转换为value对象。
18. getAttribute(String) 从会话session对象中取得name属性,如果name属性不存在,则返回null
19. Session的生命周期
JSP容器会为每个线程分配不同的session对象。当用户再次访问服务器时,或者从该服务器连接到其他服务器再回到该服务器时,JSP容器不再分配给用户一个新的session对象,而是使用完全相同的一个ID号,直到用户关闭浏览器,则服务器上该用户的session才被撤销.当用户重新打开浏览器并再次连接到该服务器时,服务器将为该用户再创建一个新的session对象以及session ID。
20. Application对象保存了一个web应用程序中一些公用的数据,与Session相比,Application对象所保存的数据可以被所有用户共享,而Session对象则是每个用户专用。
21. 根据访问文件的方式可以将文件分为3类:顺序文件(文本文件)、随机文件和二进制文件。
22. JDBC API提供3项核心服务:连接服务、SQL服务、结果处理.
23. JDBC可以完成3件事:建立与连接数据库、发送SQL语句、获得数据库的处理结果。
24. PreparedStatement与其他SQL语句容器的区别
1) Statement 用于执行不带参数的简单的SQL语句;
2) PreparedStatement 用于执行带或者不带IN参数的预编译SQL语句(继承于Statement).
3) CallableStatement 用于执行对数据库储存过程的调用(继承于PreparedStatement)。
25. JavaBean的优点
1) 紧凑而方便的创建和使用
2) 完全的可移植性
3) 继承Java的强大功能
4) 应用程序构造器支持
5) 分布式计算支持
26. JavaBean的规范
1) JavaBean必须有一个无参数的构造方法。JavaBean类中如果存在自定义的构造方法,那么必须定义一个无参数的构造方法,该构造方法必须方法,该构造方法必须是public访问权限.
2) JavaBean属性必须通过使用get、set和其他按标准命名规范来命名的方法进行操作。若成员变量名是xxx,那么使用getXxx()来获取属性,使用setXxx()来设置属性值.对于boolean类型的属性,可以用is来代替getXxx()方法。
27. Servlet生命周期的三个阶段
1) 初始化阶段(加载、实例化、初始化):init()方法是Servlet生命周期的起点。在init()方法中,Servlet创建和初始化它在处理请求时需要用到的资源。
2) 响应客户请求阶段(处理客户请求):服务器创建特定于请求的一个“请求”和“响应”对象。Service()方法从“请求”对象会的请求信息,处理请求并用“响应”对象的方法将响应返回客户机。能够重复执行.
3) 终止阶段(卸载):destroy()方法标志Servlet生命周期的结束。当服务器不再需要Servlet或重新装入Servlet的实例时,服务器就会调用Servlet的destroy()方法,将前面占用的资源释放。
28. Scope:指定JavaBean组件的作用域.默认值为Page作用域,表明此Bean只能用于当前页;Request属性值表明此Bean只能应用于当前的用户请求中;Session属性值表明此Bean能应用到整个session的生命周期;Application的属性值表明此Bean能应用于当前整个web应用的范围内。
29. JavaBean组件的作用域的大小比较:Page〈Request〈Session〈Application
1) Page:运用于当前JSP页面,浏览器离开这儿页面的时候JavaBean就会被销毁。
2) Request:JavaBean储存在当前ServletRequest中,只有在请求完全处理完毕后才会被释放,Request常用于共享同一个请求的JSP页面中。
3) Session:表示JavaBean对象将被储存在HTTP会话中,即存在于用户的整个会话过程中。只有当session过期后才能被释放,常用于共享同一session的JSP页面中.
4) Application:对JavaBean所有的用户和所有页面都起作用,只需创建一次就会存在与web应用的整个生命周期中。(站点访问计数器)
30. <jsp:useBean>标签:<jsp:useBean id=”name" class="package.Class" /〉
例:<jsp:useBean id="student" scope="request”class=”bean。example。student” />
31. 设置JavaBean变量值:<jsp:setProperty name="bean name" property=”property name" value="str” /〉
或
<jsp:setProperty name=”bean name" property=”property name” value=<%=expression%〉 /〉
二、 画图题
1. MVC三层架构
主要思想是使用一个或多个Servelt作为控制器,HTTP请求转交给Servlet处理后重新定向到JSP页面。在Servlet作为控制器时,每个Servlet只实现很少一部分功能,多个Servlt控制器可以结合完成复杂任务,副作用是导致响应时间过长.JavaBean的角色是充当JSP和Servlet通信的工具。Servlet处理完后设置JavaBean的属性,JSP读取此属性然后进行显示。
2. JSP运行机制
对JSP页面的客户请求到来时Tomcat服务器在获取了客户端发送的请求后会检验JSP页面有无语法错误,并依据请求调用相关的JSP处理页面.
如果该页是第一次被执行,需要把JSP页面中的代码转换为Servlet代码形式,这是转换阶段。转换完毕后,需要将转换的java文件编译成class文件,使用JV,M解释执行该文件,并将执行后的结果返回客户端,这是执行阶段。
如果不是第一次执行,直接调用该页面的class文件执行.
3. JDBC核心类之间的关系
Class。forName()方法加载数据库驱动类;然后调用驱动管理器类的getConnection()方法获取Connection对象,并传入构造Connection对象所必需的参数;Connection对象调用createStatement()方法创建一个代表SQL语句的Statement对象;调用Statement对象的executeQuery()方法执行SQL查询语句,从而获得代表查询结果的ResultSet对象。
4. Servlet生命周期示意图
三、 程序设计
1. 配置Servlet
<servlet〉
〈servlet—name>Hello〈/servlet-name〉
〈servlet-class〉test.Hello</servlet—class>
</servlet〉
〈servlet—mapping〉
〈servlet—name>Hello〈/servlet-name>
<url-pattern>/Hello〈/url—pattern〉
〈/servlet—mapping>
2. 数据库的增、删、改、查
3. 连接数据库
〈%@ page import =”java.sql。*” %>
<%!
static
{
try
{
Class。forName("com.mysql。jdbc。Driver”);
}
catch (ClassNotFoundException e);
{
e。printStackTrace();
}
}
private Connection connection ;
private String url = "jdec:mysql://localhost;3306/test";
public Connection getConnection(String url, String name, String pw) throws
{
connection = DriverManager。getConncetion(url,name,pw)
return connection;
}
public Connection getConnection() throws SQLException
{
Return getConnection(url,”root","123”);
}
%>
4. JavaBean
实例:
Package bean。example;
Public class User
{
private String name;
private String pw;
public void setName(String name)
{
This.name=name;
}
public void setPw(String pw)
{
This。pw=pw;
}
public void getName()
{
Return name;
}
public void getPw()
{
Return pw;
}
}
展开阅读全文