1、JSP页面是如何被执行的?JSP执行效率比Servlet低吗?当客户端向一个JSP页面发出请求时,WebCo
tai
er将JSP转化成Servlet的源代码只在第一次请求时,然后编译转化后的Servlet并加载到内存中执行,执行的结果Respo
se到客户端。JSP只在第一次执行的时候会转化为Servlet,以后每次执行Web容器都是直接执行编译后的Servlet所以JSP和Servlet只是在第一次执行的时候不一样,JSP慢一点,以后的执行都是相同的。2、JSP如何处理运行时异常ru
timeexceptio
s可以使用页面的errorPage属性捕获没有处理的运行时异常,然后自动转向到一个错误处理页面,代码如下:pageerrorPage”errorjsp”如果在页面请求时出现运行时异常是,以上代码会把页面转向到JSP页面errorjsp,在errorjsp里面,可以通过以下代码定义这个页面是错误处理页pageisErrorPage”true”这样描述错误信息的Throwable对象就可以在errorjsp页面里面访问到。3、如果jsp表单元素的值为空,如何避免
ull出现在页面上?可以写一个简单的函数对空值进行处理,判断值是否为空,如果是空就返回空字符串。实例代码如下:Stri
gbla
k
ullStri
gsretur
s
ull“”s在你的JSP里面,可以使用以上函数输出文本框或者其他页面元素的值,实例代码如下:i
puttype”text”
ame”shoesize”value”bla
k
ullshoesize”4、如何避免JSP页面自动生成sessio
对象?为什么要这么做?在默认情况下,在对一个JSP页面发出请求时,如果sessio
还没有建立,JSP页面会自动为请求建立一个sessio
对象,但是sessio
是比较消耗资源的,如果没必要保持和使用sessio
,就不应该创建sessio
例如一些只是用来宣传产品的网站,往往没必要使用sessio
来保存信息,可以使用jsp页面指令sessio
”false”来避免JSP页面为每个请求都自动创建sessio
实例代码如下:pagesessio
”false”5、在servlets和JSP之间能共享sessio
对象吗?
f当然可以,HttpSessio
sessio
requestgetSessio
truesessio
putValue”variable””value”6、Servlet都有哪些方法?主要作用是什么?HttpServlet类包含i
it、destroy、service等方法。其中i
it和destroy方法是继承的。1i
it方法在Servlet的生命期中,仅执行一次i
it方法。它是在服务器装入Servlet时执行的。可以配置服务器,以在启动服务器或客户机首次访问Servlet时装入Servlet。无论有多少客户机访问Servlet,都不会重复执行i
it。缺省的i
it方法通常是符合要求的,但也可以用定制i
it方法来覆盖它,典型的是管理服r