• Springmvc案例1----基于spring2.5的採用xml配置


    首先是项目和所须要的包截图:



    改动xml文件:

    <?xml version="1.0" encoding="UTF-8"?>
    <web-app version="2.5" 
    	xmlns="http://java.sun.com/xml/ns/javaee" 
    	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
    	http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
    	<servlet>
    		<servlet-name>dispatcherServlet</servlet-name>
    		<servlet-class>
    			org.springframework.web.servlet.DispatcherServlet
    		</servlet-class>
    		<init-param>
    			<param-name>contextConfigLocation</param-name>
    			<param-value>
    				/WEB-INF/hib-config.xml,/WEB-INF/web-config.xml,
    				/WEB-INF/service-config.xml,/WEB-INF/dao-config.xml
    			</param-value>
    		</init-param>
    		<load-on-startup>1</load-on-startup>
    	</servlet>
    	<servlet-mapping>
    		<servlet-name>dispatcherServlet</servlet-name>
    		<url-pattern>*.do</url-pattern>
    	</servlet-mapping>
    </web-app>
    

    添加web-config.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
    	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    	xsi:schemaLocation="
    http://www.springframework.org/schema/beans 
    http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
    
    	<!-- Controller方法调用规则定义 -->
    	<bean id="paraMethodResolver"
    		class="org.springframework.web.servlet.mvc.multiaction.ParameterMethodNameResolver">
    		<property name="paramName" value="action" />
    		<property name="defaultMethodName" value="list" />
    	</bean>
    	<!-- 页面view层基本信息设定 -->
    	<bean id="viewResolver"
    		class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    		<property name="viewClass"
    			value="org.springframework.web.servlet.view.JstlView"></property>
    		<property name="suffix" value=".jsp"></property>
    	</bean>
    	<!-- servlet映射列表,全部控制层Controller的servlet在这里定义 -->
    	<bean id="urlMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
    		<property name="mappings">
    			<props>
    				<prop key="user.do">userController</prop>
    			</props>
    		</property>
    	</bean>
    	<bean id="userController" class="com.sxt.action.UserController">
    		<property name="userService" ref="userService"></property>
    	</bean>
    </beans>

    添加service-config.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
    	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    	xsi:schemaLocation="
    	http://www.springframework.org/schema/beans 
    http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
    
    <bean id="userService" class="com.sxt.service.UserService">
    	<property name="userDao" ref="userDao"></property>
    </bean>
    </beans>

    添加dao-config.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
    	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    	xsi:schemaLocation="
    http://www.springframework.org/schema/beans 
    http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
    
    <bean id="userDao" class="com.sxt.dao.UserDao">
    	<property name="hibernateTemplate" ref="hibernateTemplate"></property>
    </bean>
    </beans>

    添加hib-config.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
    	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    	xmlns:aop="http://www.springframework.org/schema/aop"
    	xmlns:tx="http://www.springframework.org/schema/tx"
    	xmlns:context="http://www.springframework.org/schema/context"
    	xsi:schemaLocation="
    http://www.springframework.org/schema/beans 
    http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
    http://www.springframework.org/schema/tx
    http://www.springframework.org/schema/tx/spring-tx-2.5.xsd
    http://www.springframework.org/schema/aop 
    http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
      http://www.springframework.org/schema/context   
       http://www.springframework.org/schema/context/spring-context-2.5.xsd
    ">
    <context:component-scan base-package="com.sxt"></context:component-scan>
    <!-- 支持aop注解 -->
    <aop:aspectj-autoproxy></aop:aspectj-autoproxy>
    
    <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
    	<property name="driverClassName" value="com.mysql.jdbc.Driver"></property>
    	<property name="url" value="jdbc:mysql://localhost:3306/crud"></property>
    	<property name="username" value="root"></property>
    	<property name="password" value="root"></property>
    </bean>
    
    <bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
    	<property name="dataSource">
    		<ref bean="dataSource"></ref>
    	</property>
    	<property name="hibernateProperties">
    		<props>
    			<prop key="hibernate.dialect">
    				org.hibernate.dialect.MySQLDialect
    			</prop>
    			<prop key="hibernate.show_sql">
    				true
    			</prop>
    			<prop key="hibernate.hbm2ddl.auto">update</prop>
    		</props>
    	</property>
    	<property name="packagesToScan">
    		<value>com.sxt.po</value>
    	</property>
    </bean>
    
    <bean id="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate">
    	<property name="sessionFactory" ref="sessionFactory"></property>
    </bean>
    
    <!-- 配置一个JdbcTemplate实例 -->
    <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
    	<property name="dataSource" ref="dataSource"></property>
    </bean>
    
    <!-- 配置事务管理 -->
    <bean id="txManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
    	<property name="sessionFactory" ref="sessionFactory"></property>
    </bean>
    
    <tx:annotation-driven transaction-manager="txManager"/>
    <aop:config>
    	<aop:pointcut expression="execution(public * com.sxt.service.impl.*.*(..))" id="businessService"/>
    	<aop:advisor advice-ref="txAdvice" pointcut-ref="businessService"/>
    </aop:config>
    <tx:advice id="txAdvice" transaction-manager="txManager">
    	<tx:attributes>
    		<tx:method name="find*" read-only="true" propagation="NOT_SUPPORTED"/>
    		<!-- get开头的方法不须要在事务中执行。有些情况是没有必要使用事务的。比方获取数据,开启事务本身对性能本身是有一定的影响的 -->
    		<tx:method name="*"/>
    	</tx:attributes>
    </tx:advice>
    </beans>

    各类包的代码例如以下:

    package com.sxt.po;
    
    import javax.persistence.Entity;
    import javax.persistence.GeneratedValue;
    import javax.persistence.GenerationType;
    import javax.persistence.Id;
    
    @Entity
    public class User {
    	private int id ;
    	private String name ;
    	@Id
    	@GeneratedValue(strategy=GenerationType.AUTO)
    	public int getId() {
    		return id;
    	}
    	public void setId(int id) {
    		this.id = id;
    	}
    	public String getName() {
    		return name;
    	}
    	public void setName(String name) {
    		this.name = name;
    	}
    	
    }
    

    userDao

    package com.sxt.dao;
    
    import org.springframework.orm.hibernate3.HibernateTemplate;
    
    import com.sxt.po.User;
    
    public class UserDao {
    	private HibernateTemplate hibernateTemplate ;
    	
    	public void add(User u){
    		System.out.println("userDao.add()");
    		hibernateTemplate.save(u) ;
    	}
    	public HibernateTemplate getHibernateTemplate() {
    		return hibernateTemplate;
    	}
    
    	public void setHibernateTemplate(HibernateTemplate hibernateTemplate) {
    		this.hibernateTemplate = hibernateTemplate;
    	}
    	
    }
    

    userService

    package com.sxt.service;
    
    import com.sxt.dao.UserDao;
    import com.sxt.po.User;
    
    public class UserService {
    	private UserDao userDao ;
    	public void add(String name){
    		System.out.println("UserService.add()");
    		User u = new User() ;
    		u.setName(name) ;
    		userDao.add(u) ;
    	}
    	public UserDao getUserDao() {
    		return userDao;
    	}
    	public void setUserDao(UserDao userDao) {
    		this.userDao = userDao;
    	}
    	
    }
    

    userController

    package com.sxt.action;
    
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    import org.springframework.web.servlet.ModelAndView;
    import org.springframework.web.servlet.mvc.Controller;
    
    import com.sxt.service.UserService;
    
    public class UserController implements Controller{
    	private UserService userService ;
    	@Override
    	public ModelAndView handleRequest(HttpServletRequest req,
    			HttpServletResponse resp) throws Exception {
    		// TODO Auto-generated method stub
    		System.out.println("HelloController.handleRequest()");
    		req.setAttribute("a", "bbb") ;
    		userService.add(req.getParameter("name")) ;
    		return new ModelAndView("index2");
    	}
    	public UserService getUserService() {
    		return userService;
    	}
    	public void setUserService(UserService userService) {
    		this.userService = userService;
    	}
    	
    }
    

    以下是显示层的jsp代码:

    <%@ page language="java" import="java.util.*" pageEncoding="GB18030"%>
    <%
    String path = request.getContextPath();
    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
    %>
    
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
        <base href="<%=basePath%>">
        
        <title>My JSP 'index.jsp' starting page</title>
    	<meta http-equiv="pragma" content="no-cache">
    	<meta http-equiv="cache-control" content="no-cache">
    	<meta http-equiv="expires" content="0">    
    	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    	<meta http-equiv="description" content="This is my page">
    	<!--
    	<link rel="stylesheet" type="text/css" href="styles.css">
    	-->
      </head>
      
      <body>
        <form action="user.do" >
        	姓名:<input type="text" name="name" />
        	登录:<input type="submit" value="登录">
        </form>
      </body>
    </html>
    

    index2.jsp

    <%@ page language="java" import="java.util.*" pageEncoding="GB18030"%>
    <%
    String path = request.getContextPath();
    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
    %>
    
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
        <base href="<%=basePath%>">
        
        <title>My JSP 'index2.jsp' starting page</title>
        
    	<meta http-equiv="pragma" content="no-cache">
    	<meta http-equiv="cache-control" content="no-cache">
    	<meta http-equiv="expires" content="0">    
    	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    	<meta http-equiv="description" content="This is my page">
    	<!--
    	<link rel="stylesheet" type="text/css" href="styles.css">
    	-->
    
      </head>
      
      <body>
        <%=request.getAttribute("a") %>
      </body>
    </html>
    

    执行结果測试:

    http://locahost:8080/springmvc01/user.do?uname=zhangsan

  • 相关阅读:
    PAT (Advanced Level) 1060. Are They Equal (25)
    PAT (Advanced Level) 1059. Prime Factors (25)
    PAT (Advanced Level) 1058. A+B in Hogwarts (20)
    PAT (Advanced Level) 1057. Stack (30)
    PAT (Advanced Level) 1056. Mice and Rice (25)
    PAT (Advanced Level) 1055. The World's Richest (25)
    PAT (Advanced Level) 1054. The Dominant Color (20)
    PAT (Advanced Level) 1053. Path of Equal Weight (30)
    PAT (Advanced Level) 1052. Linked List Sorting (25)
    PAT (Advanced Level) 1051. Pop Sequence (25)
  • 原文地址:https://www.cnblogs.com/gcczhongduan/p/4315265.html
Copyright © 2020-2023  润新知