1:首先大体知道 SpringMVC 框架的 运行原理(图片来自网络 )

2:SpringMVC 是依照DispatcherServlet 展开的

这里可以约Structs2对比,structs2 是依照过滤器展开的; 下面就用一个 Demo来 搭建一个 SpringMVC,框架;

3:搭建的过程如下:

a:首先将需要的jar包 导入:lib下:

  

b:接下来配置 SpringMVC的 核心DispatcherServlet

  在项目web.xml 下配置:

(这里注意的是:servlet-name [SpMvcDemo]这个命名, 在后面 配置 控制器xml文件时需要 用到!)

c:接下里来创建 控制器xml 文件;

在项目WebContent下 创建xml 文件 ;(重要的是:该文件的 命名规则:[servlet-name]-servlet.xml) 例如这里的项目控制xml 配置命名:SpMvcDemo-servlet.xml

d:接下来在创建的控制xml文件中 (结尾提供源码)

 

  配置 HandlerMapping 按照 benaname 来指定 Contorller 
  创建 bean name=SpmvcDemo.do  映射到 Hellocontroller (处理请求类)

                      d(1):创建发出请求的 jsp 页面 我用的Demo.jsp  简单的 <form>表单提交数据请求:

                        

          d(2):注意这里的 action =“” 在Demo调试的时候 通过 action 来将请求分发到 那个 Controller类中处理请求,同时也由该类做response;

e:接下来创建 Controller 控制类:(此次Demo的Controller是 Hellocontroller  )

创建要求:继承AbstractController重写handleRequestInternal方法(创建的时候 自动重写)

     e(1):在handleRequestInternal方法中:ModelAndView 做response 和 数据的传递:

                          

f:接下来,创建Demo_to.jsp 用来测试 数据的回现(EL 表达式)

              

g:最后配置 ModelAndView 前缀后缀  配置试图解析器!!(在 控制xml 中)

              

实质上就是在为访问的 jsp 页面拼接url,/Demopath/ 在项目中 是个文件夹;方便管理项目;

h:完成 框架的搭建 调试项目吧;

附上源码:

SpMvcDemo-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:mvc="http://www.springframework.org/schema/mvc"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.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.0.xsd"> <!-- 配置 handlerMapping 直接引入一个 类 -->
<bean
class="org.springframework.web.servlet.mvc.support.ControllerBeanNameHandlerMapping"></bean> <!-- 配置 hanlder 分发 Contorller -->
<bean name="/SpmvcDemo.do" class="demo_controller.Hellocontroller"></bean>
<!-- 配置 ModelAndView 前缀后缀 -->
<!-- 配置视图解析器 -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<!-- 前缀 -->
<property name="prefix" value="/Demopath/"></property>
<!-- 后缀 -->
<property name="suffix" value=".jsp"></property>
</bean> </beans>

  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" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
<display-name>SpringMVC_demo</display-name>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<servlet>
<servlet-name>SpMvcDemo</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>SpMvcDemo</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
</web-app>

Hellocontroller.java

package demo_controller;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.AbstractController; import sun.misc.Request; public class Hellocontroller extends AbstractController { @Override
protected ModelAndView handleRequestInternal(HttpServletRequest arg0,
HttpServletResponse arg1) throws Exception {
// TODO Auto-generated method stub String hello = arg0.getParameter("hello");
System.out.println("----:"+hello);
ModelAndView mav = new ModelAndView("Demo_to");
mav.addObject("helloword", "SpringMvc "+hello);
return mav; } }

不喜勿碰,技术有限 ,谢谢点评;一起加油!

