1. 程式人生 > >Intellij-IDEA搭建SrpingMVC+Spring+Mybatis+Bootstrap+分頁(一)

Intellij-IDEA搭建SrpingMVC+Spring+Mybatis+Bootstrap+分頁(一)

1.環境介紹

  • Intellij-IDEA:2017.3.2
  • JDK:1.8.0_77
  • Maven:3.5.0
  • Tomcat:8.5.20
  • mysql:5.7.19

Intellij-IDEA安裝配置相關連結

2.建立一個maven專案

一步一步往下走就行
這裡寫圖片描述
這裡寫圖片描述
這裡寫圖片描述
這裡寫圖片描述

看到import change 記得點一下
這裡寫圖片描述
到這裡整個maven工程就建立完了,下面是整個maven工程的目錄
這裡寫圖片描述
似乎好像少了個java資料夾,那我們就自己建一個
這裡寫圖片描述
假如這時候我們想在java資料夾中建一個類,會發現找不到建立class這個選項
這裡寫圖片描述
這時候我們需要將java資料夾設定為sources
這裡寫圖片描述
這裡寫圖片描述
這時候發現有了class選項,還多了很多其他的可選操作


這裡寫圖片描述

2.搭建目錄結構

這裡寫圖片描述

3.設定配置檔案

先配置pom,xlm,引入相關jar

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.xujd</groupId>
  <artifactId>xujd-ssm</artifactId>
  <packaging>war</packaging>
  <version>1.0-SNAPSHOT</version>
  <name>xujd-ssm Maven Webapp</name>
  <url>http://maven.apache.org</url>

  <properties>
    <!-- 設定專案編碼 -->
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    <!-- spring版本號 -->
    <spring.version>4.3.5.RELEASE</spring.version>
    <!-- mybatis版本號 -->
    <mybatis.version>3.4.1</mybatis.version>
    <!-- log4j日誌檔案管理包版本 -->
    <slf4j.version>1.7.7</slf4j.version>
    <log4j.version>1.2.17</log4j.version>
    <!-- jackson包版本 -->
    <jackson.version>2.5.0</jackson.version>
  </properties>

  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>

    <!--新增java ee依賴-->
    <dependency>
      <groupId>javax</groupId>
      <artifactId>javaee-api</artifactId>
      <version>7.0</version>
    </dependency>

    <!-- 實現slf4j介面並整合 -->
    <dependency>
      <groupId>ch.qos.logback</groupId>
      <artifactId>logback-classic</artifactId>
      <version>1.2.2</version>
    </dependency>

    <!-- 新增JSON依賴 -->
    <dependency>
      <groupId>com.fasterxml.jackson.core</groupId>
      <artifactId>jackson-databind</artifactId>
      <version>2.8.7</version>
    </dependency>

    <!-- 新增mysql驅動依賴 -->
    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>5.1.41</version>
      <scope>runtime</scope>
    </dependency>

    <!-- 新增資料庫連線池 -->
    <dependency>
      <groupId>com.mchange</groupId>
      <artifactId>c3p0</artifactId>
      <version>0.9.5.2</version>
    </dependency>

    <!-- 新增MyBatis依賴 -->
    <dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis</artifactId>
      <version>${mybatis.version}</version>
    </dependency>

    <!-- 新增mybatis/spring整合包依賴 -->
    <dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis-spring</artifactId>
      <version>1.3.1</version>
    </dependency>

    <!-- 新增Spring核心依賴 -->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-core</artifactId>
      <version>${spring.version}</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-beans</artifactId>
      <version>${spring.version}</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-context</artifactId>
      <version>${spring.version}</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-context-support</artifactId>
      <version>${spring.version}</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-jdbc</artifactId>
      <version>${spring.version}</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-tx</artifactId>
      <version>${spring.version}</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-web</artifactId>
      <version>${spring.version}</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-webmvc</artifactId>
      <version>${spring.version}</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-test</artifactId>
      <version>${spring.version}</version>
    </dependency>

    <!--新增servlet依賴-->
    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>javax.servlet-api</artifactId>
      <version>3.0.1</version>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>javax.servlet.jsp</groupId>
      <artifactId>jsp-api</artifactId>
      <version>2.2</version>
      <scope>provided</scope>
    </dependency>

    <!-- 新增JSTL標籤類依賴 -->
    <dependency>
      <groupId>jstl</groupId>
      <artifactId>jstl</artifactId>
      <version>1.2</version>
      
    </dependency>

    <!-- 新增日誌相關jar包 -->
    <dependency>
      <groupId>log4j</groupId>
      <artifactId>log4j</artifactId>
      <version>1.2.17</version>
    </dependency>
  </dependencies>

  <build>
    <finalName>xujd-ssm</finalName>
  </build>
