内容发布更新时间 : 2025/1/1 10:53:51星期一 下面是文章的全部内容请认真阅读。
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=”error.jsp” %>
如果在页面请求时出现运行时异常是, 以上代码会把页面转向到JSP页面error.jsp,在error.jsp里面,可以通过以下代码定义这个页面是错误处理页:
<%@ page isErrorPage=”true” %>
这样描述错误信息的Throwable对象就可以在error.jsp页面里面访问到。
3、如果jsp表单元素的值为空,如何避免null出现在页面上?
可以写一个简单的函数对空值进行处理,判断值是否为空,如果是空就返回空字符串。实例代码如下: <%!
String blanknull(String s){ return (s == null) ? “” : s; } %>
在你的JSP里面,可以使用以上函数输出文本框或者其他页面元素的值,实例代码如下:
4、如何避免JSP页面自动生成session对象?为什么要这么做?
type=”text”
name=”shoesize”
value=”<%=blanknull(shoesize)% >” >
在默认情况下,在对一个JSP页面发出请求时,如果session还没有建立,JSP页面会自动为请求建立一个session对象,但是session是比较消耗资源的,如果没必要保持和使用session,就不应该创建session, 例如一些只是用来宣传产品的网站,往往没必要使用session来保存信息,可以使用jsp页面指令session=”false”来避免JSP页面为每个请求都自动创建session.实例代码如下:
<%@ page session=”false”>
5、在servlets和JSP之间能共享session对象吗?
当然可以,
HttpSession session = request.getSession(true); session.putValue(”variable”,”value”);
6、Servlet都有哪些方法?主要作用是什么?
HttpServlet 类包含 init() 、 destroy() 、 service() 等方法。其中 init() 和 destroy() 方法是继承的。