博主马上要面对几家公司的面试,故自己准备了点面试题,仅供参考!可能有人要说博主前面已经有文章说过了JSP与Servlet,不必再写。但是来面试博主的公司是知道博主只是学了一半,JSP与Servlet是面试重点,故再次准备!
1,静态与动态包含。
答:
<%@include file="xxx.jsp"%>是jsp中的编译指令,包含进来形成一个合体文件再编译。
<jsp:include page="xxx.jsp">是jsp中的动作指令,将结果包含进来。
使用静态包含只会产生一个class文件,而使用动态包含会产生多个class文件
答:
<%@include file="xxx.jsp"%>是jsp中的编译指令,包含进来形成一个合体文件再编译。
<jsp:include page="xxx.jsp">是jsp中的动作指令,将结果包含进来。
使用静态包含只会产生一个class文件,而使用动态包含会产生多个class文件
2,jsp有哪些内置对象?作用分别是什么?
答:
九个内置对象:
pageContext
config,表示一个javax.servlet.ServletConfig对象。该对象用于存取servlet实例的初始化参数
response
exception
out
答:
九个内置对象:
pageContext
config,表示一个javax.servlet.ServletConfig对象。该对象用于存取servlet实例的初始化参数
response
exception
out
page【只在一个页面中保存属性,跳转页面无效】
requet【只在一次请求中保存属性,服务器跳转有效,浏览器跳转无效】
session【在一个会话范围中保存属性,无论何种跳转均有效,关闭浏览器后无效】
application【在整个服务器中保存,所有用户都可以使用】
requet【只在一次请求中保存属性,服务器跳转有效,浏览器跳转无效】
session【在一个会话范围中保存属性,无论何种跳转均有效,关闭浏览器后无效】
application【在整个服务器中保存,所有用户都可以使用】
四个作用域对象:1->2->3->4从小到大的顺序是?
pageContext是内置对象中最重要的一个对象,它代表着JSP页面编译后的内容(也就是JSP页面的运行环境)
3,通过什么对象可以获取八大内置对象?
答:
pageContext代表了JSP页面编译后的内容,理所当然的:它封装了对其他8大内置对象的引用!,
也就是说,通过pageContext可以获取到其他的8个内置对象!
如:
System.out.println(pageContext.getSession());
System.out.println(pageContext.getRequest());
System.out.println(pageContext.getResponse());
答:
pageContext代表了JSP页面编译后的内容,理所当然的:它封装了对其他8大内置对象的引用!,
也就是说,通过pageContext可以获取到其他的8个内置对象!
如:
System.out.println(pageContext.getSession());
System.out.println(pageContext.getRequest());
System.out.println(pageContext.getResponse());
System.out.println(pageContext.getException());
System.out.println(pageContext.getPage());
System.out.println(pageContext.getServletConfig());
System.out.println(pageContext.getServletContext());
System.out.println(pageContext.getOut());
System.out.println(pageContext.getServletConfig());
System.out.println(pageContext.getServletContext());
System.out.println(pageContext.getOut());
4,servlet的输出对象与jsp的输出对象是否是同一类型?
答:
jsp--》JspWriter,
servlet->PringWriter
我们可以简单理解为:JspWriter就是带缓存的PrintWrieter。
答:
jsp--》JspWriter,
servlet->PringWriter
我们可以简单理解为:JspWriter就是带缓存的PrintWrieter。
5,为什么说jsp也是一个servlet?
jsp继承了HttpJspBase,HttpJspBase继承了HttpServlet。
6,写出你常用的JSTL常用标签?
<c:if>,<c:foreach>,<c:choose>,<c:when>
7,JSP是如何被执行的?执行效率比SERVLET低吗?
jsp比servlet多一次翻译。
jsp比servlet多一次翻译。
8,jsp的缺点?
1)不好调试
2)与其他脚本语言的交互(可读性差)
1)不好调试
2)与其他脚本语言的交互(可读性差)
9,什么是servlet?及生命周期?
是在服务器上运行的,用来接受请求并作出响应java程序。
生命周期:实列化一次,初始化一次,服务service多次,销毁一次。
是在服务器上运行的,用来接受请求并作出响应java程序。
生命周期:实列化一次,初始化一次,服务service多次,销毁一次。
10,说出Servlet和CGI的区别?
Servlet处于服务器进程中,只会有一个servlet实例,每个请求都会产生一个新的线程,而且servlet实例一般不会销毁
CGI:来一个请求就创建一个进程,用完就销毁,效率低于servlet
一个是单例,一个是多例
Servlet处于服务器进程中,只会有一个servlet实例,每个请求都会产生一个新的线程,而且servlet实例一般不会销毁
CGI:来一个请求就创建一个进程,用完就销毁,效率低于servlet
一个是单例,一个是多例
11,简述JSP的设计模式?
ModelI,JSP+JavaBean设计模式。
ModelII,MVC设计模式。<----我们一直用的
12,javabean就是java类。
13,你现在用的web服务器是?
答:tomcat。
你的项目放在tomcat是什么目录下?webapps
14,forward和redirect的区别?
答:一个是转发,一个是重定向
转发是requet对象的,重定向是response对象的
答:一个是转发,一个是重定向
转发是requet对象的,重定向是response对象的
15,Servlet的体系结构是什么?
答:Servlet,GenericServlet,HttpServlet,自定义。
答:Servlet,GenericServlet,HttpServlet,自定义。
16,jsp有哪几种元素?
答:html,page指定,表达式,小脚本,声明(就是方法),注释
答:html,page指定,表达式,小脚本,声明(就是方法),注释
17,Servlet中重要的包有那些,有什么区别?
javax.servlet.*;javax.servlet.http.*;
javax.servlet.*;javax.servlet.http.*;