您的位置:首页 > 职场人生

JSP学习笔记(十):面试题1

2015-09-19 14:40 323 查看
第一份:

1、JSP是如何被执行的?执行效率比SERVLET低吗?

2、JSP如何处理运行时异常?

3、如果jsp表单元素的值为空,如何避免null值显示在页面上?

4、如何避免jsp页面自动生成session对象?为什么要这么做?

5、在Servlet和jsp之间能共享session吗?

6、Servlet都有哪些方法?主要作用是什么?

7、java Servlet的主要功能和作用是什么?

8、request对象的主要方法有哪些?

9、使用jsp连接到数据库连接缓冲池的最好方法是什么?

10、在jsp中如何写文本文件?

11、jsp的缺点?

12、在jsp中如何删除一个cookie?

13、如何实现Servlet的单线程模式?

14、说出Servlet和CGI的区别?

15、Servlet的生命周期?

16、介绍一下javax.servlet.Servlet接口及其主要方法?

17、httpservlet类中的主要方法有哪些?各自的作用是什么?

18、xml文档定义有几种形式?他们之间有何本质区别?解析xml文档有哪几种方式?

19、你在项目中用到了xml的技术的那些方面?如何实现的?

20、说说jsp内置对象包含几部分?九大内置对象及其作用?

21、jsp乱码问题,post提交数据和get(url)传值,如何处理乱码问题

答案:

1、JSP是如何被执行的?执行效率比SERVLET低吗?

1) 当客户端向一个jsp页面发送请求时,Web Container将jsp转化成servlet的源代码(只在第一次请求时),然后编译转化后的servlet并加载到内存中执行,执行的结果response到客户端

2) jsp只在第一次执行的时候会转化成servlet,以后每次执行,web容器都是直接执行编译后的servlet,所以jsp和servlet只是在第一次执行的时候不一样,jsp慢一点,以后的执行都是相同的

2、JSP如何处理运行时异常?

1) 可以使用页面的errorPage属性捕获没有处理的运行时异常,然后自动跳转到错误页面,代码如下:

<%@ errorPage="error.jsp" %>

2) 如果在页面请求时出现运行时异常,以上代码会把页面转向到jsp页面error.jsp,在erro.jsp里面,可以通过以下代码定义这个页面是错误页面:

<%@ isErrorPage="true" %>

3)这样描述错误信息的Throwable对象就可以在error.jsp页面里面访问到

3、如果jsp表单元素的值为空,如何避免null值显示在页面上?

1) 可以写一个函数来判断,若为空,就返回"",代码如下:

{%!

String isNull(String str)

{

return (str==NULL)?(""):str;

}

%}

2) 然后下面是调用函数,代码如下:

<input type="text" value="<%=isNULL(name)%>">

4、如何避免jsp页面自动生成session对象?为什么要这么做?

1)可以使用页面指令显式关掉,代码如下:

<%@ page session="false" %>

2)在默认情况下,用户请求一个jsp页面时,如果session还没有建立,jsp页面会自动建立一个session对象,但是session对象是比较消耗资源的,如果没必要保持和使用session,就不应该创建,比如宣传产品的网站

5、在Servlet和jsp之间能共享session吗?

1)当然可以,代码如下:

HttpSession session = request.getSession(true);

session.putValue("name","jalon");

6、Servlet都有哪些方法?主要作用是什么?

1)init()

在servlet的一生中,只执行一次;在启动服务器或客户首次访问时初始化,以后无论多少客户机访问servlet,都不会重复init()

缺省的init()是符合要求的,也可以覆盖;比如初始化数据库,不过还是要调用super.init()

2)service()

是servlet的核心,每客户机请求一次,就调用一次;其中有doGet()和doPost()方法,如果客户发送get请求就调用doGet(),客 户发送post请求就调用post;因此只需要覆盖do方法,不需要覆盖service()方法

3)destroy()

也仅执行一次,即在服务器停止时执行该方法,

缺省的destroy()是符合要求的,也可以覆盖;比如关闭数据库连接

7、java Servlet的主要功能和作用是什么?

8、request对象的主要方法有哪些?

9、使用jsp连接到数据库连接缓冲池的最好方法是什么?

1)使用JDBC2.0中带有此服务的Driver

2)使用提供有此服务的WEB服务器,(如tomcat,提供了DataSource的实现,连接池的实现;数据源中都包含了数据库连接池的实现),一般程序员都使用这些现成的连接池

3)也可以自己写

10、在jsp中如何写文本文件?

使用PrintWriter对象,如:

<%

String str="write me";

String url="/usr/1.txt";

try{

PrintWrite pw=new PrintWrite(new FileOutputStream(url));

pw.println(str);

pw.close();

}catch(IOException e)

{

out.println(e.getMessage());

}

%>

11、jsp的缺点?

1)不好调试

2)与其他脚本语言的交互

12、在jsp中如何删除一个cookie?

<%

Cookie cook=new Cookie("name","jalon");

cook.setMaxAge(0);//设置有效时长为0;

response.addCookie(cook);

%>

13、如何实现Servlet的单线程模式?

<%@ page isThreadSafe="false" %>

14、说出Servlet和CGI的区别?

servlet处于服务器进程中,只会有一个servlet实例,每个请求都会产生一个新的线程,而且servlet实例一般不会销毁

CGI:来一个请求就创建一个进程,用完就销毁,效率低于servlet

15、Servlet的生命周期?

init(ServletConfig config) 初始化

service() 处理客户的请求和响应

destroy() 销毁

16、介绍一下javax.servlet.Servlet接口及其主要方法?

servlet接口的主要作用是提供servlet生命周期的init()、service()、destroy()方法

17、httpservlet类中的主要方法有哪些?各自的作用是什么?

doGet() doPost() doPut() doDelete() doTrace()

都是处理相应的请求,如get、post、put、delete、trace请求
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: