MyEclipse建立一个J2EE Web项目,导入架包,包括apache的commons-logging.jar
编写web.xml
先定义Servlet名字和 class load-on-startup 是设置是否 开启Tomcat容器时加载。index.jsp springmvc org.springframework.web.servlet.DispatcherServlet 1 springmvc *.do
servlet-mapping 是设置 遇到 什么情况把这个请求交给xxServelt处理
spring配置文件放在WEB-INF下,命名规则是 DispatcherServletName-servlet.xmlHandlerPapper是解析Url的,Handler Adapter 是解析URL后分配给 对应的 Controller(Action)处理的。 springmvc 的各种配置在 官方文档的 The Web都有具体的例子。
渲染器是 处理ModelAndView这类信息的。
结果视图的前缀 就是 映射到的 View的前面一半的路径,后缀就是后面一半的路径了。
最后一项配置是 URL到 Controller的映射。
HelloControlller.java
package cn.han.controller;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.springframework.web.servlet.ModelAndView;import org.springframework.web.servlet.mvc.Controller;public class HelloController implements Controller { public ModelAndView handleRequest(HttpServletRequest req, HttpServletResponse resp) throws Exception { // TODO Auto-generated method stub ModelAndView mv=new ModelAndView(); mv.addObject("msg", "hello spring mvc!"); mv.setViewName("hello");///WEB-INF/jsp/hello.jsp return mv; }}
ModelAndView返回给Dispatcher处理交给渲染器处理 后最后 返回 回客户端。
hello.jsp在/WEB-INF/jsp下面
<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%><%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%>${msg}将会被渲染器替换,因为ModelAndView里面有设置。My JSP 'Hello.jsp' starting page This is my JSP page. ${msg}