java面题1.docVIP

  • 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)

1亿VIP精品文档

相关文档