</project>

web.xml配置:

<!DOCTYPE web-app PUBLIC
 "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
 "http://java.sun.com/dtd/web-app_2_3.dtd" >
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
         version="3.1">

  <!-- 編碼過濾器 -->
  <filter>
    <filter-name>encodingFilter</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>
  </filter>

  <filter-mapping>
    <filter-name>encodingFilter</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>

  <!-- 配置DispatcherServlet -->
  <servlet>
    <servlet-name>SpringMVC</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <!-- 配置springMVC需要載入的配置檔案-->
    <init-param>
      <param-name>contextConfigLocation</param-name>
      <param-value>classpath:spring-*.xml</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
    <async-supported>true</async-supported>
  </servlet>

  <servlet-mapping>
    <servlet-name>SpringMVC</servlet-name>
    <!-- 匹配所有請求,此處也可以配置成 *.do 形式 -->
    <url-pattern>/</url-pattern>
  </servlet-mapping>

  <!--訪問專案名 預設開啟頁面-->
  <welcome-file-list>
    <welcome-file>/WEB-INF/views/login.jsp</welcome-file>
  </welcome-file-list>

</web-app>

jdbc.properties配置:

#mysql驅動
jdbc.driver=com.mysql.jdbc.Driver
#mysql地址
jdbc.url=jdbc:mysql://localhost:3306/idea-ssm?useUnicode=true&characterEncoding=utf8
#賬號
jdbc.username=root
#密碼
jdbc.password=123456
#最大連線數
c3p0.maxPoolSize=30
#最小連線數
c3p0.minPoolSize=10
#關閉連線後不自動commit
c3p0.autoCommitOnClose=false
#獲取連線超時時間
c3p0.checkoutTimeout=10000
#當獲取連線失敗重試次數
c3p0.acquireRetryAttempts=2

logback.xml配置:

<?xml version="1.0" encoding="UTF-8"?>
<configuration debug="true">
    <!--控制檯輸出 -->
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>xujd--%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
        </encoder>
    </appender>
    <!-- root將級別為“DEBUG”及大於“DEBUG”的日誌資訊交給已經配置好的名為“Console”的appender處理,“Console”appender將資訊列印到Console -->
    <root level="debug">
        <appender-ref ref="STDOUT"/>
    </root>
</configuration>

spring-mvc.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:context="http://www.springframework.org/schema/context"
       xmlns:mvc="http://www.springframework.org/schema/mvc"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
       http://www.springframework.org/schema/beans/spring-beans.xsd
       http://www.springframework.org/schema/context
       http://www.springframework.org/schema/context/spring-context.xsd
       http://www.springframework.org/schema/mvc
       http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd">

    <!-- 掃描web相關的bean -->
    <context:component-scan base-package="com.xujd.controller"/>

    <!-- 開啟SpringMVC註解模式 -->
    <mvc:annotation-driven/>

    <!-- 靜態資源預設servlet配置 -->
    <mvc:default-servlet-handler/>
    <!-- 靜態資源對映 -->
    <mvc:resources mapping="/img/**" location="/img/" />
    <mvc:resources mapping="/js/**" location="/js/" />

    <!-- REST中根據URL字尾自動判定Content-Type及相應的View -->
    <bean id="contentNegotiationManager" class="org.springframework.web.accept.ContentNegotiationManagerFactoryBean">
        <property name="mediaTypes">
            <map>
                <entry key="xml" value="application/xml"/>
                <entry key="json" value="application/json"/>
            </map>
        </property>
        <property name="ignoreAcceptHeader" value="true"/>
        <property name="favorPathExtension" value="true"/>
    </bean>

    <!-- 配置檢視解析器 顯示ViewResolver -->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
        <property name="prefix" value="/WEB-INF/views/"/>
        <property name="suffix" value=".jsp"/>
    </bean>

</beans>

