jsp复习大纲内容整理
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
网络编程技术复习大纲
说明:
本复习大纲基本涵盖期末考试和补考的考试范围。
有疑问尽早找老师答疑(教4-418),也可通过电子邮件答疑。
编程基础复习点:
1、简单、常用的html标记。
2、熟悉JDK,Tomcat的安装及JSP程序调试过程中常见问题。
3、了解Java基础知识。
尤其注意集合类的应用中两个集合类优点、适用范
包的概念与用途:
概念:包是java提供的一种区别于类的名字空间的机制,是类的组织方式,是一组相关类和接口的集合,它提供了访问权限与命名的管理机制
主要有一下三个用途:
①将功能相近的类放在同一个包里,可以方便查找与使用;
②由于不同的包中可以存在同名类,所以包在一定程度上可以避免命名冲
突;
③在Java中,某些访问权限是以包围单位的。
引入包;import来应用,包名与类名用“.”分隔,*表示包中的所有类。
异常处理语句:
Try....catch.....:try用来监视这段代码运行过程中是否发生异常,若发生则产生异常对象并抛出,catch用于捕获异常并且抛出。
Finally:不管捕获的异常出不出现,都会执行finally代码块;
Throw:程序发生错误自行抛出异常时,可以使用throw关键字,并生成指定的异常对象。
Throws:如果一个方法可能会出现异常但是没有能力处理这个异常,可以再方法声明处用throws语句来抛出异常。
一个方法可能出现多种异常,throws 子语句允许声明抛出多个异常。
4、构成JSP的7要素( HTML标记、JSP指令标记、JSP动作标记、声明与标识、脚本程序、表达式、注释(<!--.....-->与<%--....--%>)),其中要更进一步熟悉:
(1)JSP指令标识有哪些、作用及常用标识的用法?
(2)JSP脚本标识有哪些、作用及用法?
(3)JSP动作标记有哪些、作用及常用标记的用法?
(4)<jsp:include>与<%@ include>的用法及区别
解答:
(1)JSP指令标识有哪些、作用及常用标识的用法?
JSP指令标记有:page指令;include指令;taglib指令
Page指令:只有import属性可以使用多次,其他属性只能出现一次
作用:用于定义在整个JSP页面范围中有效地属性;
常用标志:contentType,language ,errorPage, session, extends......
Include指令:<%@ include file=“”%>file属性不支持任何表达式,也不允许通过以下表达:
<%@ include file=”welcome.jsp?Name=admin”%>
作用:在当前使用该指令的位置嵌入其他文件,如果被包含的文件是可执行的代码,则显示代码运行后的结果。
引用外部文件,可以减少代码的冗余。
绝对路径与相对路径:
属性值以“/”开头指的是绝对路径,将在当前应用的根目录下查找文件;
如果以文件名称或以文件夹名开头,指的是相对路径,将在当前页面的目录下查找文件。
(2)JSP脚本标识有哪些、作用及用法?
脚本标志:jsp表达式,声明标志,脚本程序
<%=jsp表达式%>
作用:向页面输出内容,生成动态的连接地址,动态指定表单处理页面,,围通过循环语句生成的元素命名。
<%! 声明变量或者方法的代码%>,
声明变量或方法
<% Java程序片段%>
在脚本程序中可定义变量,调用方法和进行而各种表达式运算
(3)JSP动作标记有哪些、作用及常用标记的用法?
<jsp:include>用于向当前页面包含其他文件,这个文件可以是动态也可以是静态。
<jsp;include page=”...” flush=”true|false”> 与指令标识<%@ include file=””%>区别:
①属性:指令标识通过file属性来指定被包含的页面,不支持任何表达式;动作指令通过page属性来指定被包含的页面,支持JSP表达式。
②处理方式:使用include指令来被包含的文件,他的内容会原封不动的插入包含页面中使用该指令的位置,然后JSP编译器会对这个合成的文件进行翻译,所以一个jsp页面中使用include指令来包含另外一个jsp页面最终编译的文件只有一个。
使用<jsp:include>动作标识包含文件时,当该标识被执行时,程序会请求转发到(不知请求重定向)被包含的页面,并将运行结果输出到浏览器中,然后包含页面返回继续执行后面的代码。
因为服务器执行的是两个文件,所以JSP编译器会分别对这两个文件进行编译。
③包含方式:
Include指令这种包含方式是静态包含,动态指令是动态包含
④对包含文件的约定
使用include指令对包含文件有约定,因为两个文件会合成一个文件所以page指令中属性值要相同
<jsp:forward>将请求转发到另一个JSP,HTML或相关资源文件中。
请求转发操作不是请求重定向。
区别:请求转发时,储存在request对象中的信息会被保留并被带到目标页面中;而请求重定向时重新生成一个request请求,然后将该请求重定向到指定的URL,所以事先储存的request对象中的信息就不存在了。
<jsp:useBean>动作标记可以再JSP页面中创建一个Bean实例,并且通过属性的设置可以将实例储存到JSP中的指定范围内。
如果指定范围内已经存在了指定的Bean实例,那么将使用这个实例,而不会再创建。
<jsp:param>子目标用来向动态的目标文件传递参数
<jsp:setProperty>
<jsp:getProperty>用于从指定的Bean中读取指定的属性值
5、JavaBean的种类、规范、属性,掌握JavaBean的写法及<jsp:useBean>的用法。
(例5-7)
种类:可视化JavaBean,不可视化JavaBean
规范:
(1)实现java.io.Serializabale接口;(在jsp中不必实现JavaBean也可运行)
(2)是一个公共类;
(3)类中必须存在一个无参数构造函数;
(4)提供对应的setXxx()和getXxx()方法来存取类的属性,方法中的“Xxx”为属性名称必须大写首字母。
Public void SetXxx (String xxx){this.xxx=xxx;}
属性:
(1)简单属性;(2)索引属性;(3)绑定属性;(4)约束属性。
6、JSP内置对象有哪些及作用?常用的四个request、response、session、
application的用法及区别。
jsp通过request对象获取客户浏览器的请求,通过response对客户浏览器进行响应。
而session一直保存着会话期间所需要传递的数据信息
7.Servlet的处理过程、Servlet与JSP的区别、Servlet代码结构、会写Servlet程序及会写web.xml配置文件。
Servlet的处理过程:P122
与Jsp区别:①编程方式;②Servlet必须编译后才能执行;运行速度不同 Web.xml 配置文件:
<?Xml version=”1.0” encoding”UTF-8”?>
<web-app>
<servlet> <servlet-name>MyServlet</servlet-name>
<servlet-class>com.MyServlet<servlet-class></servlet>
<sevlet-mapping> <servlet-name>Myservlet</servlet-name>
<url-pattern>/textServlet</url-pattern></servlet-mapping></servlet>
8、其它概念:JSP处理过程;MVC模式;请求重定向;请求转发;JDBC通常
需要完成的操作;JSP连接数据库的步骤。
Jsp处理过程:p4.
MVC模式:P19
JDBC通常所需完成操作:
1.同数据库建立连接。
2.向数据库发送SQL语句。
3处理从数据库返回的结果
JSP连接数据库的步骤:1.加载JDBC驱动;2.创建数据库连接;3.执行SQL 语句;4.获得查询结果;5.关闭连接
编程题复习方法:
1、认真完成实验
2、理解并会写书上的下述例题:
例2-9,例2-10,例4-1(P82),例4-9(P90),例5-7(P104),例6-1P123,例8-2(P182)
例2-9
<%@ page contentType="text/html;charset=gb2312" import="java.util.*"%>
<%
List<String> list=new ArrayList<String>();//申请Arraylist对象
for(int i=0;i<3;i++){
list.add(new String("福娃"+i));}//添加元素
list.add(1,"后添加的福娃");//在位置1处添加元素,其他元素后退一个位置
Iterator<String> it=list.iterator();
while (it.hasNext()){
out.println(it.next()+",");}
%>
结果:
福娃0, 后添加的福娃, 福娃1, 福娃2,
例2-10
<%@ page contentType="text/html;charset=gb2312" import="java.util.*"%>
<%
Vector v=new Vector();
for(int i=0;i<3;i++){
v.add(new String("福娃"+i));
}
v.remove(1);
for(int i=0;i<v.size();i++)
{
out.println("元素"+i+":"+v.elementAt(i)+"|");
}//i可换为v.indexOf(v.elemrntAt(i))
%>
结果:
元素0:福娃0| 元素1:福娃2|。