文档介绍:1 / 8
1、JSP页面是如何被执行的?JSP执行效率比Servlet低吗?
当客户端向一个JSP页面发出请求时,Web Container将JSP转化成Servlet的源代码(只在第一次请求时),然后编译转化后的Servlet并加载到内存中执行,执行的结果Response到客户端。
JSP只在第一次执行的时候会转化为Servlet,以后每次执行Web容器都是直接执行编译后的Servlet,所以JSP和Servlet只是在第一次执行的时候不一样,JSP慢一点,以后的执行都是相同的。
2、JSP如何处理运行时异常(run-time)exceptions?
可以使用页面的errorPage属性捕获没有处理的运行时异常,然后自动转向到一个错误处理页面,代码如下:
<%@ page errorPage=”” %>
如果在页面请求时出现运行时异常是,,,可以通过以下代码定义这个页面是错误处理页:
<%@ page isErrorPage=”true” %>
。
3、如果jsp表单元素的值为空,如何避免null出现在页面上?
可以写一个简单的函数对空值进行处理,判断值是否为空,如果是空就返回空字符串。实例代码如下:
<%!
String blanknull(String s){
return (s == null) ? “” : s;
}
%>
在你的JSP里面,可以使用以上函数输出文本框或者其他页面元素的值,实例代码如下:
<input type=”text” name=”shoesize” value=”<%=blanknull(shoesize)% >” >
4、如何避免JSP页面自动生成session对象?为什么要这么做?
在默认情况下,在对一个JSP页面发出请求时,如果session还没有建立,JSP页面会自动为请求建立一个session对象,但是session是比较消耗资源的,如果没必要保持和使用session,就不应该创建session, 例如一些只是用来宣传产品的网站,往往没必要使用session来保存信息,可以使用jsp页面指令session=”false”:
<%@ page session=”false”>
5、在servlets和JSP之间能共享session对象吗?
3 / 8
当然可以,
bbbSession session = (true);
(”variable”,”value”);
6、Servlet都有哪些方法?主要作用是什么?
bbbServlet 类包含 init() 、 destroy() 、 service() 等方法。其中 init() 和 destroy() 方法是继承的。
(1) init() 方法
在 Servlet 的生命期中,仅执行一次 init() 方法。它是在服务器装入 Servlet