使用eclipse搭建简单的springMVC框架
使用eclipse搭建简单的springMVC框架
IT小码蚁 发表于1年前
使用eclipse搭建简单的springMVC框架
  • 发表于 1年前
  • 阅读 263
  • 收藏 0
  • 点赞 0
  • 评论 0

移动开发云端新模式探索实践 >>>   

一、开发环境

      eclipse 4.2.0

      JDK   1.7.0_45

      tomcat  7.0.54

二、在eclipse中创建项目

         1.选择Dynamic Web Project,如果没有点击other寻找

     

         2.填写项目名称,点击next

           

       3.将编译后的文件存放路径改为:WebContent\WEB-INF\classes (个人习惯)

        

       4.勾选创建web.xml文件,点击Finish

         

  三、添加SpringMVC相关配置

         1.添加jar包

           

     2.配置web.xml文件,在web.xml文件中加入DispatcherServlet配置

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
  <display-name>SpringMVC</display-name>
  
  <!--DispatcherServlet配置开始-->


  <servlet>  
        <servlet-name>springMVC</servlet-name>  
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>  
    
        <init-param>   
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:spring-servlet.xml</param-value>
        </init-param>
    </servlet>   
    
    <servlet-mapping>
        <servlet-name>springMVC</servlet-name>
        <url-pattern>*.action</url-pattern>
    </servlet-mapping>


    <!--DispatcherServlet配置结束-->
  
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
</web-app>

springMVC 会默认加载name-servlet.xml文件的信息,这里的name就是文件中配置的<servlet-name>springMVC,该项目中,系统会默认加载springMVC-servlet.xml。
在路径:/WEB-INF/springMVC-servlet.xml    中加载。

如果想要自己自定义,可以在servlet中加入:

      <init-param>   
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:spring-servlet.xml</param-value>
        </init-param>

这样springMVC就会加载spring-servlet.xml,在路径/WEB-INF/classes/spring-servlet.xml 中加载,这里的classpath:就是指的/WEB-INF/classes

 

3.在src文件夹下配置spring-servlet文件

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" 
       xmlns:context="http://www.springframework.org/schema/context" 
       xmlns:p="http://www.springframework.org/schema/p" 
       xmlns:mvc="http://www.springframework.org/schema/mvc" 
       xmlns:aop="http://www.springframework.org/schema/aop" 
       xmlns:tx="http://www.springframework.org/schema/tx"
       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-3.0.xsd    
          http://www.springframework.org/schema/context    
          http://www.springframework.org/schema/context/spring-context.xsd    
          http://www.spr-ingframework.org/schema/aop  
          http://www.springframework.org/schema/aop/spring-aop-3.0.xsd  
          http://www.springframework.org/schema/tx  
          http://www.springframework.org/schema/tx/spring-tx-3.0.xsd  
          http://www.springframework.org/schema/mvc    
          http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd"
    default-autowire="byName" default-lazy-init="true">
    
    
    <context:component-scan base-package="com.you.springmvc"></context:component-scan>
    
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
         <property name="prefix" value="/" />
         <property name="suffix" value=".jsp" />
     </bean>    
     
</beans>

在xml配置了<context:component-scan>后,springMVC可以自动去扫描base-pack下面或者子包下面的Java文件,如果扫描到有@Component @Controller@Service等这些注解的类,则把这些类注册为bean 。

InternalResourceViewResolver是一个内部资源视图解析器,它会把返回的视图名称都解析为InternalResourceView对象,InternalResourceView会把Controller处理器方法返回的模型属性都存放到对应的request属性中,然后通过RequestDispatcher在服务器端把请求forword重定向到目标URL。比如在InternalResourceViewResolver中定义了prefix=/,suffix=.jsp,然后请求的Controller处理器方法返回的视图名称为index,那么这个时候InternalResourceViewResolver就会把index解析为一个InternalResourceView对象,先把返回的模型属性都存放到对应的HttpServletRequest属性中,然后利用RequestDispatcher在服务器端把请求forword到/index.jsp。

四、编写代码

       1.java代码

package com.you.springmvc;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
@RequestMapping(value="/you")
public class springController {
     
	@RequestMapping(value="/welcome")
	public String welcome(Model model){
	      model.addAttribute("msg", "欢迎使用springMVC!");
	      return "index";
	}
}

 

      2.页面代码    

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>welcome</title>
</head>
<body>
<h2>${msg}</h2>

</body>
</html>

五、运行项目

