• springMVC


    突然想对springmvc做个简单的整理哈哈~写到后面突然有很多内容,不是一两句话、一两个例子能说清楚,待完善中...

    一、什么是springmvc

      (1)理解

      springmvc是当前的主流的MVC框架,跟struts2类似,虽然struts2是已经是一个成熟的框架,但是随着springmvc后来居上,很多公司都开始用springmvc+spring+mybatis进行开发。struts2开发效率高,但是springmvc性能比struts2好,所以springmvc是比较适用大型的项目开发。其实MVC框架很多内容可以进行类比,所以学了struts2之后再学springmvc也就没那么难。下面的总结可能有些整理的不全面

      (2)原理图

      

    二、spring环境的搭建

    (1)导入相关jar包(可以用maven依赖注入)

    不用annotation:

    commons-logging-1.1.3.jar
    spring-beans-4.2.4.RELEASE.jar
    spring-context-4.2.4.RELEASE.jar
    spring-core-4.2.4.RELEASE.jar
    spring-expression-4.2.4.RELEASE.jar
    spring-web-4.2.4.RELEASE.jar
    spring-webmvc-4.2.4.RELEASE.jar

    用annotation:

    commons-logging-1.1.3.jar
    spring-beans-4.2.4.RELEASE.jar
    spring-context-4.2.4.RELEASE.jar
    spring-core-4.2.4.RELEASE.jar
    spring-expression-4.2.4.RELEASE.jar
    spring-web-4.2.4.RELEASE.jar
    spring-webmvc-4.2.4.RELEASE.jar

    spring-aop-3.1.1.RELEASE.jar

    用maven:

     <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-webmvc</artifactId>
                <version>3.2.8.RELEASE</version>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-tx</artifactId>
                <version>4.2.6.RELEASE</version>
         </dependency>            

    二、web.xml

       DispatcherServlet归根到底就是servlet,所以在web.xml配置DispatcherServlet跟配置servlet一样

    <!DOCTYPE web-app PUBLIC
     "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
     "http://java.sun.com/dtd/web-app_2_3.dtd" >
    <web-app>
        <!-- 显示名称 -->
        <display-name>Archetype Created Web Application</display-name>
        <welcome-file-list>
            <welcome-file>login.jsp</welcome-file>
        </welcome-file-list>
    
        <!-- spring容器配置 -->
        <context-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:applicationContext.xml</param-value>
        </context-param>
        <!-- 监听 -->
        <listener>
            <listener-class>org.springframework.web.context.ContextLoaderListener
            </listener-class>
        </listener>
        <!-- 定义DispatcherServlet,与struts2相似 -->
        <servlet>
            <servlet-name>springmvc</servlet-name>
            <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
            <!-- 服务器一启动,就立刻初始化 DispatcherServlet类 -->
            <load-on-startup>1</load-on-startup>
        </servlet>
        <!-- servlet的映射 -->
        <servlet-mapping>
            <servlet-name>springmvc</servlet-name>
            <!-- 哪些url经过进入给spring-mvc.xml配置 -->
            <url-pattern>*.do</url-pattern>
        </servlet-mapping>
    </web-app>

    三、springmvc-servlet.xml

      这个xml就是对controller的配置,包括如何url访问如何找到对应的controller;controller返回的ModelAndView或者String,如何根据其找到相对应的jsp页面;还有各种各样的配置(比如json、乱码...)下面的代码不是用注解方式

        <!-- 启动自动扫描该包下所有的Bean(例如@Controller) -->
        <!--<context:component-scan base-package="com.team" /> -->
    
        <!-- 配置handlerMapping -->
        <bean
            class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"></bean>
        <!-- 配置handlerAdapter -->
        <bean
            class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"></bean>
    
        <!-- 定义视图解析器 -->
        <bean
            class="org.springframework.web.servlet.view.InternalResourceViewResolver">
            <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"></property>
            <!-- 前缀 -->
            <property name="prefix">
                <value>/WEB-INF/view/</value>
            </property>
            <!-- 后缀 -->
            <property name="suffix">
                <value>.jsp</value>
            </property>
        </bean>
        <!-- 配置请求和处理器 -->
        <bean name="/hello.do" class="com.team.controller.HelloController"></bean>

    四、controller

       对于controller有多种实现方法,注解的方式比较多,后面再对注解进行详细写

    public class HelloController implements Controller{
    
        @Override
        public ModelAndView handleRequest(HttpServletRequest req,
                HttpServletResponse resp) throws Exception {
            ModelAndView mv = new ModelAndView();
            mv.addObject("msg", "hello springmvc");
            mv.setViewName("hello");//设置跳转的页面的名字
            return mv;
        }
    
    }

    五、jsp页面

      通过${msg}就能将对应的数据显示出来

    六、访问的路径:http://localhost:8080/项目名/hello.do   就可以访问到对应的/WEB-INF/view/hello.jsp对应的jsp页面

  • 相关阅读:
    349. Intersection of Two Arrays
    346. Moving Average from Data Stream
    345. Reverse Vowels of a String
    344. Reverse String
    342. Power of Four
    POJ2823 Sliding Window
    《STL源码剖析》笔记
    [jobdu]扑克牌顺子
    [jobdu]第一个只出现一次的字符
    [jobdu]包含min函数的栈
  • 原文地址:https://www.cnblogs.com/jackeicao/p/5561324.html
Copyright © 2020-2023  润新知