zoukankan      html  css  js  c++  java
  • 撩课-Java每天5道面试题第17天

    116.说下Struts的设计模式

    MVC模式: 
    web应用程序启动时
    就会加载并初始化ActionServler。
    用户提交表单时,
    一个配置好的ActionForm对象被创建,
    并被填入表单相应的数据,
    ActionServler根据Struts-config.xml文件
    配置好的设置决定是否需要表单验证,
    如果需要就调用ActionForm的Validate()
    验证后选择将请求发送到哪个Action,
    如果Action不存在,
    ActionServlet会先创建这个对象,
    然后调用Action的execute()方法。
    Execute()从ActionForm对象中获取数据,
    完成业务逻辑,
    返回一个ActionForward对象,
    ActionServlet再把客户请求 
    转发给ActionForward对象指定的jsp组件,
    ActionForward对象指定的jsp生
    成动态的网页,返回给客户。

    117.拦截器和过滤器的区别?

    1、拦截器是基于java反射机制的,
    而过滤器是基于函数回调的。
    
    2、过滤器依赖于servlet容器,
    而拦截器不依赖于servlet容器。
    
    3、拦截器只能对Action请求起作用,
    而过滤器则可以对几乎所有请求起作用。
    
    4、拦截器可以访问Action上下文、
    值栈里的对象,而过滤器不能。
    
    5、在Action的生命周期中,
    拦截器可以多次调用,
    而过滤器只能在容器初始化时被调用一次。

    118.struts2框架的核心控制器是什么?它有什么作用?

    1)Struts2框架的核心控制器是
    StrutsPrepareAndExecuteFilter。  
    
    2)作用:  
    
     负责拦截由<url-pattern>/*</url-pattern>
    指定的所有用户请求,
    当用户请求到达时,
    该Filter会过滤用户的请求。
    默认情况下,
    如果用户请求的路径  
    
    不带后缀或者后缀以.action结尾,
    这时请求将被转入struts2框架处理,
    否则struts2框架将略过该请求的处理。  
    
    可以通过常量"struts.action.extension"修改action的后缀,
    如:  
    <constant name="struts.action.extension" value="do"/>  
    如果用户需要指定多个请求后缀,
    则多个后缀之间以英文逗号(,)隔开。
    <constant name="struts.action.extension" value="do,go"/>   

    119.struts2如何访问HttpServletRequest、HttpSession、ServletContext三个域对象?

    方案一:  
    
    HttpServletRequest request =
    ServletActionContext.getRequest();  
    
    HttpServletResponse response =
    ServletActionContext.getResponse();  
    
    HttpSession  session=   
    request.getSession(); 
    
    ServletContext servletContext=
    ServletActionContext.getServletContext();  
    
        
    
    方案二:  
    
    类 implements ServletRequestAware,ServletResponseAware,SessionAware,ServletContextAware  
    
    注意:框架自动传入对应的域对象 

    120.ActionContext、ServletContext、pageContext的区别?

    1)ActionContext是当前的Action的上下文环境,
    通过ActionContext可以
    获取到request、session、ServletContext等
    与Action有关的对象的引用;  
    
    2)ServletContext是域对象,
    一个web应用中只有一个ServletContext,
    生命周期伴随整个web应用;  
    
    3)pageContext是JSP中的最重要的一个内置对象,
    可以通过pageContext获取其他域对象的应用,
    同时它是一个域对象,
    作用范围只针对当前页面,
    当前页面结束时,
    pageContext销毁,  
    
    生命周期是JSP四个域对象中最小的。  
  • 相关阅读:
    angular的uiRouter服务学习(2)
    angular的uiRouter服务学习(1)
    angular学习笔记(三十一)-$location(2)
    angular指令中使用ngModelController
    angular中的表单数据自定义验证
    angular-ngSanitize模块-linky过滤器详解
    angular-1.3 之ng-model-options指令
    angular控制器的执行顺序和服务的注入情况
    angular五种服务详解
    .NET CORE EF 框架调用存储过程
  • 原文地址:https://www.cnblogs.com/gxq666/p/10081142.html
Copyright © 2011-2022 走看看