Sun JDK1.6.0_13 ; MyEslipse10 ; Tomcat ; 谷歌浏览器 ;
网页输出:
控制台打印:
1. 导入所需jar包
1.1 导入spring以及springmvc所需jar包
spring所需jar包 百度网盘链接:spring-framework-3.2.13.RELEASE-dist.zip
最少需要导入如下6个jar包:
spring-beans-3.2.13.RELEASE.jar
spring-context-3.2.13.RELEASE.jar
spring-core-3.2.13.RELEASE.jar
spring-expression-3.2.13.RELEASE.jar
spring-web-3.2.13.RELEASE.jar
spring-webmvc-3.2.13.RELEASE.jar
jar包在压缩包解压后 spring-framework-3.2.13.RELEASE-dist文件夹 > spring-framework-3.2.13.RELEASE文件夹 > libs文件夹下寻找,将jar包复制到web项目中WebRoot > WEB-INF > lib文件夹下
1.2 导入日志文件所需jar包
log4j所需jar包 百度网盘链接:log4j所需jar包
将日志压缩包里的4个jar包复制到web项目中WebRoot > WEB-INF > lib文件夹下,然后在web项目下创建resources目录(Source Folder),将log4j.properties文件复制到resources文件夹下,此为log4j配置文件,备用
选中WebRoot > WEB-INF > lib文件夹下所有jar包,右击Build Path > Configure Build Path...
导入jar包步骤完成
2. 配置web.xml
springmvc也是一种servlet,所以需要通过配置web.xml文件,让项目去识别springmvc
打开WebRoot > WEB-INF 文件夹下的web.xml文件
然后我配置的代码如下,会在代码中进行分析:
index.jsp
springmvc
org.springframework.web.servlet.DispatcherServlet
contextConfigLocation
classpath:springmvc-servlet.xml
1
springmvc
/
这段配置信息的作用是,在spring的容器启动的时候就加载这个springmvc,然后在有请求出现时,截获所有请求,交给springmvc-servlet.xml文件配置的controller(控制器)去处理,后面会涉及到,此处不做详解。
3. 下边我们开始编写springmvc-servlet.xml配置文件。
(1) 首先创建一个xml文件,在resources目录下右击New > File,命名为springmvc-servlet.xml。
(2) 在文件中导入头部约束配置,打开下载的spring压缩包文件夹,在以下路径:spring-framework-3.2.13.RELEASE-dist\spring-framework-3.2.13.RELEASE\docs\spring-framework-reference\html文件夹下,搜索文件mvc.html并用浏览器打开。在17.3.1下或Ctrl+F搜索关键词"17.3.1",这个目录下的代码片段,复制如下部分粘贴到springmvc-servlet.xml中
然后,再在mvc.html网页中搜索"xmlns:mvc",将定位到的代码中的如下代码插入上述代码中,按上述代码格式插入(后面有完整代码):
xmlns:mvc="http://www.springframework.org/schema/mvc"
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc.xsd
此时头部约束完成,我们开始编写配置文件。
(3) 此例中完整的springmvc-serlvet.xml配置文件如下(使用注解的方式):
4. 编写controller(控制器)
新建一个类MyController,所在包com.zb.controller下,代码如下:
package com.zb.controller;
import org.apache.log4j.Logger;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
@Controller
public class MyController {
private Logger logger = Logger.getLogger(MyController.class);
@RequestMapping("/welcome")
public ModelAndView index(){
logger.info("Hello,springmvc!");
return new ModelAndView("index");
}
}
@Controller:让springmvc-servlet.xml中的扫描到,并将此类识别为controller(控制器),并自动注册
@RequestMapping("/welcome"):此注解的作用为,将“/welcome”的请求识别并定位用此方法处理请求,使此次注解可以在这个类中写很多的处理方法,只要用此注解加以标示,就可以分清,不必要定义n多个类
logger.info("Hello,springmvc!"); : 在控制台打印日志,用来让我们知道程序运行到此方法
return new ModelAndView("index"); :此处直接返回字符串“index”,用于url拼接,寻找此将jsp页面
5. 发布运行
最后在项目目录/WEB-INF/下建立文件夹jsp,在jsp中建立名为index的jsp页面。完成最终编写
本例使用Tomcat,发布细节在此不再赘述。运行结果如本文开头所示。
本例使用的是注解的方式扫描controller,还有手动编写 配置处理器映射 HandlerMapping 标签的方式:
而controller的编写如下:
package com.zb.controller;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.AbstractController;
public class MyController extends AbstractController {
@Override
protected ModelAndView handleRequestInternal(HttpServletRequest arg0,
HttpServletResponse arg1) throws Exception {
// TODO Auto-generated method stub
return new ModelAndView("index");
}
}
此类方式,一句映射对应一个controller,在映射较多的情况下将非常繁琐,所以常用注解的方式