如图为SpringMVC工作的流程图
和大多数的webMVC框架一样, 请求驱动, 通过派遣, 控制器, 和提供其他的方法来对web应用进行开发
在SpringMVC中, DispatcherServlet就充当着FrontController的职责
从名字上看, DispatcherServlet是一个servlet, 而且事实上, 它确实是一个servlet, 因此在web开发中需要在web.xml对它进行配置, 配置代码如下:
SpringMVC
org.springframework.web.servlet.DispatcherServlet
1
SpringMVC
/
上述DispatcherServlet初始化中, SpringMVC默认会自动寻找一个在web-inf目录下的名为[servletName]-servlet.xml(也就是SpringMVC-servlet.xml)的配置文件,因此我们需要自行创建一个xml文件, 如果你不想按照默认的来加载配置文件,你也可以自己通过servlet初始化参数(init-param)来自行指定配置加载方式
自定义具体参数定义如下:
配置格式如下:
在相应的DispatcherServlet添加如下初始化参数:
这里以改变配置文件的命名空间为例:
namespace
HelloWorld_servlet
改变之后, 服务器启动时加载的配置文件不再是默认的了, 而是改变后名为
HelloWorld_servlet.xml文件
配置完DispatcherServlet后就可以开始进入下一个环节了, 建立controller,
以下为例:
package com.wenj.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
@Controller
public class HelloWorldController {
@RequestMapping(value = "/helloWorld")
public String helloWorld(Model model) {
model.addAttribute("helloWorld", "Hello World!");
return "hello";
}
}
这里是采用注解的方式,
@Controller表明这是一个Controller
@RequestMapping 进行url的匹配
Model表示的是Controller处理返回的模型对象,
return回来的是视图jsp的名称, 如: ‘hello.jsp’
也可以改为如下处理代码
@RequestMapping(value = "/helloWorld")
public ModelAndView helloWorld() {
ModelAndView mv = new ModelAndView();
mv.addObject("helloWorld", "Hello World!");
mv.setViewName("hello");
return mv;
}
ModelAndView类别就如其名称所示,是代表了MVC Web程序中Model与View的对象,不过它只是方便您一次返回这两个对象的holder,Model与View两者仍是分离的概念。
PS:这里以我的配置文件SpringMVC-servlet.xml为例
代码如下:
配置完毕
/**********hello.jsp**********/
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
HelloWorld Page
${helloWorld}
在Spring中的xml配置文件添加如下代码:
全部工作准备完毕!
还差一步, 启动服务器, 打开浏览器, 输入如下URL:
http://localhost:8080/SpringMVC/helloWorld
确认,你会看到网页输出:
HelloWorld!