spring_mvc学习笔记.pdf
《spring_mvc学习笔记.pdf》由会员分享,可在线阅读,更多相关《spring_mvc学习笔记.pdf(34页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、 学习笔记 基于注解的 spring 3.0.x MVC学习笔记(一)学习 spring3.0.x(以下简称 spring 3)已经一段日子了,新特性也接触不少,比较感兴趣还是spring mvc 这一块 3.0 的 mvc 变化太大了,跟 2.5 基本上是两个样子,至于详细的区别可以参考以下文章领略 Spring 3.x 时代的 Spring MVC spring3 mvc变化比较大,但是还是有些2.5 的影子的,首先来个 2.5 也可以使用的注解版本的mvc 入门例子.例子采用 maven2管理,所以必须要安装m2eclipse插件或者使用maven2进行管理.本文基于 eclipse3.
2、5 Galileo-sr2Javaee 版本跟 m2eclipse插件进行管理.m2eclipse在线安装地址如下:http:/m2eclipse.sonatype.org/sites/m2e如何安装请参考Eclipse中安装 SpringSource Tools Suite插件使用 eclipse创建一个 maven project,选择 webapp Javaee5.0的模板项目或者simpleproject,对于如何创建可以参考 使用心得 maven2之 m2eclipse使用手册之三第一个Simple MavenProject与 Pom.xml配置说明 使用心得 maven2之 m2e
3、clipse使用手册之六使用Maven2插件创建一个简单的SSH2 项目之jetty篇(一)对于 pom.xml如下:org.mortbay.jettymaven-jetty-plugin6.1.24 org.apache.maven.pluginsmaven-compiler-plugin2.3.1 1.6 1.6 utf-8 org.springframeworkspring-webmvc 3.0.3.RELEASEjar compile org.springframeworkspring-context3.0.3.RELEASEjar compile javax.servletservl
4、et-api2.5 jar provided javax.servlet.jspjsp-api2.1 jar provided org.slf4jslf4j-api$org.slf4j.versionorg.slf4jjcl-over-slf4j$org.slf4j.versionruntime org.slf4jslf4j-log4j12$org.slf4j.versionruntime log4j log4j 1.2.15 javax.mailmail javax.jms jmscom.sun.jdmk jmxtools com.sun.jmx jmxri runtime junitjun
5、it4.8.1 jar test 1.5.10 spring 的 mvc 本身就是一个 servlet,所以在 web.xml加入以下内容StudySpringMVCorg.springframework.web.servlet.DispatcherServlet springmvc.xml contextConfigLocation/WEB-INF/spring/*.xml1StudySpringMVC/其中 contextConfigLocation是读取 spring的配置文件进行解释,springmvc.xml如下:UserController.Java类:Controller pub
6、lic class UserController private Logger logger=org.slf4j.LoggerFactory .getLogger(UserController.class);RequestMapping(value=/welcome.do,method=RequestMethod.GET)public void welcome()logger.info(Welcome!);System.out.println(helloworld);Controller:将一个类成为Spring 容器的 Bean RequestMapping:指定该方法处理的URL 请求,当
7、在浏览器中输入该url 地址的时候则会执行会执行指定的方法.-value:要运行的 url 地址-method:该方法在什么才执行.默认 GET 运行 jetty插件命令jetty:run 看到如下图:看到该信息后则证明spring的 mvc 已经正常执行了输入以下地址:http:/localhost:8080/StudySpringMVC/welcome.do看到如下图的内容:注意:调用该方法的时候会自动搜索bean id=viewResolver的设置,然后查找该墓里下的jsp 名字构成是所调用的方法名+.jsp,如果没有的话会出现后台NOT_FOUND的提示信息.学习笔记 基于注解的 s
8、pring3.0.x MVC学习笔记(二)用惯了 maven管理项目之后会发现自己懒惰了很多,所以决定放弃使用maven去学习 spring3的mvc,采用传统的 web project进行学习,好了闲话不说,首先我们需要知道spring mvc需要加什么包.使用到 spring mvc的需要加入以下依赖包:org.springframework.aop-3.0.3.RELEASE.jar-Spring的切面编程org.springframework.asm-3.0.3.RELEASE.jar-Spring独立的 asm 程序org.springframework.beans-3.0.3.RE
9、LEASE.jar-SpringIoC(依赖注入)的基础实现org.springframework.context-3.0.3.RELEASE.jar-Spring提供在基础 IoC 功能上的扩展服务org.springframework.core-3.0.3.RELEASE.jar-Spring的核心包org.springframework.expression-3.0.3.RELEASE.jar-Spring表达式语言org.springframework.web-3.0.3.RELEASE.jar-SpringWeb下的工具包org.springframework.web.servlet
10、-3.0.3.RELEASE.jar-SpringMVC工具包,并且对JEE6.0 Servlet3.0的支持除了 spring的包之外还需要加入以下几个依赖包:com.springsource.org.aopalliance-1.0.0.jar-aop的工具包mons.logging-1.1.1.jar-commons的日志管理本文使用了 slf4j 日志管理,所以需要加入以下包slf4j-api-1.5.10.jar-日志管理的增强slf4j-log4j12-1.5.10.jar-日志包的连接层所有包如图 1springmvc需要的包:图 1:springmvc需要的包实现的例子还是以he
11、lloworld的简单输出,以后再逐步加入数据库的操作,新建一个 resource的source folder,用来存放 spring的配置文件跟log4j.xml的日志文件使用日志管理就必须要加入log4j.xml或者是 log4j.properties进行配置,这里采用了 Log4j.mxl进行配置Log4j.xml:springmvc.xml 如果需要使用 jstl 的话则需要在 标签中加入prefix:则为前缀,也就是目录的地址,一般以 WEB-INF/xx为主,若为/则为全局使用suffix:则为后缀,也就是文件名的后缀.使用 InternalResourceViewResolver
12、类是只支持 jsp,不支持 html等其他后缀,如果强制加入其他后缀的话胡出现死循环,至于其他视图的话则以后在使用的时候再介绍web.xml This is Spring MVC DispatcherServletSpringMVC DispatchServletorg.springframework.web.servlet.DispatcherServlet SpringContext contextConfigLocationclasspath*:springmvc.xml1SpringMVC DispatchServlet/注意:配置 spring的 DispatcherServlet的
13、时候,如果需要使用自定义名字的spring配置文件的话,需要在 中加入 这个参数,否则的话 spring会默认查找web-inf/classes下面以 servlet-name-servlet.xml的文件,会出现以下错误:ERROR:org.springframework.web.servlet.DispatcherServlet-Context initialization failed org.springframework.beans.factory.BeanDefinitionStoreException:IOException parsing XML document from S
14、ervletContext resource/WEB-INF/SpringMVC DispatchServlet-servlet.xml;nested exception is java.io.FileNotFoundException:Could not open ServletContext resource/WEB-INF/SpringMVC DispatchServlet-servlet.xmlHelloWordController.java:package org.lxh.mvc.controller;import org.slf4j.Logger;import org.slf4j.
15、LoggerFactory;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.servlet.ModelAndView;Controller RequestMapping(/test)publicclass HelloWordController private Logger logger=LoggerFactory.getLogger(HelloWordCont
16、roller.class);RequestMapping(/hello)publicvoid Hello()logger.info(The hello()method is use);RequestMapping(/welcome)public String welcome()logger.info(The welcome()method is use);/return/welcome;return/WEB-INF/jsp/welcome;RequestMapping(/helloWorld)public ModelAndView helloWorld()logger.info(The hel
17、loWorld()method is use);ModelAndView view=new ModelAndView();/view.setViewName(/helloworld);/view.setViewName(/WEB-INF/JSP/helloworld);view.setViewName(/hello);return view;可以发现上面为什么有那么多注释,先一个一个来说明,spring mvc可以通过以下三种方式链接到视图解析器中,每种方法以requestMapping注解作为跳转.第一种,使用无返回方法跳转,如果使用返回方法进行跳转的话,则会通过视图解析器进行以prefix
18、(前缀)+方法名+suffix(后缀)组成的页面文件名称.这样的话可能需要用url writer框架进行重向地址更改,保证安全性.第二种,使用一个返回的字符串方法作为跳转,使用字符串跳转的话好处就是在return的时候可以自己指定返回的名字,JSP 组成是 prefix(前缀)+返回的字符串+suffix(后缀),这样的话跳转的时候外围广很多而且,安全性相对高点第三种,返回一个 ModelAndView类型,ModelAndView是 spring2.5经常使用的方式,使用setViewName方法则可以跳转到指定的页面.在类中还还发现一个Contorller的注解,该注解是用于把当前Java
19、 类变成一个 Spring里面的一个beans,如果在 Class 上面加入 requestMapping的话,而在方法上还拥有requestMapping,则在浏览器输入的地址为http:/访问地址:端口/contextroot/要调用类的 requestMapping跳转值/该类中存在的 requestMapping/,而在 Class 上标记了 requestMapping的话,则需要在指定的位置创建一个文件夹作为存放.例如:输入 http:/localhost:8080/SpringMVC_10000/test/hello的话则会查找根目录下面的test文件夹下面的 hello.jsp
20、.组成是 prefix(前缀)+/test/+方法名+suffix(后缀).目录结构如图 2:学习笔记 基于注解的 spring3.0.x MVC学习笔记(三)这篇不会大量的张贴代码,毕竟是自己对springMVC的学习,而不是对某一种东西作为详细解析的,好了话不多说了,近期学习 springMVC换了不少东西,连日志工具也换了,采用了 slf4j+logback进行日志管理,至于好处,请自行 Google 如何把主流的log4j+commons-loggin更换为 slf4j+logback呢,由于 spring里面采用了commons-logging日志监控,所以我们需要准备以下几个包:l
21、ogback-classic.jar:改善了 log4j并且实现了 slf4j-log4j的代码logback-core.jar:logback的核心代码slf4j-api.jar:slf4j实现代码jcl-over-slf4j.jar:代替 commons-loggin类log4j-over-slf4j.jar(可选):替换 log4j。原有的 log4j.properites将失效,需要转换为logback.xml jul-to-slf4j.jar:(可选)替换 jdk logging。需要在程序开始时调用SLF4JBridgeHandler.install()来注册 listener。L
22、ogBack.xml配置文件跟 Log4j.xml的配置文件非常相似:%dHH:mm:ss.SSS%thread%-5level%logger100-%msg%n logger100:是限制当前日志显示内容的长度,最大为 100 个字符如何使用 logback+slf4j?参考代码:private Logger logger=LoggerFactory.getLogger(RequestMappingStudy1.class);同以前使用 log4j+commons-logging是一样的方式,只是换了使用slf4j 的工厂类而已用到 spring配置如下:这次开始主要对spring的每个注解
23、用法进行详细的介绍,RequestMapping的参数如下/*see RequestMapping 参数*param value*需要跳转的地址*param mehtod*基于 RestFul 的跳转参数,有 RequestMethod.get post,put 等*param params*符合某个参数的时候才调用该方法*param headers*符合头信息的时候才调用*/SpringMVC中大部分请求都是由RequestMapping提交的,而且提交的类型有很多种,以 3.0 来讲一般的请求方式有以下几种第一种:以无参的形式返回:/*无参数返回的是根据 prefix前缀+RequestM
24、apping value+suffix后缀组成 */RequestMapping(/novoid)publicvoid novoid()logger.info(this.getClass().getSimpleName()+novoid 方法被调用);返回的地址是 http:/访问地址/项目名称/spring配置文件 bean 为 viewResolver 的 prefix的值+requestMapping返回的值+suffix的值第二种:返回一个 String类型:/*根据 String 字符串返回对应的地址 prefix前缀+返回值+suffix后缀组成 */RequestMapping(
25、/string)public String string()logger.info(String 方法调用 );returnWEB-INF/jsp/success;第三种:返回一个 ModelAndView对象/*spring2.5的方法,返回一个 ModelAndView 对象,通过 setViewName方法跳转到指定的页面调用 addObject*相当于调用 request.setAttribute方法*/RequestMapping(/modelview)public ModelAndView view(Model model)logger.info(view 方法调用 );Model
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- spring_mvc 学习 笔记
限制150内