1. 什么是Servlet?

    答:可以从两个方面去看Servlet:

  2. Servlet的生命周期,并说出Servlet和CGI的区别?

    答:servlet有良好的生存期的定义,包括加载和实例化、初始化、处理请求以及
    服务结束。
    这个生存期由javax.servlet.servlet接口中的init、service、destroy方法表达。
    web容器加载servlet,生命周期开始。通过调用servlet的init()方法进行servlet
    的初始化。通过调用service()方法实现
    根据请求的不同调用不同的do**()方法。结束服务,web容器调用servlet的
    destroy()方法。

    区别:
    Servlet处于服务器进程中,它通过多线程运行service()方法,一个实例可以服
    务于多个请求,并且实例一般不会被销毁;而CGI对每个请求都产生一个新的进

  3. Servlet API中forware()和redirect()的区别?
    答:
    a、浏览器显示
    重定向会改变URL地址,请求转发不会改变URL地址。
    b、资源共享
    重定向不可以资源共享,请求转发可以。
    c、功能
    重定向可以用URL绝对路径访问其他Web服务器的资源,而请求转发只能在一个
    Web应用程序内进行资源转发,即服务器内部的一种操作。
    d、效率
    重定向效率低,相当于再一次请求;请求转发效率相对较高,跳转仅发生在服务
    器端。

  4. request.getParameter()和request.getAttribute()的区别?

    答:
    a、request.getParameter()获取的类型是String;
    request.getAttribute()获取的类型是Object

    b、request.getPrameter()获取的是POST/GET传递的参数值和URL中的参数;
    request.getAttribute()获取的是对象容器中的数据值/对象

    c、request.setAttribute()和request.getAttribute()可以发送、接收对象;
    request.getParamter()只能接收字符串,官方不开放request.setParamter()
    (也就是没有这个方法)

    setAttribute()和getAttribute()的传参原理:
    setAttribute()是应用服务器把这个对象放在该页面所对应的一块内存中去,当
    你的页面服务器重定向到另外一个页面时,
    应用服务器会把这块内存拷贝到另一个页面所对应的那块内存中。这个就可以通
    过getAttribute()获取到相应的参数值或者对象。

  5. JSP有哪些内置对象?作用分别是什么?

    答:JSP一共有9个内置对象:

    request:负责得到客户端请求的信息,对应类型:
    javax.servlet.http.HttpServletRequest

    response:负责向客户端发出响应,对应类型:
    javax.servlet.http.HttpServletResponse

    session:负责保存同一客户端一次会话过程中的一些信息,对应类型:
    javax.servlet.http.httpsession

    out:负责管理对客户端的输出,对应类型:javax.serlvet.jsp.jspwriter

    application:表示整个应用环境的信息,对应类型:
    javax.servlet.servletcontext

    config:表示ServletConfig,对应类型:javax.servlet.servletconfig

    exception:表示页面中发生的异常,可以通过它获得页面异常信息,对应类型:
    java.lang.exception

    pagecontext:表示这个JSP页面上下文,对应类型:
    javax.servlet.jsp.pagecontext

    page:表示当前JSP页面本身。

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