• spring跟springMVC两个框架什么关系?


    SpringMVC是个啥?

    springmvc是一种基于Java实现MVC模型的 请求驱动类型的 轻量级web框架,和spring一样,又是个框架。不过这个框架只用在web层,就是之前spring经典三层架构的控制层,也叫表现层。spring的学习可以参考牛奶:Spring是个啥?

    Spring MVC的本质就是一个servlet,是对原生的servlet进行了封装,有了更多功能。

    MVC模型是个啥?

    MVC代表:Model View Controller 模型-视图-控制器。主要是为了将表现层的业务逻辑、数据、显示,进行分离的方法来组织代码。

    model: 提供要展示的数据,也负责数据状态更新等功能。主要就是处理数据的代码。

    view:就是用户界面。(指html等文件构成的前端页面)

    controller:接收用户请求,然后传给model处理,处理完再靠controller返回view。

    应该相当于controller在中间,上面是view负责展示,下面是model负责处理。

    注意:表现层的业务逻辑和三层结构业务层中的逻辑不太一样(往后看),这里 controller和经典三层架构中的 controller层也不一样,三层架构的 controller是接口层或者说表现层,它里面包含MVC中的 controller控制器层。(吐槽下: controller层包含 controller层,嘿,还挺绕,这谁瞎起的名字)

    servlet是个啥?

    字面意思来看:servlet是Server Applet的简写, Applet是小应用程序的意思,servlet即服务的小应用程序,也是JavaServlet的简称,即用Java编写的服务器端程序。

    狭义的Servlet是指Java语言实现的一个接口,广义的Servlet是指任何实现了这个Servlet接口的类,一般是指实现类(有时也叫Action)。在比如springMVC中DispatcherServlet()方法实现了Servlet接口。所以说SpringMVC的核心组件DispacterServlet其实本质是一个Servlet。

    Servlet这个类中没有main()方法,所以不能独立运行,其运行主要靠servlet容器--Tomcat服务器 执行。因此在实际配置中一定先要把servlet配置到服务器中。在springmvc中Tomcat负责加载和调用DispatcherServlet。

    Struts2是个啥?

    也是一个基于MVC设计模式的框架,功能和springmvc差不多,但springmvc继承并优化了它。

    那servlet在其实现类中有什么内容?主要做什么?

    有很多方法,其中主要方法有:

    (1)init()方法,负责初始化Servlet对象,一般只执行一次。

    (2)service()方法、doGet()和doPost()方法。这三个是用来处理请求的,service()的优先级最高,在没有时才用后面两个处理。

    (3)destroy ( )方法。当Servlet对象退出生命周期时,负责释放占有的资源。

    Tomcat是什么?它和servlet是什么关系?

    Tomcat 是一个免费的开放源代码的Web 应用服务器。 Web服务器的所做的工作本质上是:将某个主机上的资源映射为一个URL供外界访问。

    它负责给servlet提供一个运行的环境,所以也叫servlet容器。像servlet实现类中的HttpServletRequest对象等就是Tomcat提供的。servlet相当于Tomcat中的一个小应用程序,不直接面向用户,而是靠Tomcat和用户交互。

    怎么使用SpringMVC?

    有xml配置文件开发和注解开发,现在多用注解开发,不过网上的xml文件和代码直接开发还是蛮多的,刚开始看的我有点懵。

    注解开发大致过程如下:

    (1)首先配置文件里面导入spring-webmvc的jar包。

    (2)创建一个表现层的类(开头加注解@Controller即可,就会自动继承Controller接口)。在里面方法上方可加@RequestMapping()显示映射路径,@ResponseBody表示以下方法用于响应请求。

    (3)在spring配置文件中把表现层的类作为一个bean加入。

    (4)还要创建一个servlet容器的配置文件,来加载springMVC的核心配置,保证加载服务器后能够使用Springmvc,并且设定以后哪些请求由springmvc来处理。(这里注意表现层还要有一个springmvc的单独服务器配置文件)J配置文件里的配置类直接继承AbstractDispatcherServletInitializer()父类来进行实现。其中的getServletMapping()方法能够决定哪些请求交给springmvc处理。

    注意:不是所有的bean都是spring管的。springmvc管理表现层的bean,spring管理service层和DAO层的bean,因此在配置的时候需要注意把他们分开,注意配置时各自扫描bean的范围。不过后期又通过一些手段不区分了,都放在一起了。

    参考链接:springmvc配置步骤

    MVC三层到底是怎么体现出来的?(仍有疑问)

    暂时参考一下springmvc的五大组件,它们的设计可能遵从MVC设计模式。只是后来简化成注解开发后不容易理解了。

    参考链接:SpringMVC--1--SpringMVC的五个组件

    什么是springmvc拦截器Interceptor?有什么用?

    是一种动态拦截 方法调用 的机制。springmvc的拦截器主要就是拦截对于表现层(主要是带有@Controller注解的类)的类中的方法了。在这个方法前后执行一些代码,或者阻止其中一些方法的执行。

    什么是过滤器?有什么用?

    它是servlet中的一种技术。对web服务器管理的所有web资源:例如静态图片、文件或静态 html 文件等进行拦截,从而实现一些特殊的功能。例如实现URL级别的权限访问控制、过滤敏感词汇、压缩响应信息等一些高级功能。

    更具象的来说:ServletAPI中提供了一个Filter接口,对这个接口进行实现就可以进行过滤。

    过滤器和拦截器有什么区别?

    (1)一个是servlet的,一个时springmvc的。

    (2)过滤器能过滤所有的表现层方法。拦截器只能拦截它配置文件设定的访问路径对应的方法。

    一般怎样实现拦截器?

    (1)在表现层创建一个类文件,它实现HandleInterceptor接口对应方法。这里面写拦截的时候要干什么。

    (2)创建一个拦截器配置类文件(注意和spring配置文件、springmvc配置文件区分),同样实现对应的配置接口,来确定拦截哪个请求。这个拦截器配置类可以整合到了springmvc配置类文件中了。

    (3)在springmvc配置类文件中加载这个拦截器配置类。

    注意:多个拦截器时,在配置文件中设置拦截顺序。如果第一个拦截器没有通过,后续的便都不会执行。

  • 相关阅读:
    C语言:表达式求值详解
    机器学习:决策树
    CSS - 移动端布局(二)移动端适配
    1547_AURIX_TC275_CPU子系统_数据存储接口
    软件测试面试,一定要准备的7个高频面试题(附答案,建议收藏)
    go实现剑指offer
    免费无版权可商用资源|自媒体创业者、设计师、电商商家必备
    【Matplotlib绘制图像大全】(二十二):Matplotlib绘制气泡图
    专注于linux
    (51)性能测试中监控
  • 原文地址:https://blog.csdn.net/xhbzl/article/details/126691562