spring-mybatis.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:context="http://www.springframework.org/schema/context"
       xmlns:tx="http://www.springframework.org/schema/tx"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
       http://www.springframework.org/schema/beans/spring-beans.xsd
       http://www.springframework.org/schema/context
       http://www.springframework.org/schema/context/spring-context.xsd
       http://www.springframework.org/schema/tx
       http://www.springframework.org/schema/tx/spring-tx.xsd">

    <!-- 掃描service包下所有使用註解的型別 -->
    <context:component-scan base-package="com.xujd.service"/>

    <!-- 配置資料庫相關引數properties的屬性:${url} -->
    <context:property-placeholder location="classpath:jdbc.properties"/>

    <!-- 資料庫連線池 -->
    <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
        <property name="driverClass" value="${jdbc.driver}"/>
        <property name="jdbcUrl" value="${jdbc.url}"/>
        <property name="user" value="${jdbc.username}"/>
        <property name="password" value="${jdbc.password}"/>
        <property name="maxPoolSize" value="${c3p0.maxPoolSize}"/>
        <property name="minPoolSize" value="${c3p0.minPoolSize}"/>
        <property name="autoCommitOnClose" value="${c3p0.autoCommitOnClose}"/>
        <property name="checkoutTimeout" value="${c3p0.checkoutTimeout}"/>
        <property name="acquireRetryAttempts" value="${c3p0.acquireRetryAttempts}"/>
    </bean>

    <!-- 配置SqlSessionFactory物件 -->
    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <!-- 注入資料庫連線池 -->
        <property name="dataSource" ref="dataSource"/>
        <!-- 掃描model包 使用別名 -->
        <property name="typeAliasesPackage" value="com.xujd.model"/>
        <!-- 掃描sql配置檔案:mapper需要的xml檔案 -->
        <property name="mapperLocations" value="classpath:mapper/*.xml"/>
    </bean>

    <!-- 配置掃描Dao介面包,動態實現Dao介面,注入到spring容器中 -->
    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <!-- 注入sqlSessionFactory -->
        <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/>
        <!-- 給出需要掃描Dao介面包 -->
        <property name="basePackage" value="com.xujd.dao"/>
    </bean>

    <!-- 配置事務管理器 -->
    <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        <!-- 注入資料庫連線池 -->
        <property name="dataSource" ref="dataSource"/>
    </bean>

    <!-- 配置基於註解的宣告式事務 -->
    <tx:annotation-driven transaction-manager="transactionManager"/>

</beans>

4.建表和完善程式碼

建表語句

CREATE TABLE `userinfo` (
  `ID` int(128) NOT NULL AUTO_INCREMENT,
  `NAME` varchar(128) COLLATE utf8_bin DEFAULT NULL COMMENT '姓名',
  `AGE` int(8) DEFAULT NULL COMMENT '年齡',
  `LOGINNAME` varchar(128) COLLATE utf8_bin DEFAULT NULL COMMENT '登入賬號',
  `PASSWORD` varchar(128) COLLATE utf8_bin DEFAULT NULL COMMENT '密碼',
  PRIMARY KEY (`ID`)
) ENGINE=InnoDB AUTO_INCREMENT=21 DEFAULT CHARSET=utf8 COLLATE=utf8_bin;

這是我的測試資料,不想自己加資料可以直接用我的

INSERT INTO `userinfo` VALUES ('1', '張三', '24', 'admin', '123');
INSERT INTO `userinfo` VALUES ('3', '李四', '22', '123', '123');
INSERT INTO `userinfo` VALUES ('4', '王二', '21', 'wanger', '123');
INSERT INTO `userinfo` VALUES ('5', '丐幫', '25', 'gaibang', '123');
INSERT INTO `userinfo` VALUES ('6', '明教', '27', 'mingjiao', '123');
INSERT INTO `userinfo` VALUES ('7', '武當', '28', 'wudang', '123');
INSERT INTO `userinfo` VALUES ('8', '少林', '29', 'shaolin', '123');
INSERT INTO `userinfo` VALUES ('9', '峨眉', '24', 'emei', '123');
INSERT INTO `userinfo` VALUES ('10', '天山', '25', 'tianshan', '123');
INSERT INTO `userinfo` VALUES ('11', '逍遙', '25', 'xiaoyao', '123');
INSERT INTO `userinfo` VALUES ('12', '唐門', '26', 'tangmen', '123');
INSERT INTO `userinfo` VALUES ('13', '慕容', '23', 'murong', '123');
INSERT INTO `userinfo` VALUES ('14', '馬雲', '56', 'mayun', '123');
INSERT INTO `userinfo` VALUES ('15', '百度', '12', 'baidu', '123');
INSERT INTO `userinfo` VALUES ('16', '華為', '23', 'huawei', '123');
INSERT INTO `userinfo` VALUES ('17', '騰訊', '16', 'tengxun', '123');
INSERT INTO `userinfo` VALUES ('18', '微軟', '12', 'weiruan', '123');
INSERT INTO `userinfo` VALUES ('19', '網易', '18', 'wangyi', '123');
INSERT INTO `userinfo` VALUES ('20', '阿里巴巴', '19', 'alibaba', '123');

