SpringMVC简单配置

1、pom.xml配置

<dependencies>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>5.1.12.RELEASE</version>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <!-- 配置Maven的JDK编译级别 -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.2</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                    <encoding>UTF-8</encoding>
                    <!-- 通过反射获取方法参数时,需要设置以下参数才能保证获取到的方法参数是有意义的 -->
                    <compilerArgs>
                        <arg>-parameters</arg>
                    </compilerArgs>
                </configuration>
            </plugin>
            <!-- 配置tomcat7插件,不需要安装本地tomcat -->
            <plugin>
                <groupId>org.apache.tomcat.maven</groupId>
                <artifactId>tomcat7-maven-plugin</artifactId>
                <version>2.2</version>
                <configuration>
                    <port>80</port>
                    <path>/</path>
                </configuration>
            </plugin>
        </plugins>
    </build>

2、web.xml

<servlet>
        <servlet-name>DispatcherServlet</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:springmvc.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>

    <servlet-mapping>
        <servlet-name>DispatcherServlet</servlet-name>
        <!--
        方式一:带后缀,比如 *.action 、 *.do
        方式二:/ 不会拦截 .jsp,但是会拦截 .html等静态资源(静态资源是指除了servlet、jsp之外的
               js、css、png等)
               为什么配置 / 就会拦截静态资源?
               因为Tomcat容器中也有一个web.xml(父),你的项目中也有一个web.xml(子),是一个继承关系,
               父web.xml中有一个DefaultServlet,url-pattern 是一个 / ,此时我们自己的web.xml也
               配置了一个 / ,覆盖了web.xml的配置。
               为什么不拦截 .jsp 呢?
               因为父web.xml中有一个 JspServlet,这个servlet拦截了 .jsp文件,而我们没有复写这个配置,
               所以springmvc不会拦截.jsp,而是交给了tomcat处理。
        方式三:/* 会拦截所有的请求
        -->
        <url-pattern>/</url-pattern>
    </servlet-mapping>

3、springmvc.xml

<context:component-scan base-package="com.deppon"/>

    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/WEB-INF/jsp/"></property>
        <property name="suffix" value=".jsp"></property>
    </bean>

    <mvc:annotation-driven/>

    <!--静态资源配置,方案-->
    <!--
        原理:添加该标签配置之后,会在SpringMVC上下文中定义一个DefaultServletHttpRequestHandler对象,
        这个对象如同一个检查人员,对进入DispatcherServlet的url请求进行过滤筛查,如果发现一个静态资源请求,
        那么会把请求转由web应用服务器(tomcat)默认的DefaultServlet来处理,如果不是静态资源请求,那么继续
        由SpringMVC请求处理
    -->
    <mvc:default-servlet-handler/>

4、处理类

@Controller
@RequestMapping("/demo")
public class TestController {

    @RequestMapping("/handler")
    public ModelAndView test(){
        Date date = new Date();
        ModelAndView modelAndView = new ModelAndView();
        modelAndView.addObject("date",date);
        modelAndView.setViewName("success");
        System.out.println("---------" + modelAndView.getClass());
        return modelAndView;
    }

    @RequestMapping("/handler1")
    public String handler1(Map<String,Object> map){
        Date date = new Date();
        map.put("date",date);
        System.out.println("---------" + map.getClass());
        return "success";
    }

    /**
     * class org.springframework.validation.support.BindingAwareModelMap
     */
    @RequestMapping("/handler2")
    public String handler1(ModelMap map){
        Date date = new Date();
        map.put("date",date);
        System.out.println("---------" + map.getClass());
        return "success";
    }

    @RequestMapping("/query")
    public String query(User user){
        System.out.println("-----name-------" + user.getName());
        System.out.println("______id________" + user.getAge());
        Date date = new Date();
        ModelMap map = new ModelMap();
        map.put("date",date);
        return "success";
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值