• 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

  • 相关阅读:
    Discuz!NT 系统架构分析
    jquery pager
    Nhibernate分页方法
    Discuz nt模板机制
    WTclient创建OPC client方法
    OPC
    Regular Expressions in Java
    How to use VS to manipulate Access
    OPC客户端设计
    How to use VS to manipulate Excel使用MFC读写Excel
  • 原文地址:https://www.cnblogs.com/gcczhongduan/p/4315265.html
Copyright © 2020-2023  润新知