zoukankan      html  css  js  c++  java
  • Java Struts框架的一些问答面试题

    [问答题]谈一下拦截器和过滤器的区别。

      拦截器和过滤器都可以用来实现横切关注功能,其区别主要在于:

      ①拦截器是基于Java反射机制的,而过滤器是基于接口回调的。

      ②过滤器依赖于Servlet容器,而拦截器不依赖于Servlet容器。

      ③拦截器只能对Action请求起作用,而过滤器可以对所有请求起作用。

      ④拦截器可以访问Action上下文、值栈里的对象,而过滤器不能。

    [问答题]Struts2中如何实现I18N?

      首先,为不同语言地区编写不同的资源文件;然后在Struts 2配置文件中配置struts.i18n.custom.resources常量;
      在Action中可以通过调用getText()方法读取资源文件获取国际化资源。


    [问答题] 单例模式常见的应用场景分析。


      在23种设计模式中,单例模式排行老大。虽然理解简单,但是对于应用场景。你真正的熟悉么?使用单例,是由于没必要每个请求都新建一个对象,这样既浪

      费CPU又浪费内存;之所以用多例,是为了防止并发问题;即一个请求改变了对象的状态,此时对象又处理另一个请求,而之前请求对对象状态的改变导致了对象

      对另一个请求做了错误的处理。先来说说Java web中的单例应用场景:数据库连接池就是单例模式,有且仅有一个连接池管理者,管理多个连接池对象。我们常

      用的service和dao层的对象通常都是 单例的(由于其所有的请求都用一个对象来处理),而struts2中的action则是多例,由于每个请求是用一个新的对象来处理的

      (因为action本 身含有请求参数的值,即可改变的状态)。 log4j日志记录也是单例模式,因为从始至终都仅维护一个对象。(应用程序的日志应用,一般都何用单

      例模式实现,这一般是由于共享的日志文件一直处于打 开状态,因为只能有一个实例去操作,否则内容不好追加)

    [问答题]简述拦截器的工作原理以及你在项目中使用过哪些自定义拦截器。

      Struts 2中定义了拦截器的接口以及默认实现,实现了Interceptor接口或继承了AbstractInterceptor的类可以作为拦截器。接口中的init()方法在拦截器被创建

      后立即被调用,它在拦截器的生命周期内只被调用一次,可以在该方法中对相关资源进行必要的初始化。每拦截一个请求,intercept()方法就会被调用一次。

      destory()方法将在拦截器被销毁之前被调用, 它在拦截器的生命周期内也只被调用一次。 项目中使用过的有权限拦截器、执行时间拦截器、令牌拦截器等。

  • 相关阅读:
    Java学习笔记21---内部类之对成员内部类的补充说明(二)(修正)
    Java学习笔记20---内部类之对成员内部类的补充说明(一)
    Java学习笔记19---内部类之简介成员内部类、局部内部类及匿名内部类
    Java学习笔记18---final关键字修饰变量、方法及类
    Java学习笔记17---成员方法的重载与重写
    Java学习笔记16---抽象类与接口的浅显理解
    Java学习笔记15---instanceof与向下转型
    把大端、小端与堆、栈的生长方向联系起来记忆
    2020综合实践—第7次实践作业 03组
    2020综合实践 第6次实践作业 03组
  • 原文地址:https://www.cnblogs.com/fengqiqi/p/6371022.html
Copyright © 2011-2022 走看看