Java实习面试经验一

Java大三实习面试经验

由于在春招大厂面试时不给力,只能靠在BOSS直聘、拉钩等网址投简历,正好学校有个毕业招聘会,过去面试了Java的后台开发,以下是面试的一些问题,分享出来,大家可以借鉴下。

  • SpringBoot和SpringMVC区别

    类比来看:
    spring boot 相当于 腾讯的 Wegame,里面装了自家的各种游戏 如 spring data 、spring mvc……
    你通过 We game 可以轻松 快速 安装、使用(引入、整合)Wegame旗下的游戏

    springmvc与springboot的联系和区别:

    联系:
    Spring最初利用工厂模式(DI)和代理模式解耦应用组件,为了解耦开发了springmvc;而实际开发过程中,经常会使用到注解,程序的样板很多,于是开发了starter,这套就是springboot。
    
    区别:
    1.springboot是约定大于配置,可以简化spring的配置流程;springmvc是基于servlet的mvc框架,个人感觉少了model中的映射。
    2.以前web应用要使用到tomat服务器启动,而springboot内置服务器容器,通过@SpringBootApplication中注解类中main函数启动即可。例如:
    
  • 拦截器和过滤器区别

    ①拦截器是基于java的反射机制的,而过滤器是基于函数回调。
    ②拦截器不依赖与servlet容器,过滤器依赖与servlet容器。
    ③拦截器只能对action请求起作用,而过滤器则可以对几乎所有的请求起作用。
    ④拦截器可以访问action上下文、值栈里的对象,而过滤器不能访问。
    ⑤在action的生命周期中,拦截器可以多次被调用,而过滤器只能在容器初始化时被调用一次。
    ⑥拦截器可以获取IOC容器中的各个bean,而过滤器就不行,这点很重要,在拦截器里注入一个service,可以调用业务逻辑。
    
    过滤器使用场景:
    比如:过滤掉非法url(不是login.do的地址请求,如果用户没有登陆都过滤掉),或者在传入servlet或者 struts的action前统一设置字符集,或者去除掉一些非法字符。
    1、日志记录:记录请求信息的日志,以便进行信息监控、信息统计、计算PV(Page View)等。
    2、权限检查:如登录检测,进入处理器检测检测是否登录,如果没有直接返回到登录页面;
    3、性能监控:有时候系统在某段时间莫名其妙的慢,可以通过拦截器在进入处理器之前记录开始时间,在处理完后记录结束时间,从而得到该请求的处理时间(如果有反向代理,如apache可以自动记录);
    4、通用行为:读取cookie得到用户信息并将用户对象放入请求,从而方便后续流程使用,还有如提取Locale、Theme信息等,只要是多个处理器都需要的即可使用拦截器实现。
    5、OpenSessionInView:如hibernate,在进入处理器打开Session,在完成后关闭Session。
    
    拦截器使用场景:
    拦截未登录用户等
    

    filter Interceptor
    多个的执行顺序 根据filter mapping配置的先后顺序 按照配置的顺序,但是可以通过order控制顺序
    规范 在Servlet规范中定义的,是Servlet容器支持的 spring容器内的,是Spring框架支持的。
    使用范围 只能用于Web程序中 既可以用于Web程序,也可以用于Application、Swing程序中。
    深度 Filter在只在Servlet前后起作用 拦截器能够深入到方法前后、异常抛出前后等
  • 面试官:“当使用过滤器时,此时Spring还没有注入bean,过滤时怎么进行业务操作?”

    答:“不使用过滤器,使用Interceptor”

    问:“如果一定要使用过滤器呢”

    答:“母鸡”

    后来经过查询,其实原理很简单,具体如下:

    • 解决Filter不能注入Spring 的bean问题

      来自博客https://blog.csdn.net/Evan_QB/article/details/82894834

      我们都知道Filter的优先级大于Servlet,而springMVC又是基于Servlet来进行注入bean的,所以这就导致了Filter无法注入bean

      接下来我们进行配置Filter,在web.xml中有:

  • 4
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值