当前位置:文档之家› 20131017_SpringMVC

20131017_SpringMVC

目录一、Spring MVC (2)二、Spring 定时器的配置 (10)三、Spring 配置Log4J (11)四、Spring配置c3p0数据库连接池 (12)五、Spring基础配置事物、AOP (14)概述:第一节是对SpringMvc的配置以及使用,对与其他更复杂的配置如Hibernate、struts没有进行配置,大家可以参照其他文章,但是如果你们使用SpringMvc进行真实的项目开发需要配置定时器、log4j,数据库连接池,事务,则可以参照第2、3、4、5节如果有什么问题可以@我,当然了我也会尽力解决你的问题。

一、Spring MVC概述:本文主要讲述Spring的配置,以及各种使用,使初学者能够快速进行开发,明白SpringMVC基本可以应对大多数的web开发,Spring在2.5版本以后使用了全注解开发,减去了繁琐的xml配置;环境:Spring2.5+Hibernate3.2.7+SQL20051.首先在web.xml中启动配置:<?xml version="1.0"encoding="UTF-8"?><web-app xmlns:xsi="/2001/XMLSchema-instance"xmlns="/xml/ns/javaee"xmlns:web="/xml/ns/javaee/web-app_2_5.xsd"xsi:schemaLocation="/xml/ns/javaee/xml/ns/javaee/web-app_3_0.xsd"version="3.0"><display-name>springmvc</display-name><listener><listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener><context-param><param-name>contextConfigLocation</param-name><param-value>classpath:config/applicationContext.xml</param-value></context-param><!-- Spring MVC 的Servlet,它将加载WEB-INF/ spring -servlet.xml的配置文件,以启动Spring MVC模块--><servlet><servlet-name>spring</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><load-on-startup>2</load-on-startup></servlet><servlet-mapping><servlet-name>spring</servlet-name><url-pattern>*.do</url-pattern></servlet-mapping></web-app>2.因此spring-servlet.xml配置文件中可以注明使用全注解方式启动:<!--对web包中的所有类进行扫描,以完成Bean创建和自动依赖注入的功能 --><context:component-scan base-package="com.sry"/><!--启动Spring MVC的注解功能,完成请求和注解POJO的映射 --><bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"/> <!--对模型视图名称的解析,即在模型视图名称添加前后缀,例如:web-inf文件必须有jsp文件夹,spring 返回页面的时候会自动在jsp或字文件夹中搜索,对应的jsp主要是根据请求的返回值判断,如返回值是test,那么spring会在jsp下面搜索test.Jsp文件,如果还有字文件夹,那么返回值可以写:“page/test” --> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"p:prefix="/WEB-INF/jsp/"p:suffix=".jsp"/>3.通过上面jar添加和配置文件的配置,此时尝试启动项目;4.一个类处理多个URL请求,每一个方法都是一个URL请求;package com.sry.control;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import com.sry.services.SryTestService;/***不同的方法一个不同连接*每个请求处理参数对应一个 URL* @author SongRUyi*/@Controllerpublic class ControllerTest1 {@Autowiredprivate SryTestService testService;/*** 本方法没有参数* @return*/@RequestMapping("/testo.do") //public String getlist() {System.out.println(testService.getData());;return"sucessful";}/*** 此方法与上面的方法名是一样,但是有一个参数id* 换句话说用户的请求有参数Id,那么就自动请求此方法*/@RequestMapping("/testoId.do") //public String getlist(String id) {System.out.println("id:"+id);return"sucessful";}}5.一个类只有一个URL用不同的参数,区别不同的请求:package com.sry.control;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;/*** @author SongRUyi*一个 Controller 对应一个 URL,由请求参数决定请求处理方法*同一个求不同的连接,因此请求到不同的方法*/@Controller@RequestMapping("/test.do")public class ControllerTest2 {/*** <li> 1.如果仅仅访问test.do那么就自动访问此方法;</li>* <li> 2.如果参数错误或者不存在那么也将自动访问此方法,如:test.do?ddd=pppp,</li>* <li> 3.如果请求方式错误也会访问此方法,如:请求方式是get确实以post请求</li> */@RequestMappingpublic void defaultMethod(){System.out.println("现在正在访问默认方法。

");}/***请求必须参数,用于区别与其他方法* @return*/@RequestMapping(params ="method=Method")public String methodOne(){System.out.println("同一个请求不同方法ONe----");return"sucessful";}}6.类中添加类似namespace的标记:package com.sry.ssh.spring.springmvc.TrancationTest;import java.util.Date;import java.util.List;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Controller;import org.springframework.ui.ModelMap;import org.springframework.web.bind.annotation.RequestMapping;import mon.modules.Student;import mon.modules.Teacher;import mon.services.DaoServices;import com.sry.ssh.spring.springmvc.services.SryTestService;/*** @author SongRUyi 20131106*/@Controller@RequestMapping("/getmsg")public class TrancationTest {//@Autowired//private DaoServices dao;@Autowiredprivate SryTestService sryTest;/*** 获得列表*/@RequestMapping("/teacherlist")public String getTeacherList(ModelMap modelmap){List<Teacher> teacherList=sryTest.getTeaList();//=dao.find("from Teacher");modelmap.put("teacherList", teacherList);return"springmvc/getTeacherList";}}在类上声明中没有.do标记,在方法上也没有.do标记,请求的时候可以义下面方式去请求:http://localhost:8080/test/getmsg/teacherlist.do7.规定请求方法的方式;package com.sry.control;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestMethod;/*** @author SongRUyi* 让请求处理方法处理特定的HTTP请求方法*/@Controller@RequestMapping("/test3.do")public class ControllerTest3 {/*** 在却别方法的时候,要求用于必须是post方式,不允许get方式* @return*/@RequestMapping(params="method=requestMethod",method = RequestMethod.POST) public String methodTwo(){System.out.println("post方法==已经请求到了方法。

相关主题