常见的 JavaWeb(J2EE)面试试题及答案 常见的 JavaWeb(J2EE)面试试题及答案 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 对象?为什么要这么做? 在默认状况下,在对一个 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() 等方法。其中 ...