交大JSP知识点总结.docx
《交大JSP知识点总结.docx》由会员分享,可在线阅读,更多相关《交大JSP知识点总结.docx(20页珍藏版)》请在冰豆网上搜索。
![交大JSP知识点总结.docx](https://file1.bdocx.com/fileroot1/2023-2/5/05b40b07-5207-4efd-bc49-4fc5a2bf650f/05b40b07-5207-4efd-bc49-4fc5a2bf650f1.gif)
交大JSP知识点总结
JSP各章知识点总结
(更正版)
06级考试题型:
一、选择题(2分×15=30分)
二、填空题(1分×15=15分)
三、读程序写结果(3分×5=15分)
JavaBean(2分×10=20分)
四、程序填空
数据库(2分×10=20分)
第一章
JSP简介
1.8080是Tomcat服务器默认占用的端口。
2.如果Tomcat服务器的安装目录是:
D\apache—tomcat—5.5.20\,那么Tomcat的web服务目录的根目录是:
D\apache—tomcat—5.5.20\webapps\Root
3.用户访问JSP页面,在浏览器键入Tomcat的IP地址、端口号、JSP页面的名字
例如:
IP:
192.168.1.200
名字:
example1
则用户在浏览器中键入的内容为:
http:
//192.168.1.200:
8080/example1
4.Tomcat服务器安装目录的webapps目录下的任何一个子目录都可以作为一个web服务目录
5.JSP与JavaServlet的关系
JSP技术屏蔽了Servlet对象的创建过程,使得Web程序设计者只需关心JSP页面本身的结构和设计好的各种标记,比如使用HTML标记设计页面的视图,使用Javabean标记有效地分离页面视图和数据库。
第二章
JSP语法
1.JSP页面:
在传统的HTML页面文件中加入Java程序片和JSP标记就构成了一个JSP页面
普通的HTML标记符
JSP标记,如指令标记、动作标记
2.JSP页面的组成变量和方法的声明
Java程序片
Java表达式
3.在“<%!
”和“%>”标记符号之间声明变量和方法
4.成员变量:
在“<%!
”和“%>”标记符之间声明变量,这些变量称为JSP页面的成员变量
(只被初始化一次,被所有共享)
局部变量:
在“<%!
”和“%>”之间插入Java程序片,在程序片中声明的变量称为JSP页面的局部变量(每个用户所对应的局部变量不同)
5.在“<%=”和“%>”插入一个表达式(不可插入语句,“<%=”是一个完整的符号。
“<%”和“=”之间不要有空格),这个表达式必须能求值,表达式的值是由服务器负责计算的
6.JSP中的注释:
(1)HTML注释:
在标记符“
——”和“——>”之间加入注释内容
JSP引擎把HTML注释交给客户,因此,通过浏览器查看JSP页面源文件时可以看到HTML注释
7.JSP注释:
在标记符号“<%——”和“——%>”之间加入注释内容。
JSP引擎忽略JSP注释
8.Page指令标记:
(1)Page在指令用来定义整个JSP页面的一些属性和这些属性值,属性值用单引号或双引号括起来。
(2)Page指令的作用对整个JSP页面都有效,与其书写位置无关,习惯把Page指令写在JSP页面最前面,可以多次出现。
(3)Page指令标记可以指定如下属性的值:
ContentType、import、language、session、buffer、autoFlush、isTreadsafe、pageEncoding
1)ContentType属性
如果希望客户的浏览器启动HTML解析器来解释执行所接收的信息,设置ContentType属性的值<%@PageContentType=“text/html;charset=GB2312”%>
如果希望客户的浏览器启用本地的MS—Word应用程序来解释执行收到的信息,设置ContentType属性的值<%@PageContentType=“application/msword”%>
如果不使用Page指令为ContentType指定一个值,则ContentType的属性默认值是:
“text/html;charset=ISO—8859—1”
JSP页面使用page指令只能为ContentType指定一个值,不允许两次使用page指令给ContentType指定不同的属性值。
2)language属性:
该属性用来定义JSP页面使用的脚本语言,该属性的值只能取“java”(默认值)
<%@Pagelanguage=“java”%>
3)import属性:
该属性的作用是为JSP页面引入运行环境提供的包中的类,可以为该属性指定多个值
4)session属性:
该属性用于设置是否需要使用内置的session对象,取值为true(默认值)或false
5)buffer属性
内置输出流对象out负责将服务区的某些信息或运行结果发送到客户端显示。
Buffer属性用来指定设置的缓冲区的大小或不使用缓冲区。
Buffer的默认值是8KB,可以取值“none”(不使用缓冲区)
6)autoFlush属性:
该属性用来指定out的缓冲区被填满时,缓冲区是否自动刷新。
取值true(默认值)或false。
7)isThreadSafe属性:
该属性用来设置JSP页面是否可以多线程访问。
取值true(默认值)或false。
8)info属性:
该属性的属性值是一个字符串,其目的是为JSP页面准备一个常用且可能需要经常修改的字符串,可以在JSP页面中使用方法:
getServletInfo();获取info属性的属性值:
例9P23
9)include指令标记:
(先插入再编辑)
<%@includefile=“文件的URL”%>
include指令标记作用在JSP页面出现该指令的位置处静态的插入一个文件。
被插入的文件必须是可访问的和可使用的。
静态插入:
当前JSP页面和插入的部分合并成新的JSP页面,该页面必须符合JSP语法规则,而后JSP引擎再将这个新的页面转译成Java类文件。
include指令可以实现代码的复用。
9.include动作标签
includepage=“文件的URL”/>
或
includepage=“文件的URL”>
param字标记
include>
动态插入即JSP页面运行时才将文件加入
10.param动作标签
param标记以“名字——值”的形式为其他标记提供附加信息
param标记不能独立使用,需要作为jsp:
include、jsp:
forward、jsp:
plugin标记的子标记来使用。
11.forward动作标签
forwardpage=“要转向的页面”/>
或
forwardpage=“要转向的页面”>
param字标记
forward>
该指令的作用是:
从该指令处停止当前页面的继续执行,而转向执行page属性指定的JSP页面。
12.plugin动作标签
使用plugin动作标记可以保证客户浏览器能执行Javaapplet程序。
该动作标签指示JSP页面加载Javaplugin,该插件由客户负责下载,并使用改插件来运
行Javaapplet程序。
13.usebean动作标签
该标签用来创建并使用一个JavaBean
Sun公司的倡导是:
用HTML完成JSP页面的静态部分,使用JavaBean完成动态部分,实现真正意义上的动静态分离
第三章
JSP内置对象
1.JSP的内置对象有:
request、response、session、application、out
2.HTTP协议的核心是:
请求和响应
3.HTTP包括请求行、头域、可能的信息体
4.request对象
客户通常使用HTML表单向服务器的某个JSP页面提交信息,表单的一般格式:
提交手段
其中,FORM是表单标记,method的取值为get或post,区别是:
使用get方法提交的信息会在提交的过程中显示在浏览器的地址栏中,而post方法提交的信息不会显示在地址栏中。
Request对象可以使用getParameter(StringS)方法获取该表单通过text提交的信息
Request.getParameter(“boy”)
5.处理汉字信息
避免出现汉字乱码问题有两种解决方法:
1)使用page指定ContextType属性的值时
<%@pagecontentType="text/html;Charset=GB2312"%>
即将其中出现的Charset中的首写字母大写。
2)<%@pagecontentType="text/html;charset=GB2312"%>
即将其中出现的charset中的首写字母小写。
然后内置对象request将获取的信息重新编码,即用ISO-8859-1编码,并存放到字节数组中;再将数组转化成字符串对象。
Stringstr=request.getParameter("boy");
byteb[]=str.getBytes("ISO-8859-1");
str=newString(b);
6.处理HTML标记
(1)
格式:
数据提交手段部分
表单标记经常将下列标记作为表单的子标记,以便提供提交数据的手段,这些标记都以GUI形式出现,方便用户输入或选择数据。
(2)标记
作用:
指定表单数据的输入方式以及表单的提交键
格式:
GUI类型:
text(文本框)、checkbox(复选框)、submit(提交键)、reset(重置)等
1)文本框text
当输入对象的GUI类型是text时,除了用name为text指定名字外,还可以为text指定其他一些值,比如:
inputtype=“text”name=“me”value=“hi”size=“12”algin=“left”>
如果用户没有在文本框中输入任何信息,就单击表单中的提交键,request将调用getParameter方法获取由value指定的值,如果value未指定任何值,getParameter方法获取字符串长度为0,即该字符串为“”。
2)单选按钮radio
Request对象调用getParameter方法,获取被选中的radio中value属性指定的值。
Checked如果取值是一个非空的字符串,那么该单选按钮的初始状态就是选中的状态。
如果几个单选按钮的name取值相同,那么同一时刻只能有一个被选中。
3)复选框checkbox
复选框与单选按钮的区别就是可以多选,即如果几个checkbox的name取值相同,那么同一时刻可有多个checkbox被选中。
4)口令框password
它是输入口令用的特殊文本框,输入的信息用“*”回显,防止他人偷看口令。
口令框仅起着不让别人偷看的作用,不提供加密措施。
5)隐藏hidden
此时没有可见的输入界面,表单直接将中valuve属性的值提交给服务器。
6)提交键submit
为了能把将表单的内容提交给服务器,一个表单至少要包括一个提交键。
7)重置键reset
为了将表单中输入的数据清空
(3)
下拉列表和流动列表通过
下拉列表的基本形式:
………………
在Select中增加size属性的值就变成流动列表。
(正整数为流动列表可见的数目)
………………
(4)
标记表格以行列形式显示数据,不提供输入数据功能。
其中,
……
定义表格的一个行或 | 定义这一行中的表格单元,二者区别是 | 定义的单元着重显示, | 称作普通单元,不着重显示;行中的着重单元和普通单元可以交替出现,也可以全是着重单元或普通单元。中增加选项Border可指明该表格是否带有边框。7.状态代码及代码说明 200: 请求成功 202: 请求已被接受但还没有处理完毕 404: 请求的资源不可用 500: 服务器发生内部错误,不能服务 8.Session对象 Tomcat服务器使用内置session(会话对象记录有关连接的信息) 同一个用户在不同的web服务器目录中的session是互不相同的 9.Session和URL的重写P56 10.Session对象能否和客户建立起一一对应的关系依赖于客户的浏览器是否支持Cookie 如果客户的浏览器是不支持Cookie,可以通过URL重写来实现Session对象的唯一性,使用response对象调用encodeURL()或encodeRedirectURL()方法实现URL重写。 11.application对象 该对象由服务器负责创建,每个web服务目录下的application对象被访问该服务目录的所有的用户共享,不同web服务目录下的application互不相同,即所有用户共享一个application对象。 第四章 JSP与JavaBean 1.编写JavaBean,在类的方法命名上遵守规则: (1)如果类的成员变量名字是xxx,获取或更改成员变量的值,即获取更改属性,类中必须提供两个方法: getXxx(),用来获取属性xxx; setXxx(),用来修改属性xxx。 也就是说方法的名字用get或set为前缀,后缀是将成员变量名字的首字母大写的字符序列。 (2)对于boolean类型的成员变量,允许使用is代替上面的get和set。 (3)类中声明的方法的访问属性必须是public的。 (4)类中声明的构造方法必须是public,无参数的。 2.保存bean的字节码 首先: 在当前Web服务目录下建立子目录结构: \WEB-INF\classes。 其次: 根据类的包名,在classes下再建立相应的子目录,如包名为tom.jiafei,那么在classes下建立子目录结构: tom\jiafei。 最后: \WEB-INF\classes被启用后,就可以将建立bean的字节码文件,比如Circle.class,复制\WEB-INF\classes\tom\jiafei中。 例如,ch4\WEB-INF\classes\tom\jiafei中。 3.创建和使用bean 在使用bean的JSP页面中,必须有相应的import指令,例如: <%@pageimport=“tom.jiafei.*”%> 然后在JSP页面中再使用JSP动作标记useBean,来加载使用bean、useBean。 语法格式如下: useBeanid=“bean名字”class=“创建beans的字节码”scope=“bean有效范围”/> 或 useBeanid=“bean名字”class=“创建bean的类”scope=“bean有效范围”>
useBean> 创建bean的类要带有包名,如: class=“tom.jiafei.Circle” 例如: useBeanid=“circle”class=“tom.jiafei.Circle”scope=“page”/> 4.useBean标签中scope的取值 (1)scope取值page 此时,bean有效范围是当前页面,不同用户的scope取值是page的bean是互不相同的,即当两个用户同时访问一个JSP页面时,一个用户对自己bean的属性改变,不会影响另一个用户 (2)scope取值session 此时,bean的有效范围是客户的会话(session)期间,实现两页面bean对象共享,当两用户访问一个JSP页面时,不会有相互影响。 (3)scope取值request 此时,bean的有效范围是request期间,一个用户对自己的bean改变不会影响到另一个用户。 (4)scope取值application JSP引擎分配给每个客户一个共享的beans,即不同的用户的scope取值是application的bean也都是相同的一个,若一个客户改变其中某个属性值,其他客户的属性值也跟着发生变化。 5.getProperty动作标记 使用该标记可以获得bean的属性值,并将这个值用串的形式发个客户的浏览器,使用getProperty之前必须使用usebean获得相应的bean。 getPropertyname=“bean的名字”property=“bean的属性”/> 或 getPropertyname=“bean的名字”property=“bean的属性”>
getProperty> name取值是bean的名字,用来指定要获取哪个bean的属性的值; property取值是该bean的一个属性的名字,该指令相当于Java表达式: <%=bean.getXxx()%> 6.setProperty动作标签 使用setProperty动作标签可以设置bean的值,有两种方式: (1)将bean属性的值设置为一个表达式的值或字符串(属性值为汉字时,使用此种方式) 表达式: setPropertyname=“bean的名字”property=“bean的属性”value=“<%=express%>”/> 字符串: setPropertyname=“bean的名字”property=“bean的属性”value=字符串/> (2)通过HTTP表单的参数的值来设置bean的相应属性的值 HTTP所有参数的值来设置bean的相应属性的值 setPropertyname=“bean的名字”property=“*”/> 明确bean的某个属性设置为表单中对应的参数值 setPropertyname=“bean的名字”property=“属性名”param=“参数名”/> 例5、6P91~92例子 第六章 在JSP中使用数据库 1.JDBC(JavaDataBaseConnectivity)是Java运行平台核心库中的一部分,提供了访问数 据库的API,他由一些Java类和接口组成。 2.使用JDBC进行的操作: (1)与一个数据库建立连接 (2)向正连接的数据库发送SQL语句 (3)处理SQL语句返回的结果 3.JDBC-ODBC桥接器 应用程序和数据库建立连接的一种常见方式,使用JDBC-ODBC桥接器访问数据库的3三个步骤如下: (细节内容见书上P127-131) (1)建立JDBC-ODBC桥接器 (2)创建ODBC数据源 (3)和ODBC数据源指定的数据库建立连接 4.使用纯Java数据库驱动程序是和数据库建立连接需要两个步骤 (1)加载纯Java驱动程序 (2)和指定的数据库建立连接 1)应用程序加载SQLServer驱动程序代码: try{Class.forName(“com.microsoft.sqlserver.jdbc.SQLServerDriver"); } catch(ClassNotFoundExceptione) {out.print(e); } 2)和指定的数据库建立连接(本机连接) 假如SQLServer数据库服务器所在计算机IP: 192.168.100.1所在的端口号是1433,应用程序要和SQLServer数据库服务器管理的数据库factory建立连接,有权访问factory的用户的ID和密码分别是sa、sa,则建立链接代码 Try{Stringuri="jdbc: sqlserver: //192.168.100.1: 1433;DatabaseName=factory"; Stringuser="sa"; Stringpassword="sa"; con=DriverManager.getConnection(uri,user,password);} catch{SQLExceptione}} 5.查询操作 (1)无论字段是何种属性,总可以使用getString(intcolmnIndex)或getString(StringcolmnName)方法返回字段值的串表示 (2)当使用ResultSet的getXxx()方法查询一行记录时,不可以颠倒字段的顺序 例如不可以: rs.getFloat(4); rs.getDate(3); (3)查询种类: 1)顺序查询 DatabaseMetadatametadata=con.getMetadata(); 2)随机查询 获得可滚动的结果集 首先获得一个Statement对象: Statementstmt=con.createStatement (inttype,intconcurrency);(type的取值决定滚动方式) 根据参数type、concurrency取值情况,stmt返回相应的结果集。 ResultSetre=stmt.executeQuery(SQL语句); Type的取值P139 Publicbooleanabsolute(introw);将游标移动到参数row指定的行号。 3)排序查询 可以在SQL语句中使用ORDERBY子语句,对记录进行排序。 例如按薪水排序查询的SQL语句如下: rs=sql.executeQuery(“SELECT*FROMemployeeORDERBYsalary“) 4)模糊查询 可以再SQL语句中使用操作符LIKE进行模式匹配,使用“%”代表零个或多个字符,用一个下划线“_”代替一个字符
展开阅读全文
相关搜索
|