1、JSP如何处理运行时异常(run-time)exceptions?
可以使用页面的errorPage属性捕获没有处理的运行时异常,然后自动转向到一个错误处理页面,代码如下:
<%@ page errorPage=”error.jsp” %>
如果在页面请求时出现运行时异常是,以上代码会把页面转向到JSP页面error.jsp,在error.jsp里面,可以通过以下代码定义这个页面是错误处理页:
<%@ page isErrorPage=”true” %>
这样描述错误信息的Throwable对象就可以在error.jsp页面里面访问到。
2、如果jsp表单元素的值为空,如何避免null出现在页面上?
可以写一个简单的函数对空值进行处理,判断值是否为空,如果是空就返回空字符串。实例代码如下:
<%!
String blanknull(String s){
return (s == null) ? “” : s;
}
%>
在你的JSP里面,可以使用以上函数输出文本框或者其他页面元素的值,实例代码如下:
<input type=”text” name=”shoesize”value=”<%=blanknull(shoesize)% >” >
3、在servlets和JSP之间能共享session对象吗?
当然可以,
HttpSession session =request.getSession(true);
session.putValue(”variable”,”value”);
4、Java Servlet的主要功能和作用是什么?
Servlet 通过创建一个框架来扩展服务器的能力,以提供在 Web 上进行请求和响应服务。当客户机发送请求至服务器时,服务器可以将请求信息发送给Servlet ,并让 Servlet 建立起服务器返回给客户机的响应。 当启动 Web 服务器或客户机第一次请求服务时,可以自动装入 Servlet 。装入后, Servlet 继续运行直到其它客户机发出请求。 Servlet 的功能涉及范围很广。例如, Servlet 可完成如下功能:
(1) 创建并返回一个包含基于客户请求性质的动态内容的完整的 HTML 页面。
(2) 创建可嵌入到现有 HTML 页面中的一部分 HTML 页面( HTML 片段)。
(3) 与其它服务器资源(包括数据库和基于 Java 的应用程序)进行通信。
(4) 用多个客户机处理连接,接收多个客户机的输入,并将结果广播到多个客户机上。例如, Servlet 可
以是多参与者的游戏服务器。
(5) 当允许在单连接方式下传送数据的情况下,在浏览器上打开服务器至 applet 的新连接,并将该连
接保持在打开状态。当允许客户机和服务器简单、高效地执行会话的情况下,applet 也可以启动客户浏览器和服务器之间的连接。可以通过定制协议或标准(如 IIOP )进行通信。
(6) 对特殊的处理采用 MIME 类型过滤数据,例如图像转换和服务器端包括( SSI )。
(7) 将定制的处理提供给所有服务器的标准例行程序。例如, Servlet 可以修改如何认证用户。
5、JSP中动态INCLUDE与静态INCLUDE的区别?
动态INCLUDE用jsp:include动作实现 <jsp:include page="included.jsp"flush="true" />它总是会检查所含文件中的变化,适合用于包含动态页面,并且可以带参数。
静态INCLUDE用include伪码实现,不会检查所含文件的变化,适用于包含静态页面<%@ includefile="included.htm" %>
6、说一说Servlet的生命周期?
Servlet是一种可以 在Servlet容器中运行的组件,那么理所当然就应该有一个从创建到销毁的过程,这个过程我们可以称之为Servlet生命周期。Servlet的生命 周期可以分为加载、实例化、初始化、处理客户请求和卸载五个阶段,体现在方法上主要是init()、service()和destroy()三个方法。生命周期的具体说明如下:
· Servlet容器完成加载Servlet类和实例化一个Servlet对象
· init()方法完成初始化工作,该方法由Servlet容器调用完成
· service()方法处理客户端请求,并返回响应结果
· destroy()方法在Servlet容器卸载Servlet之前被调用,释放一些资源
7、JSP和Servlet有哪些相同点和不同点,他们之间的联系是什么?
JSP技术是建立在Servlet技术基础之上的,本质上是Servlet的简易方式,更强调应用的外表表达。JSP编译后是"类servlet",所有的JSP页面最终都要被转换成Servlet来运行。
目前,一个web应用往往由多个servlet和jsp组成。 Servlet和JSP最主要的不同点在于,Servlet的应用逻辑是在Java文件中,并且完全从表示层中的HTML里分离开来。而JSP的情况是Java和HTML可以组合成一个扩展名为.jsp的文件。JSP侧重于视图,负责显示工作完成;Servlet主要用于控制逻辑,负责流程控制功能。
8、JSP有哪些动作?作用分别是什么?
共有以下6种基本动作:
Jsp:include:在页面被请求的时候引入一个文件;
Jsp:useBean:寻找或实例化一个JavaBean;
Jsp:setProperty:设置JavaBean的属性;
Jsp:getProperty:输出某个JavaBean的属性;
Jsp:forward:把请求转到一个新的页面;
Jsp:plugin:根据浏览器类型为Java插件生成OBJECT或EMBED标记;
9、写一段Jdbc连Oracle的程序,并实现数据查询。
Package hello.ant;
Import java.sql.*;
Public class JdbcOracle{
String dbUrl = “jdbc:oracle:thin:@127.0.0.1:1521:orcl”;
String userName = “admin”;
String password = “manager”;
Connection c = null;
Statement conn;
ResultSet rs = null;
PublicJdbcOracle(){
Try{
Class.forName(“oracle.jdbc.driver.OracleDriver”).newInstance();
c =DriverManager.getConnection(dbUrl,username,password);
conn = c.createStatement();
}catch(Exceptione){
e.printStackTrace();
}
}
}
10、说出在JSP页面里是怎么分页的?
页面需要保存以下参数:
总行数:根据sql语句得到总行数
每页显示行数:设定值
当前页数:请求参数
页面根据当前页数和每页行数计算出当前页第一行行数,定位结果集到此行,对结
果集取出每页显示行数的行即可。