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页面

posted @ 2016-06-05 18:26  曹嘉琪  阅读(284)  评论(0编辑  收藏  举报