Spring MVC详细 介绍(一)

Spring MVC 背景介绍
Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。使用 Spring 可插入的 MVC 架构,可以选择是使用内置的 Spring Web 框架还是 Struts 这样的 Web 框架。通过策略接口,Spring 框架是高度可配置的,而且包含多种视图技术,例如 JavaServer Pages(JSP)技术、Velocity、Tiles、iText 和 POI。Spring MVC 框架并不知道使用的视图,所以不会强迫您只使用 JSP 技术。Spring MVC 分离了控制器、模型对象、分派器以及处理程序对象的角色,这种分离让它们更容易进行定制。
常见MVC框架比较
运行性能上
Jsp+servlet>struts1>spring mvc>struts2+freemarker>>struts2,ognl,值栈。
开发效率上,基本正好相反。值得强调的是,spring mvc开发效率和struts2不相上下。
Struts2的性能低的原因是因为OGNL和值栈造成的。所以,如果你的系统并发量高,可以使用freemaker进行显示,而不是采用OGNL和值栈。这样,在性能上会有相当大得提高。
基于spring2.5的采用XML配置的spring MVC项目
注:本项目全部基于XML配置。同时,集成了hibernate。
采用的是:spring MVC+hibernate+spring的开发架构。
1.建立web项目
2.导入jar包(spring.jar, spring-webmvc.jar, commons-logging.jar。其他jar包为hibernate相关jar包)
Spring MVC详细 介绍(一)_第1张图片
3.修改web.xml如下:


>
	
        dispatcherServlet
        
            org.springframework.web.servlet.DispatcherServlet
        
        
            contextConfigLocation
            /WEB-INF/hib-config.xml,/WEB-INF/web-config.xml,/WEB-INF/service-config.xml,/WEB-INF/dao-config.xml
        
        1
    
    
        dispatcherServlet
        *.do
    

4.增加web-config.xml(这里包含spring mvc相关的相关配置)



	
	
    
        
        
    
  
   
    
        
        
        
    


    
        
            
                userController
            
        
    


	


5.在WEB-INF下增加service-config.xml(这里包含service层类的相关配置)




	
		
	
	

6.在WEB-INF下增加hib-config.xml(这里包含spring集成hibernate相关的配置)



	   
	
	
	
		
	  
              
              
              
              
            
      

     
             
                 
           
             
                 
               	
                     
                       org.hibernate.dialect.MySQLDialect  
                     
                   true
                   update
               
           
		
			com.sxt.po
		
     


	


  
   
        
  




	


 
	 
	 
 
 
	 
		 
		 
		     
	 
 


7.在WEB-INF下增加dao-config.xml(这里包含dao层类的相关配置)



	
	
	  
	

8.建立相关类和包结构,如下图所示:
Spring MVC详细 介绍(一)_第2张图片
9.各类代码如下:

package com.sxt.po;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;

@Entity
public class User {
	@Id
	@GeneratedValue(strategy=GenerationType.AUTO)
	private int id;
	private String uname;
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getUname() {
		return uname;
	}
	public void setUname(String uname) {
		this.uname = uname;
	}
}
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;
	}
	
}
package com.sxt.service;

import com.sxt.dao.UserDao;
import com.sxt.po.User;

public class UserService {
	
	private UserDao userDao;
	
	public void add(String uname){
		System.out.println("UserService.add()");
		User u = new User();
		u.setUname(uname);
		userDao.add(u);
	}

	public UserDao getUserDao() {
		return userDao;
	}

	public void setUserDao(UserDao userDao) {
		this.userDao = userDao;
	}
	
}
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 {
		System.out.println("HelloController.handleRequest()");
		req.setAttribute("a", "aaaa");
		userService.add(req.getParameter("uname")); 
		return new ModelAndView("index");
	}

	public UserService getUserService() {
		return userService;
	}

	public void setUserService(UserService userService) {
		this.userService = userService;
	}

	
}

10.运行测试:
结果:数据库中增加zhangsan的记录。页面跳转到index.jsp上,显示:

大家好,我是梁雪!

Spring Boot、Spring MVC 和 Spring 有什么区别?

你可能感兴趣的:(框架)