- 4
- 0
- 约13.11万字
- 约 34页
- 2016-12-08 发布于河南
- 举报
java面题1
java面试题1
1,servlet与jsp的区别
Servlet的缺陷(JSP出现的原因):
1)写静态页面必须部署后才能看到效果,很难控制页面的外观。
2)从技术角度来说Servlet是Java代码和HTML静态代码的混合代码。
3)从市场竞争角度来说,微软推出了ASP产品。
JSP的改进:
1)JSP是标签式的文本文件(区Servlet是Java文件)
2)JSP不需要编译(其实是由服务器监测JSP文件的变化,再将其翻译成 Servlet 代码)
服务器对其进行编译并在第一次请求时创建一个Servlet实例。所以,第一次访问JSP页面时会后延迟
3)JSP不用写配置文件
4)JSP以静态代码为主,Java代码为辅。Servlet反之。
5)是J2EE蓝图的一部分(Servlet、JSP以及EJB是J2EE的三大组件)
JSP从本质上来说内核还是Servlet,但与Servlet不是替代关系而是一种互补的关系。
JSP适合于写显示层的动态页面,而Servlet则适合写控制层的业务控制(页面转发)。
JSP往纯标签方向发展,Servlet往纯代码方向发展,他们以Servlet内核(请求响应式的工作方式)往两个方向发展。
2, 问:能否在JSP脚本里定义方法?
答:不能! //脚本相当于方法,不能在方法里定义方法
%!public void helloworld(){}% //可以声明方法
% public void helloworld(){}% //编译出错;脚本不能定义方法
3,JSP的动作包括:
forward、include、useBean、setProperty、getProperty
jsp:include 包含的不是uri本身,而是uri响应,静态页面没有什么关系,动态页面可以传递参数。
4,
JSP的生命周期
1) 每一个JSP都会对应有一个servlet生成
2) 在 %tomcat%/work/Catalina/localhost/工程名/org/apache/jsp 目录下可找到对应生成的 Servlet 文件
3) 一般而言,每一个JSP对应的servlet都有如下的生命周期方法:
一、 _jspInit()方法
JSP容器第一次装载jsp文件时调用一次
public void _jspInit(){……}
二、 _jspService()方法
每当服务器接收到对该jsp的请求,都需要调用一次该方法一次。
public void _jspService(HttpServletRequest request, HttpServletResponse response)
throws java.io.IOException, ServletException { ……}
三、 _jspDestroy()方法
jsp文件被修改时,JSP容器会销毁旧的jsp文件对应的对象,重新装载一次更新后的jsp文件的内容(只调用一次)。
public void _jspDestroy(){……}
过滤器并不能创建响应,但它可以“过滤”传给 servlet 的请求,还可以“过滤”从 servlet发送到客户端的响应;
它不仅能处理静态内容,还可以处理动态内容。换而言之,filter 其实是一个“servlet chaining”(servlet 链)。
一个 filter 包括:
web。xml
filter
filter-namestruts/filter-name
filter-classorg.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter/filter-class
/filter
filter-mapping
filter-namestruts/filter-name
url-pattern/*/url-pattern
/filter-mapping
欢迎主页面
welcome-file-list
welcome-fileindex.jsp/welcome-file
/welcome-file-list
1) 在 servlet 被调用之前截获;
2) 在 servlet 被调用之前检查 servlet request;
3) 根据需要修改 request 头和 request 数据;
4) 根据
原创力文档

文档评论(0)