将项目部署到tomcat中,启动运行,在浏览器中输入127.0.0.1:8080/you/welcome.action(该项目部署的tomcat端口为8080,端口号以实际配置端口号为准),就会得到:

六、连接数据库

  1.引入jar包

    commons-dbcp.jar
    commons-pool-1.3.jar
    spring-jdbc-3.2.4.release.jar
    mysql-connector-java-5.1.26-bin.jar

   2.引入jdbc.properties文件

     文件位置:

  

     文件内容: 

jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://127.0.0.1:3306/mydataBase?useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull
jdbc.user=root
jdbc.password=root

     3.spring-servlet.xml中添加:

    <bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
           <property name="locations">
            <list>
                <value>classpath:jdbc.properties</value>
            </list>
        </property>
     </bean>
     
     <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
           <property name="driverClassName" value="${jdbc.driver}"></property>
           <property name="url" value="${jdbc.url}"></property>
           <property name="username" value="${jdbc.user}"></property>
           <property name="password" value="${jdbc.password}"></property>
     </bean>
     
     
      <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate" abstract="false" lazy-init="false" autowire="default">
        <property name="dataSource">
            <ref bean="dataSource" />
        </property>
    </bean>

propertyConfigurer 用于读取配置文件jdbc.properties文件中的内容

dataSoure是一个数据源配置了连接数据库的一些信息

jdbcTemplate用于实现对数据库的一些操作

package com.you.springmvc.service.impl;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Service;

import com.you.springmvc.domain.SysUser;
import com.you.springmvc.service.IUserService;

@Service
public class UserServiceImpl implements IUserService{

	@Autowired
    private JdbcTemplate template;
	
	@Override
	public SysUser findUserByNamePwd(String name, String password) {
		SysUser user=null;
		StringBuffer sql=new StringBuffer("select * from sys_user where name= '");
		sql.append(name).append("' and pwd = '").append(password).append("'");
		List<SysUser> userList=template.query(sql.toString(),new BeanPropertyRowMapper(SysUser.class));
	    if(userList!=null&&userList.size()>0){
	    	user=userList.get(0);
	    }
	    return user;
	}

	@Override
	public List<SysUser> findSysUser() {
		StringBuffer sql=new StringBuffer("select * from sys_user ");
		List<SysUser> userList=template.query(sql.toString(),new BeanPropertyRowMapper(SysUser.class));
		return userList;
	}

	@Override
	public void delete(String id) {
		StringBuffer sql=new StringBuffer("delete from sys_user where id = '");
		sql.append(id).append("'");
	    template.update(sql.toString());
		
	}

	@Override
	public SysUser findUserById(String id) {
		SysUser user=null;
		StringBuffer sql=new StringBuffer("select * from sys_user where id = '");
		sql.append(id).append("'");
		List<SysUser> userList=template.query(sql.toString(),new BeanPropertyRowMapper(SysUser.class));
		if(userList!=null&&userList.size()>0){
			user=userList.get(0);
		}
		return user;
	}

	@Override
	public void update(SysUser user) {
		StringBuffer sql=new StringBuffer("update sys_user set real_name ='");
		sql.append(user.getRealName()).append("',");
		sql.append("sts = '").append(user.getSts()).append("',");
		sql.append(" role= '").append(user.getRole()).append("'");
		sql.append(" where id = '").append(user.getId()).append("'");
		template.update(sql.toString());
		
	}

	@Override
	public void insert(SysUser user) {
		StringBuffer sql=new StringBuffer("insert into sys_user(name,real_name,pwd,sts,role) values('");
		sql.append(user.getName()).append("',");
		sql.append("'").append(user.getRealName()).append("',");
		sql.append("'").append(user.getPwd()).append("',");
		sql.append("'").append(user.getSts()).append("',");
		sql.append("'").append(user.getRole()).append("')");
		template.update(sql.toString());
	}

	
}

七.其它

=======使用C标签========
需要引入:
jstl-1.1.2.jar
standard-1.1.2.jar


=======使用JSON====
需要引入:
json-lib-2.4-jdk15.jar

还需要引入依赖包:
commons-beanutils-1.8.0.jar
commons-collections-3.1.jar
commons-lang-2.5.jar
commons-logging-1.2.jar
ezmorph-1.0.6.jar

标签: springMVC
  • 打赏
  • 点赞
  • 收藏
  • 分享
共有 人打赏支持
粉丝 1
博文 3
码字总数 2471
×
IT小码蚁
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: