zoukankan      html  css  js  c++  java
  • SpringMVC基础——一个简单的例子

    一、导入 jar 包

    二、配置 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>/WEB-INF/springmvc-servlet.xml</param-value>
      </init-param>
    </servlet>
    <servlet-mapping>
      <servlet-name>dispatcherServlet</servlet-name>
      <url-pattern>*.action</url-pattern>
    </servlet-mapping>

    说明:

    配置了 SpringMVC 的核心处理器类 org.springframework.web.servlet.DispatcherServlet ,其中 url-pattern 指定了要过滤的请求。

    需要注意的是:DispatcherServlet 默认加载 /WEB-INF/servletName-servler.xml 的 SpringMVC Config 文件,可以通过初始化参数修改其位置和名称。

    三、添加 SpringMVC Config 文件(springmvc-servlet.xml)

    <context:component-scan base-package="com.nucsoft.springmvc.handler"/>
    
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
      <property name="prefix" value="/WEB-INF/views/"/>
      <property name="suffix" value=".jsp"/>
    </bean>

     说明:

    (1)指定要扫描的基包

    (2)指定视图解析器:prefix + viewName + suffix

    四、添加目标类

    /**
     * @author solverpeng
     * @create 2016-08-01-19:19
     */
    @Controller
    public class HelloWorldHandler {
    
        @RequestMapping("/hello")
        public String hello() {
            System.out.println("hello world...");
            return "hello";
        }
    
    }

    说明:

    (1)请求处理类必须在 IOC 容器中

    (2)@RequestMapping 用来映射请求,其中 value 属性指定映射的 url。可以作用类上,相当于 namespace 的作用。

    (3)返回值最终会被解析为 ModelAndView 对象。结合视图解析器,返回到视图。

    五、SpringMVC 作为一个表示层的框架,是继 Stuts2 之后的又一个优秀的框架,且有 Spring 整个体系作用支撑,使用起来感觉更加的优雅。

    学习 SpringMVC时,要明白它的核心处理器,以及表示层要解决的问题,

    如:获取原生的Servlet资源问题、映射问题、参数获取问题、模型注入问题、格式化问题、数据校验问题、返回值处理问题、视图渲染问题、防止表单重复提交问题、文件上传下载问题等等。

    以及 SpringMVC 整个的运行流程,以及请求的生命周期问题。能否通过自定义的方式来实现我们想要但是 SpringMVC 还没有解决的问题。

    对比于 Struts2,有什么优点、缺点。

    想要学会 SpringMVC ,需要真正弄懂上述这些问题。

  • 相关阅读:
    来自平时工作中的javascript知识的积累---持续补充中
    javascript function
    CSS3 3D变换
    HTTP1.1缓存策略
    jQuery插件开发
    mac下好用的工具收录(慢慢完善)
    mac 彻底卸载vscode
    Git冲突:commit your changes or stash them before you can merge. 解决办法(转载)
    关于vscode使用的一些设置
    (linux服务器)apache开启gzip的配置以及效果对比
  • 原文地址:https://www.cnblogs.com/solverpeng/p/5727185.html
Copyright © 2011-2022 走看看