JavaBean
- jsp:getProperty中的name及property区分大小写。(t)
用于获取被加载到当前页面中的JavaBean的某个属性值:
<jsp:getProperty name=”beanInstanceName” property=”propertyName”>
name:JavaBean对象的名字,property:获取哪个属性的值 - 在JavaBean中有很多方法,其中包含了主方法。(f)
所有属性的Get/Set方法 - JavaBean中的属性既可以是public型的,也可以是private型的。(f)
都是private - JavaBean中的方法既可以是public型的,也可以是private型的。(f)
都是public - JavaBean实质上是一个Java类,该类可以被JSP程序进行直接调用。(f)
需要使用<jsp:useBean id=” beanInstanceName” class=”package.class”
scope=”page”>标签装载一个在JSP页面中使用的JavaBean - 编写JavaBean可以先不必加入到JSP程序中调用,而直接用main方法来进行调试,调试好后就可以在JSP中使用了。(t)
JSP内置对象部分
-
Application的生命周期比session的生命周期长。(t)
Application:保存整个web应用运行期间的全局数据和信息。只要web应
用正常运行,application对象就可以访问
Session:当用户打开网页,服务器就生成一个session对象。除非用户关闭
浏览器,否则该对象一直伴随用户(例如在用户登录过程中,可以用session记录用户的登录状态:session.setAttribute(“status”, “Login”);)
两者区别:只要web应用还在正常运行,application对象就可以访问,而
session对象在用户离开系统就被注销(关闭浏览器再打开新窗口,application对象还在) -
Request的生命周期比Session的生命周期长。(f)
request:用户的需求被抽象成request对象,该对象包括:用户所有的请求
数据(例如通过表单提交的表单数据、通过URL等方式传递的数等)、服务器的信息(端口、真实路径、访问协议等)…
生命范围:从http请求发起,到服务器处理结束返回响应的整个过程(响应完成,request消失) -
当request对象获取客户端提交的汉字字符时,会出现乱码问题,解决方式是改变编码格式为UTF-8。(f)
乱码问题:本质就是把中文字符转换成合适的编码方式,或者是在显示中文
的环境中声明采用GB2312的编码(UTF-8、GBK、GB2312都支持中文显示)
1.JSP页面:设置对整个页面起作用的page指令,让其支持中文显示的编码方式:<%@ page language=”java” import=”java.util.*” contentType=”text/html; charset=gb2312”%>
2.URL传递参数:咱可以用类似http://localhost:8080/chapt4/ URLCharset.jsp? param='中文’
这种形式传递参数(通过URL链接)。仅仅转换这个字符串的编码或设置JSP页面显示编码都不能解决问题。需要修改Tomcat的
conf目录下的server.xml配置文件:<Connector port=”8080” URIEncoding =”gbk2312” …>
3.表单提交:在Tomcat中,对于以POST方法提交的表单采用的默认编码为
ISO-8859-1(不支持中文字符)。使用过滤器filter解决,对所有的请求进行编码格式的处理:在web.xml中添加如下内容:<filter> <filter-name>SetCharacterEncoding</filter-name> <filter-class> SetCharacterEncodingFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>gb2312</param-value> </init-param> <init-param> <param-name>enable</param-name> <param-value>true</param-value> </init-param> </filter> <filter-mapping> <filter-name> SetCharacterEncoding</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
过滤器的基本原理:对于每一个用户请求,都必须经过过滤器的处理才能发到目的页面。在JSP中,以POST方式提交的表单在本质上就是封装在request对象中,而request对象是必须要经过过滤器处理的
4.数据库操作:
向数据库中正常写入中文数据:jdbc:microsoft:sqlserver://localhost:1433; DatabaseName=pubs;
useUnicode=true; characterEncoding=gb2312 -
使用Request对象的getRemoteAddr()方法可以获取客户端的IP地址。(t)
-
通过Post方法提交数据,会将所有数据显示在URL地址的后面。(f)
Get方法:把参数数据添加到表单的action属性所指向的URL中,例如:因此安全性较差
Post方法:将表单内各个字段与其内容放置在Html Header内,对用户来说是透明的,较安全 -
Cookie文件是存放在服务器端的。(f)
cookie对象将数据写到客户端浏览器的cookie文件中,该文件保存再客户端
内存中 -
在设置cookie的最大存在时间时,可以设置为负值和零。(t)
cookie.setMaxAge(0) ; //不记录cookie
cookie.setMaxAge(-1); //会话级cookie,关闭浏览器失效 -
JSP内置对象是指不用声明就可以在JSP页面的脚本部分使用的对象。(t)
-
Out对象的作用范围是Application。(f)
功能:想JSP页面输出数据信息 -
Out对象的clearBuffer()方法用来清除缓存区里的数据,但并不把数据写到客户端。(f)
-
Out对象的clear()方法用来清除缓存区里的数据,并把数据写到客户端。(f)
1.clear()方法:清除缓冲区数据(仅仅是清楚),不向用户输出
2.clearBuffer()方法:清除缓冲区数据,同时向用户输出 -
空字符串“”和NULL的意义是相同的,都表示这个对象不存在。(f)
-
当request对象获取客户提交的汉字字符时,会出现乱码问题,解决乱码问题的关键是将编码方式改变为UTF8.(f)
同题目3 -
Session对象的存在期限是指浏览器未关闭之前及默认时间内。(t)
-
Cookie对象的存在期限是指浏览器未关闭之前及设定时间内。(t)
-
Session对象通常存在于客户端。(f)
数据保存到服务器端内存:session对象、application对象
数据保存到客户端内存:cookie对象 -
在某些情况下,当响应客户时,需要将客户重新引导指另外一个页面,这时可以使用response对象的sendRedirect(URL)方法实现客户的重定向。(t)
-
Response.setHeader(“refresh”,“2”)可以实现两秒钟刷新一次的效果。(t)
-
和Session对象一样,当不同的客户在访问服务器时,服务器会创建不同的Application对象。(f)
Application对象被所有用户共享 -
与Session不同到的是,所有客户的application对象都是同一个,即所有客户共享这个内置的application对象。(t)
-
在浏览器上存放cookie的数量是没有限制的。(f)
有限制的 -
在服务器上存放cookie的数量是有限制的。(f)
存放在客户端上 -
从执行的速度上来分析,Session对象的处理速度通常比Cookie对象的处理速度快。(f)
-
可以通过调用SetMaxAge()方法来设置Cookie将要存在的最大时间。(T)
-
如果SetMaxAge()方法中的值为负值表明要立即删除该Cookie对象。(f)
不是立即删除,表明当关闭浏览器时,cookie失效 -
如果SetMaxAge()方法中的值为0表明当浏览器关闭时,该Cookie对象将被删除。(f)
cookie对象立即失效,不需要关闭浏览器
Jsp数据库部分
-
JDBC不支持三层模型。(f)
-
使用JSP不能实现数据库的分页浏览。(f)
-
在进行数据库连接时,作用于用户和驱动程序之间的类是DriverManager类(t)
-
Connection接口代表与数据库的连接,并拥有创建SQL语句的方法。(t)
-
在执行一个存储过程之前,必须先对其中的Out参数进行注册。(t)
存储过程:存在数据库服务器中的函数,接受输入并返回输出。该函数会在
数据库服务器上进行编译,供用户多次使用,可大大提高数据操作的效率
利用CallableStatement对象可以调用存储过程,该对象可处理两种形式的存储过程(带/不带结果参数)。如果存储过程返回的是输出参数,则在执行CallableStatement对象前必须注册每个输出参数的JDBC类型。当存储过程从执行中返回后,它会用之前设置的JDBC类型设置OUT参数的值。CallableStatement cstmt = conn.prepareCall(“{ call insertNewStudent(?, ?) }”);
cstmt.registerOutParameter(1, java.sql.Types.INTEGER); //注册out参数
cstmt.execute(); //执行存储过程
Int number=cstmt.getInt(1); //从第一个参数中取出Integer对象 -
DriverManger类是JDBC的管理者,主要负责加载、注册JDBC驱动程序。(t)
-
DriverManager类的getConnection()方法用于建立指定数据库的连接,该方法中有三个参数,第一个参数就是数据库的用户名,第二个参数是密码,第三个参数指定数据库的URL。(f)
第一个参数是url:”jdbc:mysql://localhost:3306/simple”
(数据库的连接字符串=连接协议+数据库地址+数据库名称)第二个参数是username:root
第三个参数是password:root -
可以通过检查机器中的1433端口是否已经打开来判断SQL Server 2000 是否安装了SP3 或 SP4.(t)
-
JSP连接数据库需要使用的端口是80端口。(f)
-
执行Statement接口的executeUpdate()方法会返回一个ResultSet对象。(f)
返回整数值
Statement接口提供3种执行语句的方法:
1.executeQuery(String sql):产生单个结果集的语句(执行select查询语句)
2.executeUpdate(String sql):
返回值是一个整数(指示受影响的行数):执行insert、update或delete语句;
返回值为0:执行DDL语句,例如Create table或Drop table
3.execute(String sql):执行返回多个结果集、多个更新计数或二者组合 -
Statement接口的executeQuery()方法的返回类型是Boolean型。(f)
返回单个结果集ResultSet对象 -
Statement接口的execute()方法的返回类型是Int型。(f)
返回多个结果集ResultSet对象 -
通常执行Statement接口的executeQuery()方法会得到一个ResultSet,且指针指向记录的第1行。(f)
-
Statement接口是PreparedStatement接口的子接口,它直接继承并重载PreparedStatement的方法。(f)
PreparedStatement接口继承并扩展了Statement接口,用来执行动态SQL
语句。该SQL语句可具有一个或多个参数,每个参数保留一个问号(?,作为占位符) -
一个PreparedStatement的对象中包含的SQL语句是预编译的,允许包含多个输入参数,输入参数用?代替。(t)
JSP语法部分
JSP指令标识:设定当前页面范围内有效的信息,被服务器解释执行,不产
生输出到网页的内容
<%@ 指令名 attribute1=”attributeValue1” attribute2=”attributeValue2”%> -
会在客户端(浏览器)显示的注释是隐藏注释。(f)
-
会在客户端(浏览器)显示的注释是输出注释。(t)
-
<%@ page%>指令不一定放在页面的头部。(t)
-
<%@ page import=”java.util.,java.lang.”buffer=”5kb”autoFlush=”false”%>,这句代码是正确。(t)
-
<%@ Include%>指令只能包括后缀名为.jsp的文件。(f)
include指令:仅仅是静态包含一个文件(和当前页面组成一个整体文件)<%@ include file=”header.txt”%>
include动作指令:可以动态包含一个文件(静态文件或动态脚本)
<jsp:include flust=”true” page=”header.txt” page=”header.txt”>
<jsp:param name=”param” value=”test”/ >
</jsp:include> -
使用jsp:forward指令可以传递参数。(t)
可以用来控制网页的重定向(从当前页面跳转到另一个页面)<jsp:forward page=”www.sohu.com”></jsp:forward>
-
<%@ Include%>指令只能包括后缀名为.jsp的文件。(f)
-
格式如”<!—注释内容–>”的注释是隐藏注释。(f)
输出注释:”<!—注释内容–>”
隐藏注释:”<%–注释内容–%>” -
格式如”<%–注释内容–%>”的注释是输出注释。(f)
-
JSP编译器是不会对”<%–“和”–%>”之间的语句进行编译的,它不会显示在客户的浏览器中,也不会在源代码中被看到。(t)
-
在JSP声明中只能一次一个的声明要用到的变量和方法。(f)
<%! 声明变量或方法 %>
<%! int number=0;
int count() {
number++;
return number;
}
%> -
在JSP中使用表达式必须以“;”作为表达式的结束符。(f)
<%= 表达式 %>:用于向页面输出信息
表达式可以是任何合法的Java语言表达式(运算结果转换为字符串),其
可以插入到页面文本/插入HTML标记
<%= now%>:当前时间 -
JSP中的表达式必须有返回值,且返回值被转换为字符串。(t)
-
Page指令的language属性用于指定在脚本元素中的脚本语言,默认值是Java,在JSP2.0规范中,该属性的值也可以是JavaScript和vbscript等语言。(f)
当前只支持Java -
即使没有使用Page指令设置charset为GB2312,JSP程序终中的中文显示也不会出现乱码。(f)
-
Page指令的所有属性都可以重复设置。(f)
-
Page指令中只有import属性可以重复设置。(t)
-
无论将Page指令放在JSP文件的哪个位置,它的作用范围都是整个JSP页面。(t)
因此<%@ page %>指令不一定放在页面头部 -
在使用include指令时,在被包含文件中可以使用、、、<等标签时,不会引发错误。(f)
Include指令是静态包含,include动作指令可以包含,详见题5 -
在使用include指令时,包含文件中的变量和方法可以与包含文件中的变量和方法同名,不会引发错误。(f)
-
在使用自定义标签之前必须使用<%@ taglib>指令引用标签库,但是,在一个页面中只能使用一次。(f)
-
jsp:include动作元素允许在页面被请求的时候包含一些其他的资源,如一个静态的HTML文件或动态的JSP文件。(t)
-
jsp:forward操作允许将请求转发到其他的HTML文件、JSP文件或者是一个程序段,通常请求被转发后,会停止当前JSP文件的执行。(t)
不确定
Servlet技术部分
- Servlet包含类包javax.servlet与javax.servlet.http。(f)
Java Servlet API包含两个基本的包:
javax.servlet:提供控制Servlet生命周期所需的类和接口
javax.servlet.http:提供处理与http相关操作的类和接口
一般通过继承javax.servlet.http.HttpServlet或javax.servlet.GenericServlet间
接实现Servlet接口 - 在Servlet中系统自动解决中文显示问题。(f)
- 如果用JDK直接编译Servlet将引起程序错误。(t)
Servlet本质上Java类,但是需要在特定的容器中才能运行(服务器端) - Session不可以与Servlet进行通信。(f)
- Servlet和applet一样都是运行在浏览器上的程序。(f)
- Servlet进程只有在Web Server卸载时被卸载。(t)
- 在编译Servlet之前,无须像JDK一样设置Classpath。(f)
编写一个servlet的步骤:
1)编写servlet的功能代码(实现功能的代码类)
2)将servlet放在服务器端编译,生成对应servlet类文件,将编译成功的
Servlet功能代码类文件拷贝到当前项目的WEB-INF/classes目录下
3)在web.xml中添加对servlet的配置信息:
servlet>
<servlet-name>HelloWorld</servlet-name>
<servlet-class>servlets.HelloWorld</servlet-class>
/servlet>
servlet-mapping>
<servlet-name> HelloWorld</servlet-name>
<url-pattern>/HelloWorld</url-pattern>
/servlet-mapping>
- 编写Servlet程序以后,不需要进行任何配置就可以正常访问。(f)
- doGet和doPost方法通常会抛出两个异常:ClassNotFoundException和ServletException。(f)
抛出IOException和ServletException - Javax.servlet.GenericServlet类为java.lang.Object类的子类,并且实现了javax.servlet.Servlet接口、javax.servlet.ServletConfig接口和javax.io.Serializable接口。(t)
基础部分
- JSP(Java Server Pages)是由Sun公司在Java语言开发出来的一种静态网页制作技术。(f)
- Charset=GB2312指明了页面中html静态内容的编码方式。(t)
- Charset=GB2312指明了页面中html动态内容的编码方式。(f)
- 学习JSP并不需要学习JavaBean。(f)
- JSP的执行肯定要经过Servlet才能执行。(f)
- JSP就是ASP,它们没什么区别。(f)
- JSP不带Session的管理。(f)
- 不能应用JSP制作聊天室。(f)
- JSP不带Application处理。(f)
- 在JSP开头并不需要<% page language=”java”%>这句话。(t)
<%@ page language=”java” %> - Myname与myname是同样的两个变量。(f)
- 静态网页的每个网页都有一个固定的URL,且网页URL以.html、.htm、.shtml等常见形式为扩展名,而不含“?”。(t)
- 静态网页的每个网页都有一个固定的URL,且网页URL以.html、.htm、.shtml等常见形式为扩展名,但可以包含“?”。(f)
- 通常,静态网页不需要数据库的支持,而动态网页却需要数据库的支持。(t)
- 通常,静态网页需要数据库的支持,而动态网页却不需要数据库的支持。(f)
- 动态网页是指在接到用户访问要求后动态生成的页面,页面内容会随着访问时间和访问者发生变化。(t)
- 静态网页实际上并不是独立存在于服务器上的网页文件,只有当用户请求时服务器才返回一个完整的网页。(f)
静态页面:不能自主发布管理更新
动态页面:可以通过网站后台管理下系统对内容进行更新管理 - CGI的中文全称叫通用网关界面。(t)
- 一台普通的计算机不需要做任何配置就可以成为Web服务器。(f)
- 一台普通的计算机要想成为Web服务器,必须通过相应的程序(如IIS、PWS和Apache等)来实现。(t)
- JSP拥有Java语言“一次编写,各处运行”的特点,几乎可以运行在所有平台上。(t)
- 运用JSP技术进行开发可以将内容的生成和显示相分离。(t)
- 在维护方面,B/S结构的维护比C/S困难,维护开支更大。(f)
- 在安全性方面,B/S结构对安全的控制能力比C/S结构强。(f)
- 在重用性方面,B/S程序侧重整体性考虑,构件的重用性不是很好,而C/S一般采用多重结构,要求构件相对独立的功能,能够相对较好地实现重用。(f)
- JSP页面在第一次打开时速度较慢,因为要将JSP文件转换成Servlet文件。(t)
- 在服务器端运行环境的搭建中,Tomcat既可以作为JSP引擎,也可以作为Web服务器。(t)
- 在JDK环境变量的配置中,path的功能是说明java实用程序所在的位置。而CLASSPATH的功能是说明类和包文件的搜索路径。(f)
不明白 - .html文件可以由浏览器直接解释执行,而.jsp文件不能由浏览器直接解释执行,必须由JSP引擎解释执行。(t)