(二)Spring MVC 环境搭建
Spring MVC环境的搭建很简单,只需要以下几个步骤就能成功运行。
一、导包
1、添加Spring的核心包

2、添加Spring MVC的核心包

3、JSTL的两个包

二、在WEB-INFO/web.xml中配置前端控制器DispatcherServlet
1 <?xml version="1.0" encoding="utf-8"?> 2 <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" 3 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"> 4 <display-name>DispatcherServlet</display-name> 5 <servlet> 6 <!-- 把Spring MVC框架中的 前端控制器配置进来--> 7 <servlet-name>DispatcherServlet</servlet-name> 8 <!-- 这个就是指向我们要注册的servlet 的类地址, 要带包路径 --> 9 <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 10 <init-param> 11 <!-- 初始化spring的配置文件,会去加载相应的xml,而不会去加载/WEB-INF/下的applicationContext.xml --> 12 <param-name>contextConfigLocation</param-name> 13 <!-- 指定具体的配置文件为applicationContext.xml,当前的servlet用它来创建上下文--> 14 <param-value>classpath:/resources/applicationContext.xml</param-value> 15 </init-param> 16 <!-- 在启动的时候就加载这个servlet,数字1-5为servlet的启动顺序,1为最高--> 17 <load-on-startup>1</load-on-startup> 18 <!-- load-on-startup必须放在最后 --> 19 </servlet> 20 21 <!-- 用来配置我们注册的组件的访问路径 --> 22 <servlet-mapping> 23 <!-- 指定配置的是哪个servlet --> 24 <servlet-name>DispatcherServlet</servlet-name> 25 <!-- 指定拦截哪些请求到该servlet --> 26 <url-pattern>/</url-pattern> 27 </servlet-mapping> 28 </web-app>
三、在Resource下配置applicationContext.xml
1 <?xml version="1.0" encoding="UTF-8"?> 2 <beans xmlns="http://www.springframework.org/schema/beans" 3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 4 xmlns:mvc="http://www.springframework.org/schema/mvc" 5 xmlns:context="http://www.springframework.org/schema/context" 6 xmlns:aop="http://www.springframework.org/schema/aop" 7 xmlns:tx="http://www.springframework.org/schema/tx" 8 xsi:schemaLocation="http://www.springframework.org/schema/beans 9 http://www.springframework.org/schema/beans/spring-beans.xsd 10 http://www.springframework.org/schema/mvc 11 http://www.springframework.org/schema/mvc/spring-mvc.xsd 12 http://www.springframework.org/schema/context 13 http://www.springframework.org/schema/context/spring-context.xsd 14 http://www.springframework.org/schema/jee 15 http://www.springframework.org/schema/jee/spring-jee.xsd 16 http://www.springframework.org/schema/aop 17 http://www.springframework.org/schema/aop/spring-aop.xsd 18 http://www.springframework.org/schema/tx 19 http://www.springframework.org/schema/tx/spring-tx.xsd"> 20 21 <!-- 配置处理器适配器HandlerAdapter --> 22 <!-- 这个适配器能执行实现了Controller接口的Handler,现在配置了这个适配器的话,所有的处理器Handler必须要实现Controller接口才行 --> 23 <bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter" /> 24 25 <!-- 配置Handler 就是我们写的Controller --> 26 <bean name="/queryname" class="com.springmvc.practice.HelloWorldController" /> 27 28 <!-- 配置处理器映射器HandlerMapping --> 29 <!-- 将bean的name作为url进行查找,需要在配置Handler时指定beanname(就是url) --> 30 <bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping" /> 31 32 <!-- 配置视图解析器ViewResolver --> 33 <!-- 进行jsp解析,默认使用jstl标签,classpath下得有jstl的包 --> 34 <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> 35 <!-- 前缀 --> 36 <property name="prefix"> 37 <value>/</value> 38 </property> 39 <!-- 后缀 --> 40 <property name="suffix"> 41 <value>.jsp</value> 42 </property> 43 </bean> 44 45 </beans>
四、新建一个Controller和JSP,并把该Controller配置到配置文件(在上面的applicationContext中已经配置了)
4.1 Controller代码如下
1 package com.springmvc.practice; 2 3 4 import javax.servlet.http.HttpServletRequest; 5 import javax.servlet.http.HttpServletResponse; 6 7 import org.springframework.web.servlet.ModelAndView; 8 import org.springframework.web.servlet.mvc.Controller; 9 10 public class HelloWorldController implements Controller{ 11 12 @Override 13 public ModelAndView handleRequest(HttpServletRequest arg0, HttpServletResponse arg1) throws Exception { 14 ModelAndView mav = new ModelAndView(); 15 mav.addObject("name", "Geoff"); 16 mav.setViewName("/WEB-INF/view/helloworld"); 17 return mav; 18 } 19 20 }
错误:如果报不认识HttpServletRequest/HttpServletResponse的错误
原因:规则文件更新的时候需要调用servlet-api.jar相关的类,如果您的系统环境下无法找到这个jar,就会报如上的错误。
解决方法:在项目的Java Build Path中添加servlet-api.jar。工程点右键——>Properties——>Java Build Path——>单击Add Library——>Server Runtime——>添加Apatche Tomcat。
4.2 JSP代码如下
1 <%@ page language="java" contentType="text/html; charset=UTF-8" 2 pageEncoding="UTF-8"%> 3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 4 <html> 5 <head> 6 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 7 <title>HelloWorld!</title> 8 </head> 9 <body> 10 ${name} 11 </body> 12 </html>
错误:如果报org.springframework.web.servlet.DispatcherServlet noHandlerFound这个错误
解决办法:1、配置前端控制器的时候,拦截请求<url-pattern>标签页里面填 / 而不是 /* ;
2、项目右击-->properties-->Deployment Assembly-->add-->Java Build Path Entries-->导入所有依赖的Jar包,重新start tomcat即可。
然后部署到tomcat,运行,输入http://localhost:8080/SpringMVC/queryname就可以跳转到JSP页面。

浙公网安备 33010602011771号