Servlet方面:
1、说一说Servlet的生命周期 ★★★★★
答:
servlet有良好的生存期的定义,包括加载和实例化、初始化、处理请求以及服务结束。
这个生存期由javax.servlet.Servlet接口的init,service和destroy方法表达。
2、servlet的生命周期
答:
web容器加载servlet,生命周期开始。通过调用servlet的init()方法进行servlet的初始化。
通过调用service()方法实现,根据请求的不同调用不同的do***()方法。
结束服务,web容器调用servlet的destroy()方法。
3、Servlet的基本架构
public class ServletName extends HttpServlet {
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws
ServletException, IOException {
}
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws
ServletException, IOException {
}
}
4、什么情况下调用doGet()和doPost()?
答:Jsp页面中的form标签里的method属性为get时调用doGet(),为post时调用doPost()。
5、如何现实servlet的单线程模式★★
答:<%@page isThreadSafe=false%> 面试中会遇到!
6、页面间对象传递的方法
答:request,session,application,cookie等
7、JSP和Servlet有哪些相同点和不同点,他们之间的联系是什么?
答:JSP是Servlet技术的扩展,本质上是Servlet的简易方式,更强调应用的外表表达。JSP编译后是类servlet。Servlet和JSP最主要的不同点在于,Servlet的应用逻辑是在Java文件中,并且完全从表示层中的HTML里分离开来。而JSP的情况是Java和HTML可以组合成一个扩展名为.jsp的文件。JSP侧重于视图,Servlet主要用于控制逻辑。
8、四种会话跟踪技术(重要考点)★★★★★
答:会话作用域ServletsJSP 页面描述
page是代表与一个页面相关的对象和属性。
一个页面由一个编译好的 Java servlet 类(可以带有任何的 include 指令,但是没有 include 动作)表示。
这既包括 servlet 又包括被编译成 servlet 的 JSP 页面。
request是代表与 Web 客户机发出的一个请求相关的对象和属性。
一个请求可能跨越多个页面,涉及多个 Web 组件(由于 forward 指令和 include 动作的关系)。
session是代表与用于某个 Web 客户机的一个用户体验相关的对象和属性。一个 Web 会话可以也经常会跨越多个客户机请求。
application是代表与整个 Web 应用程序相关的对象和属性。这实质上是跨越整个 Web 应用程序,包括多个页面、请求和会话的一个全局作用域。
9、Servlet执行时一般实现哪几个方法?★★★★★
答:
public void init(ServletConfig config)
public ServletConfig getServletConfig()
public String getServletInfo()
public void service(ServletRequest request,ServletResponse response)
public void destroy()
JSP方面:
1、jsp是如何执行的
答:阶段一:容器要将JSP文件转换成一个对应的servlet类
html(css,java script)--> service方法里,用 out.write输出(write方法会将null转换为 )。
<% Java代码 %> jsp代码片段 --> 把service方法里的内容,照搬过来。
<%= Java表达式 %>也会放到service方法里,使用out.print输出。
<%! %>给Servlet添加新的属性或者新的方法(转成.java文件后,声明内的部分添加在service方法之外)。
这样就把一个JSP变成了一个Servlet容器
注意事项:out.writer方法只能输出简单的字符串,对象是没法输出的。优点是把null自动转换成空字符串输出。
如: <% out.println(new Date()); %> 不能用writer
阶段二:容器会将servlet编译、实例化、初始化、然后执行service方法。(实例化、初始化、就绪、销毁)
2、指令
1)指令是什么
通知容器,在将.jsp文件转换成.java文件时,作一些额外的处理,比如导包。
2)指令的语法
<%@ 指令名称 属性名=属性值 %>
3)page指令
import属性:导包。
例如:<%@page import=java.util.*%>
如: <%@page import=java.util.*, java.text.* %>
contentType属性:设置response.setCharacterEncoding()的内容。
pageEncoding属性:告诉容器JSP文件的编码格式。
如: <%@page contentType=text/html;charset=utf-8 pageEncoding=utf-8 %>
4)如何转发
step1:绑定数据到requset:request里有个HashMap。
request.setAttribute(String name,Object obj);//name:绑定名。obj:绑定值。
另一个方法获取绑定值:
Object request.getAttribute(String name);//如果绑定对象的值不存在,会返回null
step2:获得一个转发器:url:要转发给哪一个Web组件
RequestDispatcher rd=request.getRequsetDispatcher(String url);
step3:转发
rd.forward(request,response);//JSP和Servlet会共享相同的请求和响应对象
step4:在转发的目的地,可以使用request.getAttribute方法获得绑定的数据,然后进行处理。
3 、 jsp 有哪些隐含对象 作用分别是什么 ★★★
答:JSP共有以下9种基本内置组件(可与ASP的6种内部组件相对应):
request 用户端请求,此请求会包含来自GET/POST请求的参数
response 网页传回用户端的回应
pageContext 网页的属性是在这里管理
session 与请求有关的会话期
application servlet 正在执行的内容
out 用来传送回应的输出
config servlet的构架部件
page JSP网页本身
exception 针对错误网页,未捕捉的例外
技术拓展:
java script有11种内置对象:
Array、String、Date、Math、Boolean、Number、Function、Global、Error、RegExp、Object。
4 、 jsp 有哪些动作 作用分别是什么 ★★★★★
答:JSP共有以下6种基本动作
jsp:include:在页面被请求的时候引入一个文件。
jsp:useBean:寻找或者实例化一个JavaBean。
jsp:setProperty