UserInfo

package com.xujd.model;

public class UserInfo {
    private int id;
    private String name;
    private int age;
    private String loginName;
    private String password;
    private int startRow;
    private int endRow;
    
    getter、setter省略。。。
    IDEA中快速構建get和set:Alt+insert  
}

UserInfoDao
介面先寫好,裡面這些函式到時候會用上的
IDEA 快速導包:Alt+enter

package com.xujd.dao;

import com.xujd.model.UserInfo;

import java.util.List;

public interface UserInfoDao {
    /**
     *新增使用者資訊
     * @param userInfo
     */
    void insertUser(UserInfo userInfo);

    /**
     * 刪除使用者
     * @param id
     */
    void deleteUser(int id);

    /**
     * 修改使用者資訊
     * @param userInfo
     */
    void updateUser(UserInfo userInfo);
    /**
     * 根據ID獲取使用者資訊
     * @param id
     * @return
     */
    UserInfo selectUserById(int id);
    /**
     * 獲取所有使用者資訊
     * @return
     */
    List<UserInfo> selectAll();

    /**
     * 根據登入名獲取使用者
     * @param
     * @return
     */
    UserInfo selectUserByLoginName(String loginName);

    /**
     * 根據查詢條件獲取使用者
     * @param userInfo
     * @return
     */
    List<UserInfo> selectUserByParams(UserInfo userInfo);

    /**
     * 獲取所有使用者數量
     * @return
     */
    int selectUserCount();
}

UserInfoService

package com.xujd.service;

import com.xujd.model.UserInfo;

import java.util.List;

public interface UserInfoService {
    /**
     *新增使用者資訊
     * @param user
     */
    void insertUser(UserInfo user);

    /**
     * 刪除使用者
     * @param id
     */
    void deleteUser(int id);

    /**
     * 修改使用者資訊
     * @param user
     */
    void updateUser(UserInfo user);
    /**
     * 根據ID獲取使用者資訊
     * @param id
     * @return
     */
    UserInfo selectUserById(int id);
    /**
     * 獲取所有使用者資訊
     * @return
     */
    List<UserInfo> selectAll();
    /**
     * 根據登入名獲取使用者
     * @param 
     * @return
     */
    UserInfo selectUserByLoginName(String loginName);

    /**
     * 根據查詢條件獲取使用者
     * @param userInfo
     * @return
     */
    List<UserInfo> selectUserByParams(UserInfo userInfo);

    /**
     * 獲取所有使用者數量
     * @return
     */
    int selectUserCount();
}

UserInfoServiceImpl

package com.xujd.service.Impl;

import com.xujd.dao.UserInfoDao;
import com.xujd.model.UserInfo;
import com.xujd.service.UserInfoService;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.util.List;
@Service("userInfoService")
public class UserInfoServiceImpl implements UserInfoService {
    @Resource
    private UserInfoDao userInfoDao;

    public void insertUser(UserInfo user) {
        userInfoDao.insertUser(user);
    }

    public void deleteUser(int id) {
        userInfoDao.deleteUser(id);
    }

    public void updateUser(UserInfo user) {
        userInfoDao.updateUser(user);
    }

    public UserInfo selectUserById(int id) {
        return userInfoDao.selectUserById(id);
    }

    public List<UserInfo> selectAll() {
        return userInfoDao.selectAll();
    }

    public UserInfo selectUserByLoginName(String loginName) {
        return userInfoDao.selectUserByLoginName(loginName);
    }

    public List<UserInfo> selectUserByParams(UserInfo userInfo) {
        return userInfoDao.selectUserByParams(userInfo);
    }
    public int selectUserCount() {
        return userInfoDao.selectUserCount();
    }
}

UserInfoController
這裡用到了一個登入頁面和一個主頁面。

package com.xujd.controller;

