一、总结
1.web项目一定要把引用的jar包放在WEB-INF/lib下(common-logging1.2,spring4.1.6所有包,其实不需要那么多,懒得筛选了,)
2.web.xml中要初始化servlet配置文件,如*-servlet.xml
3.显示声明处理器映射为org.springframework.web.servlet.handler.SimpleUrlHandlerMapping,默认的BeanNameUrlMapping尝试未成功。
二、环境环境
1.我的开发环境(windows+EclipseJee+tomcat6+jdk6),不同的同学可以忽略
2.项目路径图:
三、代码:
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_2_5.xsd" id="WebApp_ID" version="2.5"> <display-name>springmvcDemo</display-name> <welcome-file-list> <welcome-file>index.html</welcome-file> </welcome-file-list> <!-- 本配置文件并没有指定dd-servlet.xml,这是因为DispatcherServlet会自动查找WEB-INF/<servlet-name>-servlet.xml的配置文件 --> <servlet> <servlet-name>servletName</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <!-- 一定要初始化servlet配置文件,不然会报错:Allocate exception for servlet servletName --> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:/zz/config/servletName-servlet.xml</param-value> <!-- <param-value>/WEB-INF/servletName-servlet.xml</param-value> --> </init-param> </servlet> <servlet-mapping> <servlet-name>servletName</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> </web-app>
servletName-servlet.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_2_5.xsd" id="WebApp_ID" version="2.5"> <display-name>springmvcDemo</display-name> <welcome-file-list> <welcome-file>index.html</welcome-file> </welcome-file-list> <!-- 本配置文件并没有指定dd-servlet.xml,这是因为DispatcherServlet会自动查找WEB-INF/<servlet-name>-servlet.xml的配置文件 --> <servlet> <servlet-name>servletName</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <!-- 一定要初始化servlet配置文件,不然会报错:Allocate exception for servlet servletName --> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:/zz/config/servletName-servlet.xml</param-value> <!-- <param-value>/WEB-INF/servletName-servlet.xml</param-value> --> </init-param> </servlet> <servlet-mapping> <servlet-name>servletName</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> </web-app>
IndexController.java
package zz.springmvc.demo; 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 IndexController implements Controller{ // 扩展属性,通过mv—servlet设值注入 public String word; public String getWord() { return word; } public void setWord(String word) { this.word = word; } @Override public ModelAndView handleRequest(HttpServletRequest arg0, HttpServletResponse arg1) throws Exception { System.out.println("lalalala"); return new ModelAndView("index","dataview",word); } }
index.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> </head> <body> ${dataview} </body> </html>
首页:index.html
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Home Page</title> </head> <body> WelCome </body> </html>