zoukankan      html  css  js  c++  java
  • 第一个Spring MVC程序

    最近公司项目要开始使用Spring MVC替代Struts2了,就学习了一下Spring MVC的使用.这是第一个Spring mvc程序,分别使用xml和注解两种方式.

    一、使用xml格式进行构建

      1、使用SpringMVC,首选需要在web.xml中配置拦截器和过滤器

    <?xml version="1.0" encoding="UTF-8"?>
    <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
             xmlns="http://java.sun.com/xml/ns/javaee" 
             xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" 
             xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
             http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" 
             id="WebApp_ID" version="2.5">
        
        <servlet>
            <!-- hello 这个名字需要和后面的Spring配置文件对应 -->
            <servlet-name>hello</servlet-name>
            <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
            <!-- 设置启动优先级 -->
            <load-on-startup>1</load-on-startup>
        </servlet>
        <servlet-mapping>
            <servlet-name>hello</servlet-name>
            <url-pattern>/</url-pattern>
        </servlet-mapping>
        <!-- filter用来设置编码 -->
        <filter>
            <filter-name>CharacterFilter</filter-name>
            <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
            <init-param>
                <param-name>enconding</param-name>
                <param-value>utf-8</param-value>
            </init-param>
        </filter>
        <filter-mapping>
            <filter-name>CharacterFilter</filter-name>
            <url-pattern>/</url-pattern>
        </filter-mapping>
    </web-app>

    servlet的名字hello,不是随便取的,需要和后面的servlet对应.Filter是编码过滤器.

      2、 在WEB-INF下定义springmvc的配置文件hello-servlet.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xmlns:context="http://www.springframework.org/schema/context"
        xmlns:mvc="http://www.springframework.org/schema/mvc"
        xsi:schemaLocation="http://www.springframework.org/schema/mvc 
        http://www.springframework.org/schema/mvc/spring-mvc-3.1.xsd
        http://www.springframework.org/schema/beans 
        http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/context 
        http://www.springframework.org/schema/context/spring-context-3.1.xsd">
        <!-- 定义一个/welcome ,当请求到/welcome的时候,拦截器进行拦截,然后去调用对应的控制器,进行业务的处理 -->
        <bean id="/welcome" class="com.springmvc.web.WelcomeController"></bean>
        <!-- 定义一个视图  用来处理返回的视图 prefix和suffix分别用来定义视图对应页面的前缀路径和后缀路径  视图返回welcome 对应到的路径便是  /WEB-INF/page/welcome.jsp-->
        <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
            <property name="prefix" value="/WEB-INF/page/"></property>
            <property name="suffix" value=".jsp"></property>
        </bean>
    </beans>

      3、自定义Controller,继承自AbstractController

    package com.springmvc.web;
    
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    import org.springframework.web.servlet.ModelAndView;
    import org.springframework.web.servlet.mvc.AbstractController;
    
    
    //定义一个controller,需要继承AbstractController
    public class WelcomeController extends AbstractController{
    
        @Override
        protected ModelAndView handleRequestInternal(HttpServletRequest arg0,
                HttpServletResponse arg1) throws Exception {
            System.out.println("=========");
            return new ModelAndView("welcome");
        }
    
        
    }

      4、 最后在/WEB-INF/page/下建立welcome.jsp,然后在浏览器访问http://127.0.0.1:8080/Spring_Hello/welcome即可访问.

    二、 利用注解方式编写第一个SpringMVC程序.(这是我们日常开发最常使用的方式)

       1、 同样在web.xml中配置servlet和filter,跟xml方式一样,这里略过

       2、 在hello-servlet.xml中写明注解扫描包和开启注解模式

      在原来的xml的拦截器前面添加两句

    <!-- 配置注解扫描包 -->
        <context:component-scan base-package="com.springmvc.web"></context:component-scan>
        <!-- 开启注解模式 -->
        <mvc:annotation-driven/>

       3、还是要配置InternalResourceViewResolver视图控制,以及添加prefix和suffix属性

       4、写HelloController控制类(这次不需要在hello-servlet.xml中注册,也不需要继承自Spring的controller)

       

    package com.springmvc.web;
    
    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.RequestMapping;
    
    @Controller
    public class HelloController {
        
        @RequestMapping({"/hello","/"})
        public String Hello(){
            return "Hello";
        }
        
        @RequestMapping("/welcome.html")
        public String Welcome(){
            return "welcome";
        }
    }

    调用http://127.0.0.1:8080/Spring_Hello/hello 就能跳转到hello.jsp页面(当然,hello.jsp文件需要先创建)

    调用http://127.0.0.1:8080/Spring_Hello/welcome.html,就可以跳转到welcome.jsp.(不同于刚才调用的welcome,刚才的路径没有.html后缀)

  • 相关阅读:
    Puppet部署
    ldap命令
    openldap slapd.conf参数
    ldap objectclass
    ldap 测试表设计
    Nginx/LVS/HAProxy负载均衡软件的优缺点
    SNAT DNAT MASQUERADE 区别
    iptables常用规则
    Python中文注释报错的解决方法
    用Node.js给邮箱发送邮件
  • 原文地址:https://www.cnblogs.com/Cilimer/p/3993803.html
Copyright © 2011-2022 走看看