import com.xujd.model.UserInfo;
import com.xujd.service.UserInfoService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;


@Controller
@RequestMapping("/user")
public class UserInfoController {
    @Autowired
    private UserInfoService userInfoService;

    /**
     * 使用者登入
     * @param userInfo
     * @return
     */
    @RequestMapping("/login")
    public String login(UserInfo userInfo, Model model){
        String msg="";
        //根據登入賬號判斷該使用者是否存在
        UserInfo user = userInfoService.selectUserByLoginName(userInfo.getLoginName());
        if(user==null){
            msg="該使用者不存在!";
        }else{
            if(user.getPassword().equals(userInfo.getPassword())){
                //驗證成功進入主介面
                model.addAttribute("userInfo",user);
                return "/main";
            }else{
                msg="密碼錯誤!";
            }
        }
        model.addAttribute("msg",msg);
        return "/login";
    }

}

UserInfo_sql

<?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">

<!-- 設定為UserDao介面方法提供sql語句配置 -->
<mapper namespace="com.xujd.dao.UserInfoDao">
    <insert id="insertUser" parameterType="UserInfo">
        INSERT INTO USERINFO(NAME,AGE,LOGINNAME,PASSWORD)VALUES(#{name},#{age},#{loginName},#{password})
    </insert>

    <delete id="deleteUser" parameterType="int">
        DELETE FROM USERINFO WHERE ID=#{id}
    </delete>
    <update id="updateUser" parameterType="UserInfo">
        UPDATE USERINFO
        <set>
            <if test="name!=null and name!=''">NAME =#{name},</if>
            <if test="age!=null and age!=''">AGE =#{age},</if>
            <if test="loginName!=null and loginName!=''">LOGINNAME =#{loginName},</if>
            <if test="password!=null and password!=''">PASSWORD =#{password}</if>
        </set>
        where ID=#{id}
    </update>

    <select id="selectUserById" resultType="UserInfo" parameterType="int">
        SELECT * FROM USERINFO WHERE id = #{id}
    </select>

    <select id="selectAll" resultType="UserInfo">
        SELECT * FROM USERINFO order by id desc
    </select>

    <select id="selectUserByLoginName" parameterType="java.lang.String" resultType="UserInfo">
        SELECT * FROM USERINFO WHERE LOGINNAME=#{loginName}
    </select>

    <select id="selectUserByParams" resultType="UserInfo" parameterType="UserInfo">
        SELECT * FROM USERINFO
        <where>
            <if test="name!=null and name!=''">and NAME=#{name}</if>
            <if test="loginName!=null and loginName!=''">and LOGINNAME=#{loginName}</if>
        </where>
        order by id desc
    </select>

    <select id="selectUserCount" resultType="int">
        select count(*) from USERINFO
    </select>
</mapper>

5.登入頁面和主頁面

在views目錄下新建兩個頁面login.jsp和main.jsp

login.jsp

<%@ page contentType="text/html;charset=UTF-8"%>
<%
    /*獲取工程路徑*/
    String path = request.getContextPath();
    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<html>
<head>
    <title>登入頁面</title>
</head>
<body>
    <div>
        <form action="<%=basePath%>user/login" method="post">
            <div style="text-align: center;margin-top: 100px;">
                <h3>${msg}</h3>
                <input type="text" name="loginName" placeholder="LoginName">
                <input type="password" name="password" placeholder="password">
                <input type="submit" value="登入">
            </div>
        </form>
    </div>
</body>
</html>



main.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<div style="text-align: center;margin-top: 100px;">
<h1>登入成功!</h1>
</div>
</body>
</html>


6.配置tomcat,啟動應用測試

這裡寫圖片描述
這裡寫圖片描述
這裡寫圖片描述
這裡寫圖片描述
這裡寫圖片描述
這裡寫圖片描述
配置好了啟動應用
這裡寫圖片描述
啟動成功
這裡寫圖片描述
訪問localhost:8080
這裡寫圖片描述
輸入admin 123 登入
這裡寫圖片描述

到這裡Intellij IDEA搭建SSM完成了,頁面有些敷衍,望海涵!!
本文原始碼下載地址:Intellij IDEA搭建SSM框架
GitHub下載地址:Intellij IDEA搭建SSM框架小夥伴們記得點個star喲,非常感謝!!

下一遍文章將在此篇文章的基礎上做完善,包括頁面上的一些設計,分頁,整合Bootstrap等,敬請期待!!