zoukankan      html  css  js  c++  java
  • SSM框架搭建(Spring+SpringMVC+MyBatis)与easyui集成并实现增删改查实现

    一、用myEclipse初始化Web项目

           新建一个web project:

    二、创建包

    controller        //控制类

    service //服务接口
    service.impl //服务实现类
    dao  //data access object(接口)
    dao.impl  //实现类

    domain  //实体类

    mappers  //mybatis的配置映射文件
            util             //工具类

             

    三、是maven方式引入类库

    3.1启动tomcat服务

    3.2给web项目添加maven支持(引入maven私服库)

       将web项目转化为maven项目:

    3.3引入依赖

    spring

    mybatis
    spring mvc
    c3p0类库
    MySQL

    .......

    3.4主要是编写pom.xml文件

     
    1. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">  
    2.   <modelVersion>4.0.0</modelVersion>  
    3.   <groupId>com.liuhai</groupId>  
    4.   <artifactId>eshopSSM</artifactId>  
    5.   <version>0.0.1-SNAPSHOT</version>  
    6.   <packaging>war</packaging>  
    7.   <properties>  
    8.     <log4j.version>1.2.17</log4j.version>  
    9.     <slf4j.version>1.7.7</slf4j.version>    
    10.   </properties>  
    11.   <build>  
    12.     <sourceDirectory>src</sourceDirectory>  
    13.     <resources>  
    14.       <resource>  
    15.         <directory>src</directory>  
    16.         <excludes>  
    17.           <exclude>**/*.java</exclude>  
    18.         </excludes>  
    19.       </resource>  
    20.     </resources>  
    21.     <plugins>  
    22.       <plugin>  
    23.         <artifactId>maven-compiler-plugin</artifactId>  
    24.         <version>3.1</version>  
    25.         <configuration>  
    26.           <source>1.7</source>  
    27.           <target>1.7</target>  
    28.         </configuration>  
    29.       </plugin>  
    30.       <plugin>  
    31.         <artifactId>maven-war-plugin</artifactId>  
    32.         <version>2.3</version>  
    33.         <configuration>  
    34.           <warSourceDirectory>WebRoot</warSourceDirectory>  
    35.           <failOnMissingWebXml>false</failOnMissingWebXml>  
    36.           <version>3.0</version>  
    37.         </configuration>  
    38.       </plugin>  
    39.     </plugins>  
    40.   </build>  
    41.   <dependencies>  
    42.     <!-- webmvc -->  
    43.         <dependency>  
    44.             <groupId>org.springframework</groupId>  
    45.             <artifactId>spring-webmvc</artifactId>  
    46.             <version>4.0.2.RELEASE</version>  
    47.         </dependency>  
    48.         <dependency>  
    49.             <groupId>org.springframework</groupId>  
    50.             <artifactId>spring-jdbc</artifactId>  
    51.             <version>4.0.2.RELEASE</version>  
    52.         </dependency>  
    53.         <dependency>  
    54.             <groupId>org.springframework</groupId>  
    55.             <artifactId>spring-tx</artifactId>  
    56.             <version>4.0.2.RELEASE</version>  
    57.         </dependency>  
    58.         <dependency>  
    59.             <groupId>org.springframework</groupId>  
    60.             <artifactId>spring-context-support</artifactId>  
    61.             <version>4.0.2.RELEASE</version>  
    62.         </dependency>  
    63.         <dependency>  
    64.             <groupId>org.springframework</groupId>  
    65.             <artifactId>spring-orm</artifactId>  
    66.             <version>4.0.2.RELEASE</version>  
    67.         </dependency>  
    68.         <!-- 导入Mysql数据库链接jar包 -->    
    69.         <dependency>  
    70.             <groupId>mysql</groupId>  
    71.             <artifactId>mysql-connector-java</artifactId>  
    72.             <version>5.1.17</version>  
    73.         </dependency>  
    74.         <!--c3p0 用来在applicationContext.xml中配置数据库   -->  
    75.         <dependency>  
    76.             <groupId>com.mchange</groupId>  
    77.             <artifactId>c3p0</artifactId>  
    78.             <version>0.9.5.2</version>  
    79.         </dependency>  
    80.         <!-- JSTL标签类 -->    
    81.         <dependency>  
    82.             <groupId>javax.servlet</groupId>  
    83.             <artifactId>jstl</artifactId>  
    84.             <version>1.2</version>  
    85.         </dependency>  
    86.         <dependency>  
    87.             <groupId>commons-io</groupId>  
    88.             <artifactId>commons-io</artifactId>  
    89.             <version>2.4</version>  
    90.         </dependency>  
    91.         <!-- mybatis核心包 -->  
    92.         <dependency>    
    93.             <groupId>org.mybatis</groupId>    
    94.             <artifactId>mybatis</artifactId>    
    95.             <version>3.1.1</version>    
    96.         </dependency>  
    97.         <!-- mybatis/spring包 -->     
    98.         <dependency>    
    99.             <groupId>org.mybatis</groupId>    
    100.             <artifactId>mybatis-spring</artifactId>    
    101.             <version>1.2.0</version>    
    102.         </dependency>   
    103.         <!-- 映入JSON 对象转json转换器,主要用来restful用-->   
    104.         <dependency>    
    105.            <groupId>org.codehaus.jackson</groupId>    
    106.            <artifactId>jackson-mapper-asl</artifactId>    
    107.            <version>1.9.4</version>    
    108.        </dependency>    
    109.        <!-- log start -->    
    110.         <dependency>    
    111.             <groupId>log4j</groupId>    
    112.             <artifactId>log4j</artifactId>    
    113.             <version>${log4j.version}</version>    
    114.         </dependency>    
    115.         <dependency>    
    116.             <groupId>org.slf4j</groupId>    
    117.             <artifactId>slf4j-api</artifactId>    
    118.             <version>${slf4j.version}</version>    
    119.         </dependency>    
    120.         <dependency>    
    121.             <groupId>org.slf4j</groupId>    
    122.             <artifactId>slf4j-log4j12</artifactId>    
    123.             <version>${slf4j.version}</version>    
    124.         </dependency>    
    125.         <!-- log end -->  
    126.         <!-- 上传组件包begin -->    
    127.         <dependency>    
    128.             <groupId>commons-fileupload</groupId>    
    129.             <artifactId>commons-fileupload</artifactId>    
    130.             <version>1.3.1</version>    
    131.         </dependency>    
    132.         <dependency>    
    133.             <groupId>commons-io</groupId>    
    134.             <artifactId>commons-io</artifactId>    
    135.             <version>2.4</version>    
    136.         </dependency>   
    137.         <!-- 上传组件包end -->    
    138.         <!-- json解析包 -->   
    139.         <dependency>  
    140.             <groupId>net.sf.json-lib</groupId>  
    141.             <artifactId>json-lib</artifactId>  
    142.             <version>2.4</version>  
    143.         </dependency>  
    144.   </dependencies>  
    145. </project>  

    四、创建dao和service的基础类库

    UserDao.Java如下:

     
    1. package com.liuhai.eshop.dao;  
    2.   
    3. import java.util.List;  
    4. import java.util.Map;  
    5.   
    6. import com.liuhai.eshop.domain.User;  
    7. /** 
    8.  * 用户DAO接口 
    9.  * @author Administrator 
    10.  * 
    11.  */  
    12. public interface UserDao {  
    13.     /** 
    14.      * 用户登录 
    15.      * @param user 
    16.      * @return 
    17.      */  
    18.     public User login(User user);  
    19.     /** 
    20.      * 查询所有用户 
    21.      * @return 
    22.      */  
    23.     public List<User> getAll();  
    24.     /** 
    25.      * 根据条件查询用户 
    26.      * @param user 
    27.      * @return 
    28.      */  
    29.     public User getUser(User user);  
    30.     /** 
    31.      * 删除用户 
    32.      * @param user 
    33.      * @return 
    34.      */  
    35.     public int delete(int id);  
    36.     /** 
    37.      * 更新用户 
    38.      * @param user 
    39.      * @return 
    40.      */  
    41.     public int update(User user);  
    42.     /** 
    43.      * 添加用户 
    44.      * @param user 
    45.      * @return 
    46.      */  
    47.     public int add(User user);  
    48.     /** 
    49.      * 用户查询 
    50.      * @param map 
    51.      * @return 
    52.      */  
    53.     public List<User> find(Map<String,Object> map);  
    54.     /** 
    55.      * 获取总记录数 
    56.      * @param map 
    57.      * @return 
    58.      */  
    59.     public Long getTotal(Map<String,Object> map);  
    60.     /** 
    61.      * 根据id查询用户 
    62.      * @param id 
    63.      * @return 
    64.      */  
    65.     public User getUserById(int id);  
    66. }  


    UserService.java 用户service层接口如下:

    1. package com.liuhai.eshop.service;  
    2.   
    3. import java.util.List;  
    4. import java.util.Map;  
    5. import com.liuhai.eshop.domain.User;  
    6.   
    7. public interface UserService {  
    8.       public List<User> getAll();  
    9.       public User getUser(User user);  
    10.       public int delete(int id);  
    11.       public int update(User user);  
    12.       public int add(User user);  
    13.       public List<User> find(Map<String,Object> map);  
    14.       public Long getTotal(Map<String,Object> map);  
    15.       public User getUserById(int id);  
    16. }  


    UserServiceImpl.java 用户service实现层如下:

     
    1. package com.liuhai.eshop.service.impl;  
    2.   
    3. import java.util.List;  
    4. import java.util.Map;  
    5.   
    6. import javax.annotation.Resource;  
    7.   
    8. import org.springframework.stereotype.Service;  
    9.   
    10. import com.liuhai.eshop.dao.UserDao;  
    11. import com.liuhai.eshop.domain.User;  
    12. import com.liuhai.eshop.service.UserService;  
    13. @Service(value="userService")  
    14. public class UserServiceImpl implements UserService {  
    15.     private UserDao userDao;  
    16.     @Resource  
    17.     public void setUserDao(UserDao userDao) {  
    18.         this.userDao = userDao;  
    19.     }  
    20.     @Override  
    21.     public List<User> getAll() {  
    22.         return userDao.getAll();  
    23.     }  
    24.   
    25.     @Override  
    26.     public User getUser(User user) {  
    27.            return userDao.getUser(user);  
    28.     }  
    29.   
    30.     @Override  
    31.     public int delete(int id) {  
    32.         return userDao.delete(id);  
    33.     }  
    34.   
    35.     @Override  
    36.     public int update(User user) {  
    37.          return userDao.update(user);  
    38.     }  
    39.   
    40.     @Override  
    41.     public int add(User user) {  
    42.           return userDao.add(user);  
    43.     }  
    44.   
    45.     @Override  
    46.     public List<User> find(Map<String, Object> map) {  
    47.          return userDao.find(map);  
    48.     }  
    49.   
    50.     @Override  
    51.     public Long getTotal(Map<String, Object> map) {  
    52.          return userDao.getTotal(map);  
    53.     }  
    54.     public User getUserById(int id){  
    55.         return userDao.getUserById(id);  
    56.     }  
    57. }  

    user实体类如下:

     
    1. package com.liuhai.eshop.domain;  
    2.   
    3. import java.io.Serializable;  
    4.   
    5. /** 
    6.  * 用户实体 
    7.  * @author Administrator 
    8.  * 
    9.  */  
    10. public class User implements Serializable{  
    11.     private static final long serialVersionUID = 1L;  
    12.     private Integer id;  
    13.     private String userName;  
    14.     private String password;  
    15.     private Integer age;  
    16.     private String trueName;  
    17.     private String email;  
    18.     private String phone;  
    19.     private String roleName;  
    20.     public Integer getId() {  
    21.         return id;  
    22.     }  
    23.     public void setId(Integer id) {  
    24.         this.id = id;  
    25.     }  
    26.   
    27.     public Integer getAge() {  
    28.         return age;  
    29.     }  
    30.     public void setAge(Integer age) {  
    31.         this.age = age;  
    32.     }  
    33.     public String getPassword() {  
    34.         return password;  
    35.     }  
    36.     public void setPassword(String password) {  
    37.         this.password = password;  
    38.     }  
    39.     public String getUserName() {  
    40.         return userName;  
    41.     }  
    42.     public void setUserName(String userName) {  
    43.         this.userName = userName;  
    44.     }  
    45.     public String getTrueName() {  
    46.         return trueName;  
    47.     }  
    48.     public void setTrueName(String trueName) {  
    49.         this.trueName = trueName;  
    50.     }  
    51.     public String getEmail() {  
    52.         return email;  
    53.     }  
    54.     public void setEmail(String email) {  
    55.         this.email = email;  
    56.     }  
    57.     public String getPhone() {  
    58.         return phone;  
    59.     }  
    60.     public void setPhone(String phone) {  
    61.         this.phone = phone;  
    62.     }  
    63.     public String getRoleName() {  
    64.         return roleName;  
    65.     }  
    66. <h1><a name="t8"></a>   public void setRoleName(String roleName) {</h1>     this.roleName = roleName;  
    67.     }  
    68. }  

    五、配置spring配置文件、jdbc和日志属性文件、myBatis的mapper.xml文件

         5.1  spring配置文件applicationContext.xml如下:

    1. <?xml version="1.0" encoding="UTF-8"?>  
    2. <beans xmlns="http://www.springframework.org/schema/beans"  
    3.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
    4.     xmlns:aop="http://www.springframework.org/schema/aop"  
    5.     xmlns:context="http://www.springframework.org/schema/context"  
    6.     xmlns:tx="http://www.springframework.org/schema/tx"  
    7.     xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd  
    8.         http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.0.xsd  
    9.         http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd  
    10.         http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.0.xsd">  
    11.     <!-- 属性配置文件 -->  
    12.     <context:property-placeholder location="classpath:jdbc.properties"/>  
    13.     <!-- 组件扫描,指定spring管理哪些bean -->  
    14.     <context:component-scan base-package="com.liuhai.eshop.dao.impl,com.liuhai.eshop.service.impl"></context:component-scan>  
    15.       
    16.     <!-- 注解驱动 -->  
    17.     <tx:annotation-driven/>  
    18.     <!-- 创建数据源 -->  
    19.     <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">  
    20.         <property name="driverClass" value="${jdbc.driverclass}"></property>  
    21.         <property name="jdbcUrl" value="${jdbc.url}"></property>  
    22.         <property name="user" value="${jdbc.username}"></property>  
    23.         <property name="password" value="${jdbc.password}"></property>  
    24.         <property name="initialPoolSize" value="${c3p0.pool.size.init}"></property>  
    25.         <property name="minPoolSize" value="${c3p0.pool.size.min}"></property>  
    26.         <property name="maxPoolSize" value="${c3p0.pool.size.max}"></property>  
    27.         <property name="acquireIncrement" value="${c3p0.pool.size.increment}"></property>  
    28.     </bean>  
    29.     <!-- spring和MyBatis完美整合,不需要mybatis的配置映射文件 -->    
    30.     <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">    
    31.         <property name="dataSource" ref="dataSource" />    
    32.         <!-- 自动扫描mapping.xml文件 -->    
    33.         <property name="mapperLocations" value="classpath:com/liuhai/eshop/mappers/*.xml"></property>    
    34.     </bean>   
    35.     <!-- DAO接口所在包名,Spring会自动查找其下的类 -->    
    36.     <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">  
    37.         <property name="basePackage" value="com.liuhai.eshop.dao"></property>  
    38.         <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"></property>  
    39.     </bean>  
    40.     <!-- 事务管理器,service层面上实现事务管理的 -->  
    41.     <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">  
    42.         <property name="dataSource" ref="dataSource"></property>  
    43.     </bean>  
    44. </beans>  

    5.2 jdbc属性文件jdbc.properties如下:

     
    1. jdbc.driverclass=com.mysql.jdbc.Driver  
    2. jdbc.url=jdbc:mysql://localhost:3306/eshop  
    3. jdbc.username=root  
    4. jdbc.password=123456  
    5. c3p0.pool.size.max=10  
    6. c3p0.pool.size.min=2  
    7. c3p0.pool.size.init=3  
    8. c3p0.pool.size.increment=2  
    9.   
    10. hibernate.dialect=org.hibernate.dialect.MySQL5Dialect  
    11. hibernate.show_sql=true  
    12. hibernate.hbm2ddl.auto=none  

    5.3 日志属性文件log4j.properties如下:

    [html] view plain copy
     
     在CODE上查看代码片派生到我的代码片
    1. log4j.rootLogger=INFO,Console,File    
    2. #定义日志输出目的地为控制台    
    3. log4j.appender.Console=org.apache.log4j.ConsoleAppender    
    4. log4j.appender.Console.Target=System.out    
    5. #可以灵活地指定日志输出格式,下面一行是指定具体的格式    
    6. log4j.appender.Console.layout = org.apache.log4j.PatternLayout    
    7. log4j.appender.Console.layout.ConversionPattern=[%c] - %m%n    
    8.   
    9. log4j.logger.java.sql.ResultSet=INFO    
    10. log4j.logger.org.apache=INFO    
    11. log4j.logger.java.sql.Connection=DEBUG    
    12. log4j.logger.java.sql.Statement=DEBUG    
    13. log4j.logger.java.sql.PreparedStatement=DEBUG    
    14.     
    15. #文件大小到达指定尺寸的时候产生一个新的文件    
    16. log4j.appender.File = org.apache.log4j.RollingFileAppender    
    17. #指定输出目录    
    18. log4j.appender.File.File = logs/ssm.log    
    19. #定义文件最大大小    
    20. log4j.appender.File.MaxFileSize = 10MB    
    21. # 输出所以日志,如果换成DEBUG表示输出DEBUG以上级别日志    
    22. log4j.appender.File.Threshold =INFO    
    23. log4j.appender.File.layout = org.apache.log4j.PatternLayout    
    24. log4j.appender.File.layout.ConversionPattern =[%p] [%d{yyyy-MM-dd HH:mm:ss}][%c]%m%n   

    5.4 myBatis的mapper.xml文件(UserMapper.xml)

     

    1. <?xml version="1.0" encoding="UTF-8"?>  
    2. <!DOCTYPE mapper  
    3. PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"  
    4. "http://mybatis.org/dtd/mybatis-3-mapper.dtd">  
    5. <mapper namespace="com.liuhai.eshop.dao.UserDao">  
    6.      <!-- 定义缓存  一般是一级缓存,如果用同一个sqlsession 那么相同查询直接会从缓存中查找 -->  
    7.     <cache size="1024" flushInterval="60000" eviction="LRU" readOnly="false"></cache>  
    8.     <!-- 增加 -->  
    9.     <insert id="add" parameterType="com.liuhai.eshop.domain.User">  
    10.         insert into users values(null,#{userName},#{password},#{age},#{trueName},#{email},#{phone},#{roleName})  
    11.     </insert>  
    12.     <resultMap id="userResultMap" type="com.liuhai.eshop.domain.User" >  
    13.         <id property="id" column="id"/>  
    14.         <result property="userName" column="userName"/>  
    15.         <result property="password" column="password"/>  
    16.         <result property="age" column="age"/>  
    17.         <result property="trueName" column="trueName" />  
    18.         <result property="email" column="email" />  
    19.         <result property="phone" column="phone" />  
    20.         <result property="roleName" column="roleName" />  
    21.     </resultMap>  
    22.     <select id="getUserById" parameterType="Integer" resultMap="userResultMap">  
    23.         select * from users where id=#{id}  
    24.     </select>  
    25.     <select id="find" parameterType="com.liuhai.eshop.domain.User" resultMap="userResultMap">  
    26.         select * from users   
    27.         <where>  
    28.             <if test="userName!=null and userName!='' ">  
    29.                 and userName like #{userName}  
    30.             </if>  
    31.         </where>  
    32.         <if test="start!=null and size!=null">  
    33.             limit #{start},#{size}  
    34.         </if>  
    35.     </select>  
    36.     <select id="getTotal" parameterType="Map" resultType="Long">  
    37.         select count(*) from users  
    38.         <where>  
    39.             <if test="userName!=null and userName!='' ">  
    40.                 and userName like #{userName}  
    41.             </if>  
    42.         </where>  
    43.     </select>  
    44.     <!-- 用户删除 -->  
    45.     <delete id="delete" parameterType="Integer">  
    46.         delete from users where id = #{id}  
    47.     </delete>  
    48.     <!-- 用户修改 -->  
    49.     <update id="update" parameterType="com.liuhai.eshop.domain.User">  
    50.         update users  
    51.         <set>  
    52.             <if test="age != null and age != ''">age = #{age},</if>  
    53.             <if test="userName != null and userName != ''">userName = #{userName},</if>  
    54.             <if test="password != null and password != ''">password = #{password},</if>  
    55.             <if test="trueName != null and trueName != ''">trueName = #{trueName},</if>  
    56.             <if test="email != null and email != ''">email = #{email},</if>  
    57.             <if test="phone != null and phone != ''">phone = #{phone},</if>  
    58.             <if test="roleName != null and roleName != ''">roleName = #{roleName},</if>  
    59.         </set>  
    60.         where id = #{id}  
    61.     </update>  
    62. </mapper>  

    六、创建测试类,测试数据源是否通了

        以上spring框架及spring+mybatis配置基本完成,再就是创建测试类测试数据源是否通

     首先创建一个mysql库的,再建立users表,创建测试类TestSpring.java如下:

       

     
    1. package com.liuhai.eshop;  
    2.   
    3. import org.junit.Test;  
    4. import org.springframework.context.ApplicationContext;  
    5. import org.springframework.context.support.ClassPathXmlApplicationContext;  
    6.   
    7. import com.liuhai.eshop.domain.User;  
    8. import com.liuhai.eshop.service.UserService;  
    9.   
    10. public class TestSpring {  
    11.     @Test  
    12.     public void TestUserService() throws Exception{  
    13.         @SuppressWarnings("resource")  
    14.         ApplicationContext ac=new ClassPathXmlApplicationContext("applicationContext.xml");  
    15.         UserService us=(UserService) ac.getBean("userService");  
    16.         User user=new User();  
    17.         user.setAge(1);  
    18.         user.setUserName("zhangsan");  
    19.         user.setPassword("123456");  
    20.         user.setTrueName("张三");  
    21.         us.add(user);  
    22.     }  
    23. }  

    最后查询users表中是否有新插入的数据。

    七、整合SpringMVC

    7.1、配置spring-mvc.xml

    配置里面的注释也很详细,在此就不说了,主要是自动扫描控制器,视图模式,注解的启动这三个

     
     
    1. <span style="font-size:18px;"><?xml version="1.0" encoding="UTF-8"?>  
    2. <beans xmlns="http://www.springframework.org/schema/beans"  
    3.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
    4.     xmlns:context="http://www.springframework.org/schema/context"  
    5.     xmlns:mvc="http://www.springframework.org/schema/mvc"  
    6.     xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd  
    7.         http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd  
    8.         http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd">  
    9.       
    10.     <!-- 自动扫描该包,使SpringMVC认为包下用了@controller注解的类是控制器 -->    
    11.     <context:component-scan base-package="com.liuhai.eshop.controller"></context:component-scan>  
    12.     <!--避免IE执行AJAX时,返回JSON出现下载文件 -->    
    13.     <bean id="mappingJacksonHttpMessageConverter"    
    14.         class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter">    
    15.         <property name="supportedMediaTypes">    
    16.             <list>    
    17.                 <value>text/html;charset=UTF-8</value>    
    18.             </list>    
    19.         </property>    
    20.     </bean>    
    21.     <!-- 启动SpringMVC的注解功能,完成请求和注解POJO的映射 -->   
    22.     <!-- 详细介绍:http://www.ibm.com/developerworks/cn/web/wa-restful/ -->   
    23.     <bean    
    24.         class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">    
    25.         <property name="messageConverters">    
    26.             <list>    
    27.                 <ref bean="mappingJacksonHttpMessageConverter" /> <!-- 对象转化为JSON转换器 -->    
    28.             </list>    
    29.         </property>    
    30.     </bean>    
    31.     <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">  
    32.         <property name="prefix" value="/jsps/"></property>  
    33.         <property name="suffix" value=".jsp"></property>  
    34.     </bean>  
    35.     <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">  
    36.         <!-- 默认编码 -->   
    37.         <property name="defaultEncoding" value="utf-8"></property>  
    38.         <!-- 文件大小最大值 -->    
    39.         <property name="maxUploadSize" value="10485760000"></property>  
    40.         <!-- 内存中的最大值 -->    
    41.         <property name="maxInMemorySize" value="40960"></property>  
    42.     </bean>  
    43. </beans></span>  

    7.2、配置web.xml文件

             这里面对applicationContext.xml的引入以及配置的spring-mvc的Servlet就是为了完成SSM整合,之前2框架整合不需要在此处进行任何配置。配置一样有详细注释,不多解释了。

     
    1. <?xml version="1.0" encoding="UTF-8"?>  
    2. <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"    
    3.     xmlns="http://java.sun.com/xml/ns/javaee"    
    4.     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"    
    5.     version="3.0">    
    6.       
    7.     <display-name>web 测试页面</display-name>  
    8.     <!-- Spring和mybatis的配置文件 -->    
    9.     <context-param>  
    10.         <param-name>contextConfigLocation</param-name>  
    11.         <param-value>classpath:applicationContext.xml</param-value>  
    12.     </context-param>  
    13.     <!-- 编码过滤器 -->  
    14.     <filter>  
    15.         <filter-name>encodingFilter</filter-name>  
    16.         <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>  
    17.         <async-supported>true</async-supported>  
    18.         <init-param>  
    19.             <param-name>encoding</param-name>  
    20.             <param-value>UTF-8</param-value>  
    21.         </init-param>  
    22.     </filter>  
    23.     <filter-mapping>  
    24.         <filter-name>encodingFilter</filter-name>  
    25.         <url-pattern>/*</url-pattern>  
    26.     </filter-mapping>  
    27.     <!-- Spring监听器:启动Web容器时,自动装配ApplicationContext的配置信息,即上面的:contextConfigLocation-->   
    28.     <listener>  
    29.         <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>  
    30.     </listener>  
    31.     <!-- 防止Spring内存溢出监听器 -->   
    32.     <listener>  
    33.         <listener-class>org.springframework.web.util.IntrospectorCleanupListener</listener-class>  
    34.     </listener>  
    35.     <!-- Spring MVC servlet -->    
    36.     <servlet>  
    37.         <servlet-name>springMVC</servlet-name>  
    38.         <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>  
    39.         <init-param>  
    40.             <param-name>contextConfigLocation</param-name>  
    41.             <param-value>classpath:spring-mvc.xml</param-value>  
    42.         </init-param>  
    43.         <load-on-startup>1</load-on-startup>  
    44.         <async-supported>true</async-supported>  
    45.     </servlet>  
    46.     <servlet-mapping>  
    47.         <servlet-name>springMVC</servlet-name>  
    48.         <!-- 此处可以可以配置成*.do,对应struts的后缀习惯 也可以是/-->    
    49.         <url-pattern>*.do</url-pattern>  
    50.     </servlet-mapping>  
    51.     <!-- 解决由于采用spring的过滤器,导致页面引用的JS、images、CSS发生找不到的错误;也可以用使用spring mvc 的 <mvc:resources /> 注解 用来处理静态文件 -->  
    52.     <servlet-mapping>  
    53.         <servlet-name>default</servlet-name>  
    54.         <url-pattern>*.css</url-pattern>  
    55.     </servlet-mapping>  
    56.     <servlet-mapping>  
    57.         <servlet-name>default</servlet-name>  
    58.         <url-pattern>*.gif</url-pattern>  
    59.     </servlet-mapping>  
    60.     <servlet-mapping>  
    61.         <servlet-name>default</servlet-name>  
    62.         <url-pattern>*.png</url-pattern>  
    63.     </servlet-mapping>  
    64.     <servlet-mapping>  
    65.         <servlet-name>default</servlet-name>  
    66.         <url-pattern>*.jpg</url-pattern>  
    67.     </servlet-mapping>  
    68.     <servlet-mapping>  
    69.         <servlet-name>default</servlet-name>  
    70.         <url-pattern>*.js</url-pattern>  
    71.     </servlet-mapping>  
    72.     <welcome-file-list>  
    73.         <welcome-file>/index.jsp</welcome-file>    
    74.     </welcome-file-list>  
    75. </web-app>  

    7.3 新建控制类controller及jsp页面之间交互

        在这里使用jsp页面引入easyui集成并实现增删改查功能

    userManage.jsp如下:


     
    1. <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>  
    2. <%  
    3. String path = request.getContextPath();  
    4. String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";  
    5. %>  
    6. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">  
    7. <html>  
    8.   <head>  
    9.     <base href="<%=basePath%>">  
    10.       
    11.     <title>My JSP 'userManage.jsp' starting page</title>  
    12.       
    13.     <meta http-equiv="pragma" content="no-cache">  
    14.     <meta http-equiv="cache-control" content="no-cache">  
    15.     <meta http-equiv="expires" content="0">      
    16.     <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">  
    17.     <meta http-equiv="description" content="This is my page">  
    18.     <link rel="stylesheet" type="text/css" href="jquery-easyui-1.5.1/themes/default/easyui.css">  
    19.     <link rel="stylesheet" type="text/css" href="${pageContext.request.contextPath}/jquery-easyui-1.5.1/themes/icon.css">  
    20.     <script type="text/javascript" src="${pageContext.request.contextPath}/jquery-easyui-1.5.1/jquery.min.js"></script>  
    21.     <script type="text/javascript" src="${pageContext.request.contextPath}/jquery-easyui-1.5.1/jquery.easyui.min.js"></script>  
    22.     <script type="text/javascript" src="${pageContext.request.contextPath}/jquery-easyui-1.5.1/locale/easyui-lang-zh_CN.js"></script>  
    23.     <script type="text/javascript">  
    24.         var url;  
    25.         function openUserAddDialog() {  
    26.             $("#dlg").dialog("open").dialog("setTitle", "添加用户信息");  
    27.             url = "${pageContext.request.contextPath}/user/save.do";  
    28.         }  
    29.         function saveUser() {  
    30.             $("#fm").form("submit", {  
    31.                 url : url,  
    32.                 onSubmit : function() {  
    33.                     if ($("#roleName").combobox("getValue") == "") {  
    34.                         $.messager.alert("系统提示", "请选择用户角色!");  
    35.                         return false;  
    36.                     }  
    37.                     return $(this).form("validate");  
    38.                 },  
    39.                 success : function(result) {  
    40.                     var result = eval('(' + result + ')');  
    41.                     if (result.success) {  
    42.                         $.messager.alert("系统提示", "保存成功!");  
    43.                         resetValue();  
    44.                         $("#dlg").dialog("close");  
    45.                         $("#dg").datagrid("reload");  
    46.                     } else {  
    47.                         $.messager.alert("系统提示", "保存失败!");  
    48.                         return;  
    49.                     }  
    50.                 }  
    51.             });  
    52.         }  
    53.         function searchUser() {  
    54.             $("#dg").datagrid('load', {  
    55.                 "userName" : $("#s_userName").val()  
    56.             });  
    57.         }  
    58.         function resetValue() {  
    59.             $("#userName").val("");  
    60.             $("#password").val("");  
    61.             $("#trueName").val("");  
    62.             $("#email").val("");  
    63.             $("#phone").val("");  
    64.             $("#roleName").combobox("setValue", "");  
    65.         }  
    66.         function deleteUser() {  
    67.             var selectedRows = $("#dg").datagrid("getSelections");  
    68.             if (selectedRows.length == 0) {  
    69.                 $.messager.alert("系统提示", "请选择要删除的数据!");  
    70.                 return;  
    71.             }  
    72.             var strIds = [];  
    73.             for ( var i = 0; i selectedRows.length; i++) {  
    74.                 strIds.push(selectedRows[i].id);  
    75.             }  
    76.             var ids = strIds.join(",");  
    77.             $.messager.confirm("系统提示", "您确定要删除这<font color=red>"  
    78.                     + selectedRows.length + "</font>条数据吗?", function(r) {  
    79.                 if (r) {  
    80.                     $.post("${pageContext.request.contextPath}/user/delete.do", {  
    81.                         ids : ids  
    82.                     }, function(result) {  
    83.                         if (result.success) {  
    84.                             $.messager.alert("系统提示", "数据已成功删除!");  
    85.                             $("#dg").datagrid("reload");  
    86.                         } else {  
    87.                             $.messager.alert("系统提示", "数据删除失败,请联系系统管理员!");  
    88.                         }  
    89.                     }, "json");  
    90.                 }  
    91.             });  
    92.         }  
    93.         function openUserModifyDialog() {  
    94.             var selectedRows = $("#dg").datagrid("getSelections");  
    95.             if (selectedRows.length != 1) {  
    96.                 $.messager.alert("系统提示", "请选择一条要编辑的数据!");  
    97.                 return;  
    98.             }  
    99.             var row = selectedRows[0];  
    100.             $("#dlg").dialog("open").dialog("setTitle", "编辑用户信息");  
    101.             $("#fm").form("load", row);  
    102.             url = "${pageContext.request.contextPath}/user/save.do?id=" + row.id;  
    103.         }  
    104.     </script>  
    105.   </head>  
    106.     
    107.   <body style="margin: 1px">  
    108.     <table id="dg" title="用户管理" class="easyui-datagrid" fitColumns="true"  
    109.         pagination="true" rownumbers="true"  
    110.         url="${pageContext.request.contextPath}/user/list.do" fit="true"  
    111.         toolbar="#tb">  
    112.         <thead>  
    113.             <tr>  
    114.                 <th field="cb" checkbox="true" align="center"></th>  
    115.                 <th field="id" width="50" align="center">编号</th>  
    116.                 <th field="userName" width="50" align="center">用户名</th>  
    117.                 <th field="password" width="50" align="center">密码</th>  
    118.                 <th field="trueName" width="50" align="center">真实姓名</th>  
    119.                 <th field="email" width="50" align="center">邮件</th>  
    120.                 <th field="phone" width="50" align="center">联系电话</th>  
    121.                 <th field="roleName" width="50" align="center">角色</th>  
    122.             </tr>  
    123.         </thead>  
    124.     </table>  
    125.     <div id="tb">  
    126.         <href="javascript:openUserAddDialog()" class="easyui-linkbutton"  
    127.             iconCls="icon-add" plain="true">添加</a<a  
    128.             href="javascript:openUserModifyDialog()" class="easyui-linkbutton"  
    129.             iconCls="icon-edit" plain="true">修改</a<a  
    130.             href="javascript:deleteUser()" class="easyui-linkbutton"  
    131.             iconCls="icon-remove" plain="true">删除</a>  
    132.         <div>  
    133.              用户名: <input type="text" id="s_userName" size="20"  
    134.                 onkeydown="if(event.keyCode == 13)searchUser()" /> <a  
    135.                 href="javascript:searchUser()" class="easyui-linkbutton"  
    136.                 iconCls="icon-search" plain="true">查询</a>  
    137.         </div>  
    138.         <div id="dlg-buttons">  
    139.             <href="javascript:saveUser()" class="easyui-linkbutton"  
    140.                 iconCls="icon-ok">保存</a<href="javascript:closeUserDialog()"  
    141.                 class="easyui-linkbutton" iconCls="icon-cancel">关闭</a>  
    142.         </div>  
    143.         <div id="dlg" class="easyui-dialog"  
    144.             style=" 730px;height:280px;padding:10px 10px;" closed="true"  
    145.             buttons="#dlg-buttons">  
    146.             <form method="post" id="fm">  
    147.                 <table cellspacing="8px;">  
    148.                     <tr>  
    149.                         <td>用户名:</td>  
    150.                         <td><input type="text" id="userName" name="userName"  
    151.                             class="easyui-validatebox" required="true" /> <span  
    152.                             style="color: red">*</span>  
    153.                         </td>  
    154.                         <td>  </td>  
    155.                         <td>密码:</td>  
    156.                         <td><input type="password" id="password" name="password"  
    157.                             class="easyui-validatebox" required="true" /> <span  
    158.                             style="color: red">*</span>  
    159.                         </td>  
    160.                     </tr>  
    161.                     <tr>  
    162.                         <td>真实姓名:</td>  
    163.                         <td><input type="text" id="trueName" name="trueName"  
    164.                             class="easyui-validatebox" required="true" /> <span  
    165.                             style="color: red">*</span>  
    166.                         </td>  
    167.                         <td>  </td>  
    168.                         <td>邮箱:</td>  
    169.                         <td><input type="text" id="email" name="email"  
    170.                             validType="email" class="easyui-validatebox" required="true" /> <span  
    171.                             style="color: red">*</span>  
    172.                         </td>  
    173.                     </tr>  
    174.                     <tr>  
    175.                         <td>联系电话:</td>  
    176.                         <td><input type="text" id="phone" name="phone"  
    177.                             class="easyui-validatebox" required="true" /> <span  
    178.                             style="color: red">*</span>  
    179.                         </td>  
    180.                         <td>  </td>  
    181.                         <td>用户角色:</td>  
    182.                         <td><select name="roleName" class="easyui-combobox"  
    183.                             id="roleName" style=" 154px;" editable="false"  
    184.                             panelHeight="auto">  
    185.                                 <option value="">请选择角色</option>  
    186.                                 <option value="系统管理员">系统管理员</option>  
    187.                                 <option value="销售主管">销售主管</option>  
    188.                                 <option value="客户经理">客户经理</option>  
    189.                                 <option value="高管">高管</option>  
    190.                         </select>  <span style="color: red">*</span>  
    191.                         </td>  
    192.                     </tr>  
    193.                 </table>  
    194.             </form>  
    195.         </div>  
    196.     </div>  
    197.   </body>  
    198. </html>  

    UserController.java

     
    1. package com.liuhai.eshop.controller;  
    2.   
    3. import java.io.File;  
    4. import java.io.IOException;  
    5. import java.util.HashMap;  
    6. import java.util.List;  
    7. import java.util.Map;  
    8.   
    9. import javax.annotation.Resource;  
    10. import javax.servlet.http.HttpServletRequest;  
    11. import javax.servlet.http.HttpServletResponse;  
    12.   
    13. import net.sf.json.JSONArray;  
    14. import net.sf.json.JSONObject;  
    15.   
    16. import org.apache.commons.io.FileUtils;  
    17. import org.slf4j.Logger;  
    18. import org.slf4j.LoggerFactory;  
    19. import org.springframework.http.HttpStatus;  
    20. import org.springframework.http.ResponseEntity;  
    21. import org.springframework.stereotype.Controller;  
    22. import org.springframework.ui.Model;  
    23. import org.springframework.web.bind.annotation.RequestMapping;  
    24. import org.springframework.web.bind.annotation.RequestMethod;  
    25. import org.springframework.web.bind.annotation.RequestParam;  
    26. import org.springframework.web.bind.annotation.ResponseBody;  
    27. import org.springframework.web.multipart.MultipartFile;  
    28.   
    29. import com.liuhai.eshop.domain.User;  
    30. import com.liuhai.eshop.service.UserService;  
    31. import com.liuhai.eshop.util.PageBean;  
    32. import com.liuhai.eshop.util.ResponseUtil;  
    33. import com.liuhai.eshop.util.StringUtil;  
    34.   
    35. @Controller  
    36. @RequestMapping("/user")  
    37. public class UserController {  
    38.     private static Logger log=LoggerFactory.getLogger(UserController.class);  
    39.     @Resource  
    40.     private UserService userService;  
    41.       
    42.     @RequestMapping("/showUser.do")  
    43.     public String toIndex(HttpServletRequest request,Model model){  
    44.         System.out.println("liuhaitest");  
    45.         return "showUser";  
    46.     }  
    47.     // /user/test.do?id=1  
    48.     @RequestMapping(value="/test.do",method=RequestMethod.GET)    
    49.     public String test(HttpServletRequest request,Model model){    
    50.         int userId = Integer.parseInt(request.getParameter("id"));    
    51.         System.out.println("userId:"+userId);  
    52.         User user=null;  
    53.         if (userId==1) {  
    54.              user = new User();    
    55.              user.setAge(11);  
    56.              user.setId(1);  
    57.              user.setPassword("123");  
    58.              user.setUserName("javen");  
    59.         }  
    60.         log.debug(user.toString());  
    61.         model.addAttribute("user", user);    
    62.         return "index";    
    63.     }    
    64.     // /user/showUser.do?id=1  
    65.     @RequestMapping(value="/showUser.do",method=RequestMethod.GET)    
    66.     public String toindex(HttpServletRequest request,Model model){    
    67.         int userId = Integer.parseInt(request.getParameter("id"));    
    68.         System.out.println("userId:"+userId);  
    69.         User user = this.userService.getUserById(userId);    
    70.         log.debug(user.toString());  
    71.         model.addAttribute("user", user);    
    72.         return "showUser";    
    73.     }    
    74.       
    75.  // /user/showUser2.do?id=1  
    76.     @RequestMapping(value="/showUser2.do",method=RequestMethod.GET)    
    77.     public String toIndex2(@RequestParam("id") String id,Model model){    
    78.         int userId = Integer.parseInt(id);    
    79.         System.out.println("userId:"+userId);  
    80.         User user = this.userService.getUserById(userId);    
    81.         log.debug(user.toString());  
    82.         model.addAttribute("user", user);    
    83.         return "showUser";    
    84.     }    
    85.   
    86.     // /user/jsontype.do?id=1  
    87.     @RequestMapping(value="/jsontype.do",method=RequestMethod.GET)    
    88.     public @ResponseBody User getUserInJson(@RequestParam("id") String id,Map<String, Object> model){    
    89.         int userId = Integer.parseInt(id);    
    90.         System.out.println("userId:"+userId);  
    91.         User user = this.userService.getUserById(userId);    
    92.         log.info(user.toString());  
    93.         return user;    
    94.     }    
    95.     // /user/jsontype2.do?id=1  
    96.     @RequestMapping(value="/jsontype2.do",method=RequestMethod.GET)    
    97.     public ResponseEntity<User>  getUserInJson2(@RequestParam("id") String id,Map<String, Object> model){    
    98.         int userId = Integer.parseInt(id);    
    99.         System.out.println("userId:"+userId);  
    100.         User user = this.userService.getUserById(userId);    
    101.         log.info(user.toString());  
    102.         return new ResponseEntity<User>(user,HttpStatus.OK);    
    103.     }   
    104.       
    105.     //文件上传页面  
    106.     @RequestMapping(value="/upload.do")  
    107.     public String showUploadPage(){  
    108.         return "file";  
    109.     }  
    110.     //文件上传  
    111.     @RequestMapping(value="/doUpload.do",method=RequestMethod.POST)  
    112.     public String doUploadFile(@RequestParam("file")MultipartFile file) throws IOException{  
    113.         if (!file.isEmpty()) {  
    114.             log.info("Process file:{}",file.getOriginalFilename());  
    115.         }  
    116.         FileUtils.copyInputStreamToFile(file.getInputStream(), new File("E:\",System.currentTimeMillis()+file.getOriginalFilename()));  
    117.         return "succes";  
    118.     }  
    119.     /** 
    120.      * 用户管理页面 
    121.      * @return 
    122.      */  
    123.     @RequestMapping(value="/userManage.do")  
    124.     public String userManagePage(){  
    125.         return "userManage";  
    126.     }  
    127.     /** 
    128.      * 添加或者修改 
    129.      * @param user 
    130.      * @param res 
    131.      * @return 
    132.      * @throws Exception 
    133.      */  
    134.     @RequestMapping("/save.do")  
    135.     public String save(User user,HttpServletResponse res) throws Exception{  
    136.         //操作记录条数,初始化为0  
    137.         int resultTotal = 0;  
    138.         if (user.getId() == null) {  
    139.             resultTotal = userService.add(user);  
    140.         }else{  
    141.             resultTotal = userService.update(user);  
    142.         }  
    143.         JSONObject jsonObject = new JSONObject();  
    144.         if(resultTotal > 0){   //说明修改或添加成功  
    145.             jsonObject.put("success", true);  
    146.         }else{  
    147.             jsonObject.put("success", false);  
    148.         }  
    149.         ResponseUtil.write(res, jsonObject);  
    150.         return null;  
    151.     }  
    152.     /** 
    153.      * 用户分页查询 
    154.      * @param page 
    155.      * @param rows 
    156.      * @param s_user 
    157.      * @param res 
    158.      * @return 
    159.      * @throws Exception 
    160.      */  
    161.     @RequestMapping("/list.do")  
    162.     public String list(@RequestParam(value="page",required=false) String page,@RequestParam(value="rows",required=false) String rows,User s_user,HttpServletResponse res) throws Exception{  
    163.         PageBean pageBean=new PageBean(Integer.parseInt(page),Integer.parseInt(rows));  
    164.         Map<String,Object> map=new HashMap<String,Object>();  
    165.         map.put("userName", StringUtil.formatLike(s_user.getUserName()));  
    166.         map.put("start", pageBean.getStart());  
    167.         map.put("size", pageBean.getPageSize());  
    168.         List<User> userList=userService.find(map);  
    169.         Long total=userService.getTotal(map);  
    170.         JSONObject result=new JSONObject();  
    171.         JSONArray jsonArray=JSONArray.fromObject(userList);  
    172.         result.put("rows", jsonArray);  
    173.         result.put("total", total);  
    174.         ResponseUtil.write(res, result);  
    175.         return null;  
    176.     }  
    177.     /** 
    178.      * 删除用户 
    179.      * @param ids 
    180.      * @param res 
    181.      * @return 
    182.      * @throws Exception 
    183.      */  
    184.     @RequestMapping("/delete.do")  
    185.     public String delete(@RequestParam(value="ids") String ids,HttpServletResponse res) throws Exception{  
    186.         String[] idStr = ids.split(",");  
    187.         JSONObject jsonObject = new JSONObject();  
    188.         for (String id : idStr) {  
    189.             userService.delete(Integer.parseInt(id));  
    190.         }  
    191.         jsonObject.put("success", true);  
    192.         ResponseUtil.write(res, jsonObject);  
    193.         return null;  
    194.     }  
    195. }  

    7.4其它工具类及jsp页面

       分页Model类PageBean.java

     
    1. package com.liuhai.eshop.util;  
    2. /** 
    3.  * 分页Model类 
    4.  * @author Administrator 
    5.  * 
    6.  */  
    7. public class PageBean {  
    8.     private int page; // 第几页  
    9.     private int pageSize; // 每页记录数  
    10.     private int start;  // 起始页  
    11.     public PageBean(int page, int pageSize) {  
    12.         super();  
    13.         this.page = page;  
    14.         this.pageSize = pageSize;  
    15.     }  
    16.     public int getPage() {  
    17.         return page;  
    18.     }  
    19.     public void setPage(int page) {  
    20.         this.page = page;  
    21.     }  
    22.     public int getPageSize() {  
    23.         return pageSize;  
    24.     }  
    25.     public void setPageSize(int pageSize) {  
    26.         this.pageSize = pageSize;  
    27.     }  
    28.     public int getStart() {  
    29.         return (page-1)*pageSize;  
    30.     }  
    31. }  

      用于返回json数据ResponseUtil.java

     

    1. package com.liuhai.eshop.util;  
    2.   
    3. import java.io.PrintWriter;  
    4.   
    5. import javax.servlet.http.HttpServletResponse;  
    6. /*** 
    7.  * 主要用于返回json数据 
    8.  * @author Administrator 
    9.  */  
    10. public class ResponseUtil {  
    11.     public static void write(HttpServletResponse response,Object object)throws Exception{  
    12.         response.setContentType("text/html;charset=utf-8");  
    13.         PrintWriter out=response.getWriter();  
    14.         out.println(object);  
    15.         out.flush();  
    16.         out.close();  
    17.     }  
    18. }  

    字符串工具类StringUtil.java如下:

     
    1. package com.liuhai.eshop.util;  
    2. /*** 
    3.  * 字符串工具类 
    4.  * @author Administrator 
    5.  * 
    6.  */  
    7. public class StringUtil {  
    8.      /** 
    9.      * 判断是否是空 
    10.      * @param str 
    11.      * @return 
    12.      */  
    13.     public static boolean isEmpty(String str){  
    14.         if(str==null||"".equals(str.trim())){  
    15.             return true;  
    16.         }else{  
    17.             return false;  
    18.         }  
    19.     }  
    20.       
    21.     /** 
    22.      * 判断是否不是空 
    23.      * @param str 
    24.      * @return 
    25.      */  
    26.     public static boolean isNotEmpty(String str){  
    27.         if((str!=null)&&!"".equals(str.trim())){  
    28.             return true;  
    29.         }else{  
    30.             return false;  
    31.         }  
    32.     }  
    33.       
    34.     /** 
    35.      * 格式化模糊查询 
    36.      * @param str 
    37.      * @return 
    38.      */  
    39.     public static String formatLike(String str){  
    40.         if(isNotEmpty(str)){  
    41.             return "%"+str+"%";  
    42.         }else{  
    43.             return null;  
    44.         }  
    45.     }  
    46. }  

    上传文件file.jsp页面

     

    1. <%@ page language="java" contentType="text/html; charset=utf-8"  
    2.     pageEncoding="utf-8"%>  
    3. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">  
    4. <html>  
    5. <head>  
    6. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">  
    7. <title>Insert title here</title>  
    8. </head>  
    9. <body>  
    10.     <h1>上传文件</h1>  
    11.     <form method="post" action="../user/doUpload.do" enctype="multipart/form-data">  
    12.         <input type="file" name="file"/>  
    13.         <input type="submit" value="上传文件"/>  
    14.           
    15.     </form>  
    16. </body>  
    17. </html>  

    八、项目结果及目录

  • 相关阅读:
    js触摸屏案例
    Docker
    Docker 镜像加速
    Docker 命令大全
    linux gpasswd
    Docker基础教程
    PHP输出毫秒时间戳
    PHP Variable handling 函数
    Partition Array by Odd and Even
    Median
  • 原文地址:https://www.cnblogs.com/Jansens520/p/6806260.html
Copyright © 2011-2022 走看看