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

第一份:
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请求





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值