Spring Mvc 用Demo去学习的更多相关文章

  1. ContextLoaderListener和Spring MVC中的DispatcherServlet学习

    DispatcherServlet介绍 DispatcherServlet是Spring前端控制器的实现,提供Spring Web MVC的集中访问点,并且负责职责的分派,与Spring IoC容器无 ...

  2. Spring mvc 中 DispatcherServlet 的学习和理解

    上图表示当客户请求来到时,spring架构作出响应的流程,可以从图中看到看到请求分发的中心就是 DispatcherServlet 类,DispatcherServlet的任务是将请求发送给Sprin ...

  3. Spring MVC入门Demo

    1 参考http://blog.csdn.net/haishu_zheng/article/details/51490299,用第二种方法创建一个名为springmvcdemo的Maven工程. 2  ...

  4. Spring Mvc 入门Demo

    1.web.xml配置 <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns=" ...

  5. ContextLoaderListener和Spring MVC中的DispatcherServlet学习 随手记

    Servlet上下文关系 DispatcherServlet的上下文是通过配置servlet的contextConfigLocation来加载的,默认实现是XmlWebApplicationConte ...

  6. 用intellj 建一个spring mvc 项目DEMO

    spring的起初可能经常碰壁,因为网上的资料都是混乱的xml堆成的,混乱难以理解,我这个也是,阿哈哈哈哈! 新建一个Maven->create from archetype->org.j ...

  7. Spring MVC Mock demo

    package com.niwodai.mem.web.controller; import com.alibaba.fastjson.JSON; import org.junit.Before; i ...

  8. Spring MVC 单元测试Demo

    @RunWith(SpringJUnit4ClassRunner.class) @WebAppConfiguration @ContextConfiguration(locations={" ...

  9. spring mvc velocity多视图

    1.ViewResolverUrlBasedViewResolver 这个东西是根据url 进行路由的.网上搜了 1.order 排序,同名出现各种问题 2.XmlViewResolver,BeanN ...

随机推荐

  1. 数据库习题(oracle)

    学生表 Student 字段值分别是 Sid ,Sname ,Sage ,Ssex 教师表 Teacher 字段值分别是 Tid ,Tname 课程表 Course 字段值分别是Cid ,Cname ...

  2. Mac系统-java环境搭建_01

    一.安装jdk 下载地址:http://www.oracle.com/technetwork/Java/javase/downloads/index-jsp-138363.html 1.傻瓜式安装下一 ...

  3. ios GCD简单介绍 后台运行~

    本从实践出发简单说明: 首先,gcd是Grand Central Dispatch的缩写,意为多线程优化技术,是苹果为多核处理优化的技术.使用简单.清晰. 多线程就分同步.异步方法如下: //异步线程 ...

  4. Vuex(二)——关于store

    一.总览 Vuex 应用的核心就是 store(仓库). "store" 包含着应用中大部分的状态(state). 二.Vuex 和单纯全局对象的不同 Vuex 的状态存储是响应式 ...

  5. Python实现二叉树的四种遍历

    对于一个没学过数据结构这门课程的编程菜鸟来说,自己能理解数据结构中的相关概念,但是自己动手通过Python,C++来实现它们却总感觉有些吃力.递归,指针,类这些知识点感觉自己应用的不够灵活,这是自己以 ...

  6. MySQL中字符串与数字比较的坑

    公司项目代码中,某枚举字段数据库表中类型是char(1),在代码中,误以为是TINYINT,所以用数字筛选,后来发现结果不对.发现了一个现象,用数字0筛选会把所有的记录给筛选出来. 经过排查发现是在M ...

  7. 一行code实现ADO.NET查询结果映射至实体对象。

    AutoMapper是一个.NET的对象映射工具. 主要用途 领域对象与DTO之间的转换.数据库查询结果映射至实体对象. 这次我们说说 数据库查询结果映射至实体对象. 先贴一段代码: public S ...

  8. 使用SSH框架查出的实体集合用AJAX形式刷新到页面JOSONArray报异常

    所报异常:net.sf.json.JSONException: java.lang.reflect.InvocationTargetException 问题根源:数据库中查出的日期是java.sql. ...

  9. 32位机器的LowMemory

        今天在和供应商交流的过程中,被严重鄙视了,竟然认为我连"LowMemory"都没有听说过.感觉很郁闷,好歹我也搞过一段时间memory Management,怎么可能连Lo ...

  10. ASP.Net零碎

    ASP.Net零碎 ServerPush 什么是ServerPush,服务器向客户端浏览器“推送”,其实就是“长连接”. 只有浏览器请求服务器端,服务器端才有给浏览器响应数据,不会主动向浏览器推送数据 ...