Java-----SSM(SpringMVC+Spring+mybaties)框架整合

在进行整合之前,首先了解这个框架的作用

Mybaties:

丰富的标签库,可写动态sql,并统一的在.XML文件中编写,方便统一管理,解耦

SpringMVC:

标准的MVC思想(mode,view,controller),使代码的耦合性降低,方便实现ioc,方便代码的维护

Spring:

Spring的核心思想是IOC和AOP,ioc使代码耦合性低,便于维护。Aop方便事物和日志等管理。

aop面向切面编程,横切关注点,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。主要功能是将程序中多个模块的事物日志等抽出来统一管理,使程序员专注开发,不需要管理其它的事情。

ioc控制反转,将实例化对象的权利翻转了,原来new对象需要用户通过代码new,现在将权利交给spring容器来new。

 项目整体结构:

  

1.首先在pom.xml中建立相关依赖

复制代码
<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/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com</groupId>
  <artifactId>ssmdemo</artifactId>
  <packaging>war</packaging>
  <version>0.0.1-SNAPSHOT</version>
  <name>capital Maven Webapp</name>
  <url>http://maven.apache.org</url>
   <properties>
        <java-version>1.8</java-version> 
        <junit-version>4.8.2</junit-version>
        <org.springframework-version>4.1.3.RELEASE</org.springframework-version>
        <!-- <jackson-mapper-asl-version>1.9.9</jackson-mapper-asl-version>
        <jackson-core-asl-version>1.9.9</jackson-core-asl-version> -->
        <mysql-connector-java-version>5.1.8</mysql-connector-java-version>
        <org.mybatis-version>3.2.7</org.mybatis-version>
        <org.mybatis-spring-version>1.2.2</org.mybatis-spring-version>
        <opensymphony-version>2.4.2</opensymphony-version>
        <freemarker-version>2.3.9</freemarker-version>
        <c3p0-version>0.9.1.2</c3p0-version>
        <commons-collections-version>1.0</commons-collections-version>
        <commons-fileupload-version>1.2.2</commons-fileupload-version>
        <org.apache.commons-version>3.1</org.apache.commons-version>
        <commons-codec-version>1.6</commons-codec-version>
        <dom4j-version>1.6.1</dom4j-version>
        <javax.servlet-version>1.2</javax.servlet-version>
        <aspectjweaver-version>1.6.6</aspectjweaver-version>
        <slf4j-log4j12-version>1.6.6</slf4j-log4j12-version>
        <log4j-version>1.2.16</log4j-version>
        <javax.servlet-jsp-version>2.0</javax.servlet-jsp-version>
        <cglib-version>2.2.2</cglib-version>
        <slf4j-api-version>1.6.6</slf4j-api-version>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>
    
  <dependencies>
  
  
   
  
  
  
  
  
  
  
    <!-- with junit4.8.2 -->
        <dependency>
            <groupId>junit</groupId> 
            <artifactId>junit</artifactId>
            <version>${junit-version}</version>
            <type>jar</type>
        </dependency>
        <dependency>
          <groupId>com.sun.mail</groupId>
          <artifactId>javax.mail</artifactId>
          <version>1.4.6</version>
        </dependency>

        <!-- with spring -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-core</artifactId>
            <version>${org.springframework-version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-web</artifactId>
            <version>${org.springframework-version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-test</artifactId>
            <version>${org.springframework-version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-aspects</artifactId>
            <version>${org.springframework-version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context-support</artifactId>
            <version>${org.springframework-version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-web</artifactId>
            <version>${org.springframework-version}</version>
        </dependency>

        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>${org.springframework-version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jdbc</artifactId>
            <version>${org.springframework-version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-tx</artifactId>
            <version>${org.springframework-version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-instrument</artifactId>
            <version>${org.springframework-version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-instrument-tomcat</artifactId>
            <version>${org.springframework-version}</version>
        </dependency>
        <dependency>  
            <groupId>com.fasterxml.jackson.core</groupId>  
            <artifactId>jackson-core</artifactId>  
            <version>2.1.0</version>  
        </dependency>  
        <dependency>  
            <groupId>com.fasterxml.jackson.core</groupId>  
            <artifactId>jackson-databind</artifactId>  
            <version>2.1.0</version>  
        </dependency>  
        <dependency>  
            <groupId>com.fasterxml.jackson.core</groupId>  
            <artifactId>jackson-annotations</artifactId>  
            <version>2.1.0</version>  
        </dependency>  
        
        <!--freemarker -->
        <dependency>
            <groupId>freemarker</groupId>
            <artifactId>freemarker</artifactId>
            <version>${freemarker-version}</version>
        </dependency>
        <!-- with mybatis-spring -->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>${org.mybatis-version}</version>
        </dependency>
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis-spring</artifactId>
            <version>${org.mybatis-spring-version}</version>
        </dependency>
        <!-- jdbc driver -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>${mysql-connector-java-version}</version>
        </dependency>
        <!-- connect pool with c3p0 -->
        <dependency>
            <groupId>c3p0</groupId>
            <artifactId>c3p0</artifactId>
            <version>${c3p0-version}</version>
        </dependency>
        <!-- apache commons jar -->
        <dependency>
            <groupId>commons-collections</groupId>
            <artifactId>commons-collections</artifactId>
            <version>${commons-collections-version}</version>
        </dependency>

        <dependency>
            <groupId>commons-fileupload</groupId>
            <artifactId>commons-fileupload</artifactId>
            <version>${commons-fileupload-version}</version>
        </dependency>

        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-lang3</artifactId>
            <version>${org.apache.commons-version}</version>
        </dependency>

        <dependency>
            <groupId>commons-codec</groupId>
            <artifactId>commons-codec</artifactId>
            <version>${commons-codec-version}</version>
        </dependency>
        <!-- analyze xml use dom4j -->
        <dependency>
            <groupId>dom4j</groupId>
            <artifactId>dom4j</artifactId>
            <version>${dom4j-version}</version>
        </dependency>
        <!-- about servlet -->
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>jstl</artifactId>
            <version>${javax.servlet-version}</version>
        </dependency>


        <dependency>
            <groupId>taglibs</groupId>
            <artifactId>standard</artifactId>
            <version>1.1.2</version>
        </dependency>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <version>3.0.1</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-log4j12</artifactId>
            <version>1.6.6</version>
        </dependency>
        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.14</version>
        </dependency>

        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>1.6.6</version>
        </dependency>
        <dependency>
            <groupId>javax.activation</groupId>
            <artifactId>activation</artifactId>
            <version>1.1.1</version>
        </dependency>

        <!-- memcached -->
        <dependency>
            <groupId>com.google.code.maven-play-plugin.spy</groupId>
            <artifactId>memcached</artifactId>
            <version>2.4.2</version>
        </dependency>
        <dependency>
            <groupId>cglib</groupId>
            <artifactId>cglib</artifactId>
            <version>${cglib-version}</version>
        </dependency>
        <dependency>
            <groupId>net.fckeditor</groupId>
            <artifactId>java-core</artifactId>
            <version>2.6</version>
        </dependency>
        <dependency>
            <groupId>org.json</groupId>
            <artifactId>json</artifactId>
            <version>20131018</version>
        </dependency>
        <dependency>
            <groupId>com.sun.jersey</groupId>
            <artifactId>jersey-client</artifactId>
            <version>1.18.1</version>
        </dependency>
        <dependency>
            <groupId>jsptags</groupId>
            <artifactId>pager-taglib</artifactId>
            <version>2.0</version>
        </dependency>

        <dependency>
            <groupId>net.sourceforge.jexcelapi</groupId>
            <artifactId>jxl</artifactId>
            <version>2.6.10</version>
        </dependency>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>servlet-api</artifactId>
            <version>2.4</version>
            <scope>provided</scope>
        </dependency>
    
  </dependencies>
  <build>
        <plugins>
            <!-- 资源文件拷贝插件 -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-resources-plugin</artifactId>
                <version>3.0.2</version>
                <configuration>
                    <encoding>UTF-8</encoding>
                </configuration>
            </plugin>
            <!-- java编译插件 -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.6.1</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                    <encoding>UTF-8</encoding>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.tomcat.maven</groupId>
                <artifactId>tomcat7-maven-plugin</artifactId>
                <version>2.2</version>
                <configuration>
                    <path>/capital</path>
                    <port>8080</port>
                    <!-- tomcat设置utf-8转码 -->
                    <uriEncoding>utf-8</uriEncoding>
                </configuration>
            </plugin>
        </plugins>
        </build>
</project>
复制代码

2.配置web.xml

复制代码
<?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"
    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>ssmdemo</display-name>
    <!-- 加载spring配置文件 -->
    <!-- 配置spring -->

    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath:application-context.xml</param-value>
    </context-param>

    <!-- spring监听器 -->

    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>


    <!-- springmvc servlet -->
    <servlet>
        <servlet-name>springmvcservlet</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:springmvc_servlet.xml</param-value>
        </init-param>
    </servlet>
    <servlet-mapping>
        <servlet-name>springmvcservlet</servlet-name>
        <url-pattern>*.do</url-pattern>
    </servlet-mapping>
    <welcome-file-list>
        <welcome-file>login.jsp</welcome-file>
    </welcome-file-list>
    <filter>
        <filter-name>characterEncodingFilter</filter-name>
        <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
        <init-param>
            <param-name>encoding</param-name>
            <param-value>UTF-8</param-value>
        </init-param>
        <init-param>
            <param-name>forceEncoding</param-name>
            <param-value>true</param-value>
        </init-param>
    </filter>
    <filter-mapping>
        <filter-name>characterEncodingFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>


</web-app>
复制代码

 

3.在resources下配置springmvc_servlet.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:jdbc="http://www.springframework.org/schema/jdbc"
    xmlns:context="http://www.springframework.org/schema/context"
    xsi:schemaLocation="
     http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd
     http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
     http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc-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/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd">
    
<!-- spring扫描 -->
    <context:component-scan base-package="org.lpf">
        <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
    </context:component-scan>
    
    <!-- 配置springmvc视图 -->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/"></property>
        <property name="suffix" value=".jsp"></property> 
    </bean>
    
      <bean id="stringHttpMessage"
        class="org.springframework.http.converter.StringHttpMessageConverter">
        <property name="supportedMediaTypes">
            <list>
                <value>text/html;charset=UTF-8</value>
                <value>text/plain;charset=UTF-8</value>
            </list>
        </property>
    </bean>
  

</beans>
复制代码

4.在resources下配置application-context.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:jdbc="http://www.springframework.org/schema/jdbc"
    xmlns:context="http://www.springframework.org/schema/context"
    xsi:schemaLocation="
     http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd
     http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
     http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc-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/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd">
    
    <!-- 配置spring扫描 -->
    <context:component-scan base-package="org.lpf">
        <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
    </context:component-scan>
    
    <!--2 c3p0连接池 -->
    <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
        <property name="driverClass" value="com.mysql.jdbc.Driver"></property>
        <property name="jdbcUrl" value="jdbc:mysql://localhost:3306/ssm_demo"></property>
        <property name="user" value="root"></property>
        <property name="password" value="root"></property>
    </bean>
    
    <!-- mybaties配置 -->
    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="dataSource" ref="dataSource"></property>
        <property name="mapperLocations" value="classpath:org/lpf/Mapper/*.xml"></property>
        <property name="typeAliasesPackage" value="org.lpf.entity.User"></property>
    </bean>
    
    <!-- mybatie 扫描 -->
    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <property name="basePackage" value="org.lpf.dao"></property>
    </bean>
    
    <!-- spring事务 -->
    <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        <property name="dataSource" ref="dataSource"></property>
    </bean>
    
    <!-- 开启注解事务 -->
    <tx:annotation-driven transaction-manager="transactionManager"/>
</beans>
复制代码

5.在java下新建包

  

6.在entity包下新建实体类User.java

 

复制代码
package org.lpf.entity;
/** 
* @author user:11963
* @version date:2017年12月12日 下午8:56:29 
* 
*/
public class User {
    private  int id;
    private String name;
    private String password;
    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;
    }
    public String getPassword() {
        return password;
    }
    public void setPassword(String password) {
        this.password = password;
    }
    @Override
    public String toString() {
        return "User [id=" + id + ", name=" + name + ", password=" + password + "]";
    }
    
}
复制代码

 

7.在mapper包下新建UserMapper.xml

复制代码
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" 
    "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.lpf.dao.UserDao">
    
    <!-- 登录 -->
    <select id="dologin"  parameterType="org.lpf.entity.User" resultType="org.lpf.entity.User">
    select * from user  where name=#{name} and
        password=#{password}
    </select>

</mapper>
复制代码

8.在dao包下新建UserDao.java

复制代码
package org.lpf.dao;
/** 
* @author user:11963
* @version date:2017年12月12日 下午8:58:08 
* 
*/

import org.lpf.entity.User;

public interface UserDao {
    public User dologin(User user);
    
}
复制代码

9.在service下新建UserService.java

复制代码
package org.lpf.service;

import org.lpf.entity.User;

/** 
* @author user:11963
* @version date:2017年12月12日 下午9:09:26 
* 
*/
public interface UserService {
    public User dologin(User user);
    
}
复制代码

10.在impl包下新建UserServiceImpl.java

复制代码
package org.lpf.service.impl;

import org.lpf.dao.UserDao;
import org.lpf.entity.User;
import org.lpf.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

/** 
* @author user:11963
* @version date:2017年12月12日 下午9:10:52 
* 
*/
@Service
@Transactional
public class UserServiceImpl implements UserService{
    @Autowired
    private UserDao userDao;
    
    @Override
    public User dologin(User user) {
        // TODO Auto-generated method stub
        return this.userDao.dologin(user);
    }
    
    
}
复制代码

11.在controller在新建UserController.java

复制代码
package org.lpf.controller;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;

import org.lpf.entity.User;
import org.lpf.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

/** 
* @author user:11963
* @version date:2017年12月12日 下午9:21:02 
* 
*/
@Controller
@RequestMapping("/user/")
public class UserController {
    @Autowired(required=true)
    private UserService service;
    
    public UserController() {
        // TODO Auto-generated constructor stub
    }
    
    @RequestMapping("login")
    public String login(User user,HttpServletRequest request,HttpSession session){
        System.out.print("!!!!!");
        User users=new User();
        users=service.dologin(user);
        return "index";
    }
    
}
复制代码

12.编写jsp:

  login.jsp

复制代码
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%
    String path = request.getContextPath();
    String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort()
            + path + "/";
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<head>
<meta charset="UTF-8">
<title>欢迎登录</title>
<script src='http://www.5iweb.com.cn/statics/js/jquery.1.7.1.min.js'></script>
</body>
<style type="text/css">
#code {
    font-family: Arial;
    font-style: italic;
    font-weight: bold;
    border: 0;
    letter-spacing: 2px;
    color: blue;
}
</style>
<script type="text/javascript">
    //设置一个全局的变量,便于保存验证码
    var code;
    function createCode() {
        //首先默认code为空字符串
        code = '';
        //设置长度,这里看需求,我这里设置了4
        var codeLength = 4;
        var codeV = document.getElementById('code');
        //设置随机字符
        var random = new Array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 'A', 'B', 'C',
                'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O',
                'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z');
        //循环codeLength 我设置的4就是循环4次
        for (var i = 0; i < codeLength; i++) {
            //设置随机数范围,这设置为0 ~ 36
            var index = Math.floor(Math.random() * 36);
            //字符串拼接 将每次随机的字符 进行拼接
            code += random[index];
        }
        //将拼接好的字符串赋值给展示的Value
        codeV.value = code;
    }

    //下面就是判断是否== 的代码,无需解释
    function validate() {
        var oValue = document.getElementById('input').value.toUpperCase();
        if (oValue == 0) {
            alert('请确认是否输入正确!');
            window.location.reload();
            //window.history.go(-1);
            //window.history.go(0);
            //window.navigate(location) 
            event.preventDefault();
            return true;
        } else if (oValue != code) {
            alert('验证码不正确,请重新输入!');
            window.location.reload();
            /* window.history.go(-1);
            window.history.go(0);
            window.navigate(location)  */
            event.preventDefault();
            return true;
        } else {
            alert('登陆成功,感谢您的使用!');
            $("#form1").submit();
        }
    }

    //设置此处的原因是每次进入界面展示一个随机的验证码,不设置则为空
    window.onload = function() {

        createCode();
    }
</script>
<script typet="text/javascript"
    src="http://libs.baidu.com/jquery/1.8.3/jquery.min.js"></script>

<base href="<%=basePath%>">
<title>用户登录</title>

</head>

<h1>
    <i class="icon-leaf green"></i> <span class="red">SSM(SpringMVC+Spring+Mybaties)整合</span> <span
        class="white">Demo</span>
</h1>
<h4 class="header blue lighter bigger">
    <i class="icon-coffee green"></i> 请输入您的账号和密码
</h4>

<form action="user/login.do" method="post" onsubmit="return check()"
    name="form1" id="form1">
    <fieldset>
        <label class="block clearfix"> <span
            class="block input-icon input-icon-right"> <input id="userId"
                name="name" type="text" class="form-control" placeholder="请输入账号" />
                <i class="icon-user"></i><br>
        </span>
        </label> <label class="block clearfix"> <span
            class="block input-icon input-icon-right"> <input id="userPw"
                name="password" type="password" class="form-control"
                placeholder="请输入密码" /> <i class="icon-lock"></i>
        </span>
        </label>

        <div class="clearfix">
            <input type="text" id="input" value="" /> <input type="button"
                id="code" onclick="createCode()" /> <br> <input type="submit"
                class="width-35 pull-right btn btn-sm btn-primary" class="icon-key"
                value="登陆" onclick="validate()" />
        </div>


    </fieldset>
</form>


</body>
</html>
复制代码

  index.jsp

<html>
<body>
<h2>Hello World!</h2>
</body>
</html>

框架搭建完成,下面会有下载的地址,拿去用的同学记得改一下c3p0链接池的数据库登录信息

链接: https://pan.baidu.com/s/1slA2pjv 密码: ths2 (包含项目和sql脚本)


  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 基于SSMSpring+SpringMVC+MyBatis)的管理系统是一种常见的Web应用程序,它使用Spring框架作为应用程序的核心SpringMVC框架作为Web层的控制器,MyBatis框架作为数据访问层的ORM框架。这种管理系统可以用于各种企业级应用程序,例如人力资源管理系统、客户关系管理系统、库存管理系统等。它具有易于扩展、高效、安全等优点,是现代企业信息化建设的重要组成部分。 ### 回答2: SSM是指基于SpringSpringMVCMyBatis这三个框架技术实现的一种Web应用开发模式。在SSM框架Spring框架主要作为IoC容器和Bean工厂,提供依赖注入、事务管理、AOP等能,SpringMVC框架主要负责Web层的控制器部分,处理HTTP请求和响应,而MyBatis框架则用于持久层的数据访问和管理,提供了高效且易于维护的数据库访问操作。 基于SSM框架的管理系统可以分为前台和后台两个系统。前台主要面向普通用户,提供浏览、查询、注册、登录等能,让用户能够方便地使用系统。后台主要面向管理员或管理人员,提供对系统各种业务数据的管理、修改、删除等能,让管理人员能够对系统运行情况进行有效的监控和控制。 在基于SSM框架的管理系统,需要进行技术选型、模块设计、业务实现等工作。首先,需要根据具体需求选择合适的技术方案和架构模式。其次,需要对各个模块进行梳理,按照能划分,确定模块之间的关系和交互方式,最终实现整个系统的业务逻辑。同时,需要注意系统的可扩展性、可维护性和安全性,保证系统的数据安全,同时能够满足系统的不断发展和升级的需要。 总之,基于SSM框架的管理系统,可以通过合理运用SpringSpringMVCMyBatis等技术,实现系统的各种业务逻辑。开发人员需要具备扎实的Java技术和Web开发经验,同时需要熟悉相关的数据库技术和网络协议,才能够顺利地完成系统的设计和开发。 ### 回答3: SSM是目前非常流行的一种技术架构,它是SpringSpringMVCMyBatis三个框架的结合,每个框架具有自己的优势和能,通过整合,可以快速地搭建一个高效、可维护的管理系统。 在SSM框架下,可以将系统分为三层:表现层、业务层和持久层。表现层由SpringMVC处理用户请求和响应,业务层由Spring实现,而持久层则使用MyBatis实现数据库交互。 在搭建一个基于SSM的管理系统时,首先需要进行配置。Spring的配置包括Spring核心配置文件、数据源的配置和事务的配置;SpringMVC的配置包括MVC配置文件、拦截器等;MyBatis的配置包括数据库连接池、Mapper文件和MyBatis的配置文件等。这些都需要进行详细的配置。 在系统开发,可以通过Maven对项目进行管理,比如添加依赖、打包等。同时,也可以使用Spring Security对系统进行安全性的保护,实现权限控制等能。 在具体的业务实现,可以根据需要添加各种插件、拦截器和过滤器等,还可以使用Redis等缓存技术,提高系统的性能和效率。 总的来说,基于SSM的管理系统具有以下优点:首先,框架整合可以提高开发效率,减少重复代码。其次,各个框架都具有良好的扩展性和可维护性,方便对系统进行升级和调整。最后,使用Maven进行项目管理,可以更好地管理依赖,提高项目效率。 当然,也需要注意SSM框架的缺点,比如框架整合带来的额外配置和调试成本,以及MyBatis可能存在的一些瓶颈等问题。综上所述,基于SSM的管理系统适合小型项目,能够提高开发效率,降低开发难度,实现快速迭代和维护,是一种非常实用的技术方案。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值