Compare commits

...

164 Commits

Author SHA1 Message Date
p6jzelshw fd9f67070b Delete 'src/test/java/com/dao/UserTest.java'
2 years ago
p6jzelshw da873d6dc8 Update npm.js
2 years ago
p6jzelshw 5ae19810b7 Update bootstrap.min.js
2 years ago
p6jzelshw 74bc6c9ca9 Update bootstrap.js
2 years ago
p6jzelshw a317b79e9b ADD file via upload
2 years ago
p6jzelshw 8935100939 Delete 'src/main/webapp/bootstrap/js/bootstrap.jsp'
2 years ago
p6jzelshw c0ed856d2b ADD file via upload
2 years ago
p6jzelshw 8669b92466 ADD file via upload
2 years ago
p6jzelshw e1de00389b Update EmpServiceImpl.java
2 years ago
pnxqwic3z d7c43d2d12 ADD file via upload
2 years ago
pnxqwic3z e35562265d ADD file via upload
2 years ago
pnxqwic3z 015b5285b5 Delete 'src/main/webapp/bootstrap/css/bootstrap.css'
2 years ago
pnxqwic3z 4b56096597 ADD file via upload
2 years ago
pnxqwic3z 1e301d6120 ADD file via upload
2 years ago
pfk4vawr6 fbc53c5ad9 ADD file via upload
2 years ago
pfk4vawr6 c798323edf Add jquery.validate.js
2 years ago
pfk4vawr6 5e5a219142 Update DepartmentController.java
2 years ago
p6jzelshw 30d0059644 ADD file via upload
2 years ago
p6jzelshw 870f5b6a97 Update log4j.properties
2 years ago
p6jzelshw 9b8a96f3fb Update jdbc.properties
2 years ago
p6jzelshw 604e689f9e ADD file via upload
2 years ago
p6jzelshw 80845ef914 ADD file via upload
2 years ago
p6jzelshw bfe049d9bc ADD file via upload
2 years ago
p6jzelshw 5f48f74b1f Delete 'pom.xml'
2 years ago
p6jzelshw e068ac10b6 ADD file via upload
2 years ago
p6jzelshw 882b2076fd Delete '.idea/workspace.xml'
2 years ago
p6jzelshw c9aec8fde0 Update Visitor.java
2 years ago
p6jzelshw a3d0446867 Update TestEntity.java
2 years ago
p6jzelshw 7617bec2ba Update Employee.java
2 years ago
p6jzelshw 527881174a Update Department.java
2 years ago
p6jzelshw 8e2fd9fc01 Update jdbc.properties
2 years ago
p6jzelshw 98f30a53c6 Update visitor.jsp
2 years ago
p6jzelshw a6ce234325 Update userMsg.jsp
2 years ago
p6jzelshw 177ba01bcc Update updateEmployee.jsp
2 years ago
p6jzelshw 861e06d201 Update updateDepartment.jsp
2 years ago
p6jzelshw 451d4d6859 Update topbar.jsp
2 years ago
p6jzelshw 3ad04f1dc2 Update test.jsp
2 years ago
p6jzelshw ddf9d52338 Update modifyPwd.jsp
2 years ago
p6jzelshw 2d1268cb65 Update main.jsp
2 years ago
p6jzelshw 7545c2e729 Update leftMenu.jsp
2 years ago
py2tc4x5b ad22bfdb45 Update log4j.properties
2 years ago
p6jzelshw 194b14ff77 Update footer.jsp
2 years ago
p6jzelshw 5d68e38f74 Update employee.jsp
2 years ago
p6jzelshw 6d413bf11f Update department.jsp
2 years ago
py2tc4x5b 150b644554 Update jdbc.properties
2 years ago
p6jzelshw 7cef6db603 ADD file via upload
2 years ago
p6jzelshw a21a6140ea ADD file via upload
2 years ago
p6jzelshw dd2c86cc4c ADD file via upload
2 years ago
p6jzelshw ca5b156999 ADD file via upload
2 years ago
p6jzelshw a8ce5be345 ADD file via upload
2 years ago
p6jzelshw f18246a5c3 ADD file via upload
2 years ago
p6jzelshw 6073367e56 ADD file via upload
2 years ago
p6jzelshw 82d93fb71f ADD file via upload
2 years ago
p6jzelshw c13338ef8f ADD file via upload
2 years ago
p6jzelshw 46146af99d ADD file via upload
2 years ago
p6jzelshw d7f3472a5b ADD file via upload
2 years ago
p6jzelshw deeb1878ad ADD file via upload
2 years ago
pfk4vawr6 e1eb1819bc Update IVisitorService.java
2 years ago
p6jzelshw 61444d4467 Update addEmployee.jsp
2 years ago
pfk4vawr6 2af4a1dfc7 Update IUserService.java
2 years ago
p6jzelshw 09ac5fe1a4 ADD file via upload
2 years ago
pfk4vawr6 7f7bf15a5d Update IEmpService.java
2 years ago
py2tc4x5b 447484d200 Update loginController.java
2 years ago
pfk4vawr6 6fd0b648e3 Update IDeptService.java
2 years ago
pfk4vawr6 84c81ac62e Update DeptServiceImpl.java
2 years ago
py2tc4x5b 4f857a5b1b Update VistorController.java
2 years ago
pfk4vawr6 e006aeeb5e Update MD5Utils.java
2 years ago
py2tc4x5b ed59542143 Update TestController.java
2 years ago
py2tc4x5b 18bf840718 Update EmployeeController.java
2 years ago
p6jzelshw ebda3b01b5 Delete 'src/main/webapp/WEB-INF/pages/visitor.jsp'
2 years ago
p6jzelshw 42046798d4 Delete 'src/main/webapp/WEB-INF/pages/userMsg.jsp'
2 years ago
p6jzelshw b217d89930 Delete 'src/main/webapp/WEB-INF/pages/updateEmployee.jsp'
2 years ago
py2tc4x5b d9d97a8c06 Update DepartmentController.java
2 years ago
p6jzelshw 47d62f54b2 Delete 'src/main/webapp/WEB-INF/pages/updateDepartment.jsp'
2 years ago
p6jzelshw 1ef40c9173 Delete 'src/main/webapp/WEB-INF/pages/topbar.jsp'
2 years ago
p6jzelshw e90be3da0c Delete 'src/main/webapp/WEB-INF/pages/test.jsp'
2 years ago
p6jzelshw 6bf745eebe Delete 'src/main/webapp/WEB-INF/pages/modifyPwd.jsp'
2 years ago
p6jzelshw 1e16b33d9e Delete 'src/main/webapp/WEB-INF/pages/main.jsp'
2 years ago
p6jzelshw f71557d9bf Delete 'src/main/webapp/WEB-INF/pages/leftMenu.jsp'
2 years ago
p6jzelshw bda6121e7d Delete 'src/main/webapp/WEB-INF/pages/footer.jsp'
2 years ago
p6jzelshw d26f709491 Delete 'src/main/webapp/WEB-INF/pages/employee.jsp'
2 years ago
pfk4vawr6 d84d9c9edf Update main.jsp
2 years ago
p6jzelshw f19223d3a7 Delete 'src/main/webapp/WEB-INF/pages/department.jsp'
2 years ago
p6jzelshw 8094b9cad0 Delete 'src/main/webapp/WEB-INF/pages/addEmployee.jsp'
2 years ago
py2tc4x5b 4475105c33 ADD file via upload
2 years ago
py2tc4x5b 4601bafb9b Delete 'src/main/webapp/WEB-INF/web.xml'
2 years ago
p6jzelshw 6871ad975e Update about.jsp
2 years ago
p6jzelshw b0b7d2e655 ADD file via upload
2 years ago
p6jzelshw 3320d75889 ADD file via upload
2 years ago
p6jzelshw aa231b53b5 ADD file via upload
2 years ago
p6jzelshw 7c848af228 ADD file via upload
2 years ago
p6jzelshw 98b5533dd2 ADD file via upload
2 years ago
p6jzelshw b422f5a086 ADD file via upload
2 years ago
p6jzelshw 25cc78eac7 ADD file via upload
2 years ago
p6jzelshw 7c39f1b32f ADD file via upload
2 years ago
p6jzelshw 1ad40817da ADD file via upload
2 years ago
p6jzelshw 54d61cd198 ADD file via upload
2 years ago
p6jzelshw 69839a0114 ADD file via upload
2 years ago
p6jzelshw bad7757813 ADD file via upload
2 years ago
p6jzelshw 36864500fc Delete 'src/main/webapp/WEB-INF/department.jsp'
2 years ago
p6jzelshw 1b824080bd ADD file via upload
2 years ago
p6jzelshw 7df4f88288 ADD file via upload
2 years ago
p6jzelshw 5a9ac5d615 Merge pull request 'resourse' (#13) from py2tc4x5b/ssm:master into master
2 years ago
py2tc4x5b bedf7731f3 ADD file via upload
2 years ago
py2tc4x5b 463a696d2e ADD file via upload
2 years ago
py2tc4x5b 603078a78d Delete 'src/main/resources/mapper/userMapper.xml'
2 years ago
py2tc4x5b ada60fcbe6 ADD file via upload
2 years ago
py2tc4x5b b4dd022647 ADD file via upload
2 years ago
py2tc4x5b f673a7ed08 ADD file via upload
2 years ago
pfk4vawr6 61902b39c9 Update IVisitorDao.java
2 years ago
pfk4vawr6 a312687b54 ADD file via upload
2 years ago
pfk4vawr6 8a7bd97c3b Update IEmployeeDao.java
2 years ago
pfk4vawr6 9b3ebe39ca ADD file via upload
2 years ago
pfk4vawr6 64dfb84bcc Delete 'src/main/java/com/dao/IEmployeeDao'
2 years ago
pfk4vawr6 d07a34b4cf Update ITestDao.java
2 years ago
pfk4vawr6 3d18980b5a ADD file via upload
2 years ago
pfk4vawr6 8900f3c8ef Add IEmployeeDao
2 years ago
pfk4vawr6 701649899e Update IDepartmentDao.java
2 years ago
p6jzelshw 1e619d992f Merge pull request 'HE' (#11) from pnxqwic3z/ssm:master into master
2 years ago
pfk4vawr6 0e3fc7e10e Delete 'src/main/java/com/dao/ITestDao'
2 years ago
pfk4vawr6 2eb228d6a1 Delete 'src/main/java/com/dao/IEmployeeDao'
2 years ago
pfk4vawr6 f450deda9a Delete 'src/main/java/com/dao/IVisitorDao'
2 years ago
pfk4vawr6 d73b053dd2 Add IVisitorDao
2 years ago
pnxqwic3z 35e00244f4 ADD file via upload
2 years ago
pfk4vawr6 af9bb9688c Add ITestDao
2 years ago
pfk4vawr6 ef0358356c Add IEmployeeDao
2 years ago
p6jzelshw 3c3f593597 Update UserTest.java
2 years ago
p6jzelshw a998a509b4 ADD file via upload
2 years ago
p6jzelshw d0ec9c842b Merge pull request '合并' (#10) from pnxqwic3z/ssm:master into master
2 years ago
pnxqwic3z 087fb3cb55 Delete 'src/main/java/com/service/IUserService.java'
2 years ago
pnxqwic3z ac40c73bf3 ADD file via upload
2 years ago
pnxqwic3z 2277cd2f92 ADD file via upload
2 years ago
pnxqwic3z 8af460abe8 ADD file via upload
2 years ago
p6jzelshw ad566416e0 Merge pull request 'utils层' (#7) from py2tc4x5b/ssm:master into master
2 years ago
py2tc4x5b a0a57648d6 ADD file via upload
2 years ago
py2tc4x5b 9cd1bb96dc ADD file via upload
2 years ago
py2tc4x5b 7058d07098 ADD file via upload
2 years ago
py2tc4x5b 42a1270293 ADD file via upload
2 years ago
py2tc4x5b d69d432f17 ADD file via upload
2 years ago
py2tc4x5b b5eaf42dfb Delete 'src/main/java/com/utils/Page.java'
2 years ago
py2tc4x5b 58c4ea43d4 ADD file via upload
2 years ago
p6jzelshw 8bc089747f Delete 'src/main/java/com/service/impl/IUserServiceImpl.java'
2 years ago
p6jzelshw f4b37c21d1 Merge pull request '合并' (#6) from pnxqwic3z/ssm:master into master
2 years ago
pnxqwic3z 78ed4ba2a1 ADD file via upload
2 years ago
pnxqwic3z a1061c0c49 ADD file via upload
2 years ago
pnxqwic3z 8fa38c2820 ADD file via upload
2 years ago
pnxqwic3z 392980ec14 ADD file via upload
2 years ago
p6jzelshw 91ef98599f Merge pull request 'controller层' (#5) from py2tc4x5b/ssm:master into master
2 years ago
py2tc4x5b f8152d43c6 ADD file via upload
2 years ago
py2tc4x5b 1d7caa3d98 ADD file via upload
2 years ago
pfk4vawr6 4b8ac75c91 ADD file via upload
2 years ago
pfk4vawr6 f24297423c Update IUserDao.java
2 years ago
pfk4vawr6 ff331160a9 Update IUserDao.java
2 years ago
p6jzelshw 8830cc3e5b ADD file via upload
2 years ago
p6jzelshw 633ca3277b ADD file via upload
2 years ago
p6jzelshw 4e804ea5a0 ADD file via upload
2 years ago
p6jzelshw b3999ad1bf ADD file via upload
2 years ago
p6jzelshw b9667c7616 ADD file via upload
2 years ago
p6jzelshw 2f092f42c8 Merge pull request 'controller层' (#1) from py2tc4x5b/ssm:master into master
2 years ago
p6jzelshw 423fdce76b Delete 'src/main/java/com/dao/IDepartmentDao.java'
2 years ago
py2tc4x5b 2b4ee37358 ADD file via upload
2 years ago
py2tc4x5b c6f4175051 Delete 'src/main/java/com/controller/loginController.java'
2 years ago
py2tc4x5b de8c47c3b7 ADD file via upload
2 years ago
py2tc4x5b 241513803c ADD file via upload
2 years ago

@ -0,0 +1,234 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ArtifactsWorkspaceSettings">
<artifacts-to-build>
<artifact name="SSM_EMP-main:war exploded" />
</artifacts-to-build>
</component>
<component name="AutoImportSettings">
<option name="autoReloadType" value="SELECTIVE" />
</component>
<component name="ChangeListManager">
<list default="true" id="d4c8d302-ed83-4148-bf82-c20e2454fe61" name="Default Changelist" comment="" />
<option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" />
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
<option name="LAST_RESOLUTION" value="IGNORE" />
</component>
<component name="FileTemplateManagerImpl">
<option name="RECENT_TEMPLATES">
<list>
<option value="JUnit5 Test Class" />
<option value="Jsp File" />
<option value="Interface" />
<option value="Class" />
</list>
</option>
</component>
<component name="LogFilters">
<option name="FILTER_ERRORS" value="false" />
<option name="FILTER_WARNINGS" value="false" />
<option name="FILTER_INFO" value="true" />
<option name="FILTER_DEBUG" value="true" />
<option name="CUSTOM_FILTER" />
</component>
<component name="MarkdownSettingsMigration">
<option name="stateVersion" value="1" />
</component>
<component name="MavenImportPreferences">
<option name="generalSettings">
<MavenGeneralSettings>
<option name="localRepository" value="D:\Java\maven\downloadKits" />
<option name="mavenHome" value="$USER_HOME$/maven/apache-maven-3.5.0" />
<option name="userSettingsFile" value="D:\Java\maven\apache-maven-3.5.0\conf\settings.xml" />
</MavenGeneralSettings>
</option>
</component>
<component name="ProjectId" id="1t7g35BHqGyslAjAZX4jpL3fgRG" />
<component name="ProjectViewState">
<option name="showLibraryContents" value="true" />
</component>
<component name="PropertiesComponent"><![CDATA[{
"keyToString": {
"WebServerToolWindowFactoryState": "false",
"last_opened_file_path": "C:/Users/耿春莹/Desktop/SSM_EMP-main/target/SSM_EMP-1.0-SNAPSHOT/WEB-INF/lib"
}
}]]></component>
<component name="RecentsManager">
<key name="CopyFile.RECENT_KEYS">
<recent name="C:\Users\耿春莹\Desktop\SSM_EMP-main\target\SSM_EMP-1.0-SNAPSHOT\WEB-INF\lib" />
<recent name="D:\Java\JavaEE\SSM_EMP\src\main\webapp\WEB-INF\pages" />
<recent name="D:\Java\JavaEE\SSM_EMP\src\main\resources\mapper" />
<recent name="D:\Java\JavaEE\SSM_EMP\src\main\resources" />
<recent name="D:\Java\JavaEE\SSM_EMP\src\main\resources\spring" />
</key>
<key name="CreateTestDialog.Recents.Supers">
<recent name="" />
</key>
<key name="MoveFile.RECENT_KEYS">
<recent name="D:\Java\JavaEE\SSM_EMP\src\main\resources\mapper" />
<recent name="D:\Java\JavaEE\SSM_EMP\src\main\webapp\WEB-INF\pages" />
<recent name="D:\Java\JavaEE\SSM_EMP\src\main\webapp" />
<recent name="D:\Java\JavaEE\SSM_EMP\src\main\java\com\dao" />
</key>
<key name="MoveClassesOrPackagesDialog.RECENTS_KEY">
<recent name="" />
</key>
<key name="CreateTestDialog.RecentsKey">
<recent name="com.dao" />
</key>
</component>
<component name="RunDashboard">
<option name="excludedTypes">
<set>
<option value="#com.intellij.j2ee.web.tomcat.TomcatRunConfigurationFactory" />
</set>
</option>
</component>
<component name="RunManager">
<configuration name="Tomcat 8.5.27" type="#com.intellij.j2ee.web.tomcat.TomcatRunConfigurationFactory" factoryName="Local" APPLICATION_SERVER_NAME="Tomcat 8.5.27" ALTERNATIVE_JRE_ENABLED="true" ALTERNATIVE_JRE_PATH="1.8" nameIsGenerated="true">
<option name="BROWSER_ID" value="37cae5b9-e8b2-4949-9172-aafa37fbc09c" />
<option name="UPDATING_POLICY" value="restart-server" />
<deployment>
<artifact name="SSM_EMP-main:war exploded">
<settings>
<option name="CONTEXT_PATH" value="/SSM_EMP_main_war_exploded" />
</settings>
</artifact>
</deployment>
<server-settings>
<option name="BASE_DIRECTORY_NAME" value="5eb4bef8-ddb3-4475-82f9-c7ab7f3c22e3" />
<option name="HTTP_PORT" value="8088" />
</server-settings>
<predefined_log_file enabled="true" id="Tomcat" />
<predefined_log_file enabled="true" id="Tomcat Catalina" />
<predefined_log_file id="Tomcat Manager" />
<predefined_log_file id="Tomcat Host Manager" />
<predefined_log_file id="Tomcat Localhost Access" />
<RunnerSettings RunnerId="Debug">
<option name="DEBUG_PORT" value="65407" />
</RunnerSettings>
<ConfigurationWrapper VM_VAR="JAVA_OPTS" RunnerId="Cover">
<option name="USE_ENV_VARIABLES" value="true" />
<STARTUP>
<option name="USE_DEFAULT" value="true" />
<option name="SCRIPT" value="" />
<option name="VM_PARAMETERS" value="" />
<option name="PROGRAM_PARAMETERS" value="" />
</STARTUP>
<SHUTDOWN>
<option name="USE_DEFAULT" value="true" />
<option name="SCRIPT" value="" />
<option name="VM_PARAMETERS" value="" />
<option name="PROGRAM_PARAMETERS" value="" />
</SHUTDOWN>
</ConfigurationWrapper>
<ConfigurationWrapper VM_VAR="JAVA_OPTS" RunnerId="Debug">
<option name="USE_ENV_VARIABLES" value="true" />
<STARTUP>
<option name="USE_DEFAULT" value="true" />
<option name="SCRIPT" value="" />
<option name="VM_PARAMETERS" value="" />
<option name="PROGRAM_PARAMETERS" value="" />
</STARTUP>
<SHUTDOWN>
<option name="USE_DEFAULT" value="true" />
<option name="SCRIPT" value="" />
<option name="VM_PARAMETERS" value="" />
<option name="PROGRAM_PARAMETERS" value="" />
</SHUTDOWN>
</ConfigurationWrapper>
<ConfigurationWrapper VM_VAR="JAVA_OPTS" RunnerId="Profile">
<option name="USE_ENV_VARIABLES" value="true" />
<STARTUP>
<option name="USE_DEFAULT" value="true" />
<option name="SCRIPT" value="" />
<option name="VM_PARAMETERS" value="" />
<option name="PROGRAM_PARAMETERS" value="" />
</STARTUP>
<SHUTDOWN>
<option name="USE_DEFAULT" value="true" />
<option name="SCRIPT" value="" />
<option name="VM_PARAMETERS" value="" />
<option name="PROGRAM_PARAMETERS" value="" />
</SHUTDOWN>
</ConfigurationWrapper>
<ConfigurationWrapper VM_VAR="JAVA_OPTS" RunnerId="Run">
<option name="USE_ENV_VARIABLES" value="true" />
<STARTUP>
<option name="USE_DEFAULT" value="true" />
<option name="SCRIPT" value="" />
<option name="VM_PARAMETERS" value="" />
<option name="PROGRAM_PARAMETERS" value="" />
</STARTUP>
<SHUTDOWN>
<option name="USE_DEFAULT" value="true" />
<option name="SCRIPT" value="" />
<option name="VM_PARAMETERS" value="" />
<option name="PROGRAM_PARAMETERS" value="" />
</SHUTDOWN>
</ConfigurationWrapper>
<method v="2">
<option name="Make" enabled="true" />
<option name="BuildArtifacts" enabled="true">
<artifact name="SSM_EMP-main:war exploded" />
</option>
</method>
</configuration>
</component>
<component name="ServiceViewManager">
<option name="viewStates">
<list>
<serviceView>
<option name="contentProportion" value="0.093643196" />
<treeState>
<expand />
<select />
</treeState>
</serviceView>
</list>
</option>
</component>
<component name="SpellCheckerSettings" RuntimeDictionaries="0" Folders="0" CustomDictionaries="0" DefaultDictionary="application-level" UseSingleDictionary="true" transferred="true" />
<component name="SpringGeneralSettings">
<option name="allowAutoConfigurationMode" value="true" />
</component>
<component name="SvnConfiguration">
<configuration />
</component>
<component name="TaskManager">
<task active="true" id="Default" summary="Default task">
<changelist id="d4c8d302-ed83-4148-bf82-c20e2454fe61" name="Default Changelist" comment="" />
<created>1622125338250</created>
<option name="number" value="Default" />
<option name="presentableId" value="Default" />
<updated>1622125338250</updated>
<workItem from="1622125342061" duration="15002000" />
<workItem from="1622247506361" duration="12581000" />
<workItem from="1622280978552" duration="8617000" />
<workItem from="1622345066712" duration="20237000" />
<workItem from="1622442872266" duration="11932000" />
<workItem from="1622638258737" duration="4196000" />
<workItem from="1622682906764" duration="95000" />
<workItem from="1625729826683" duration="14215000" />
<workItem from="1625752748187" duration="6423000" />
<workItem from="1625796964053" duration="8582000" />
<workItem from="1625808599050" duration="2355000" />
<workItem from="1625811474075" duration="1913000" />
<workItem from="1625814352681" duration="104000" />
<workItem from="1625815065156" duration="34000" />
<workItem from="1625815325858" duration="12928000" />
<workItem from="1625910867526" duration="12426000" />
<workItem from="1625960235071" duration="6732000" />
<workItem from="1626067992775" duration="22528000" />
<workItem from="1681197801365" duration="2012000" />
</task>
<servers />
</component>
<component name="TypeScriptGeneratedFilesManager">
<option name="version" value="3" />
</component>
<component name="com.intellij.coverage.CoverageDataManagerImpl">
<SUITE FILE_PATH="coverage/SSM_EMP$tomcat9.ic" NAME="tomcat9 Coverage Results" MODIFIED="1622251280362" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="idea" COVERAGE_BY_TEST_ENABLED="false" COVERAGE_TRACING_ENABLED="false" />
</component>
</project>

@ -0,0 +1,2 @@
# JavaProject
Do some hands-on Java projects

@ -0,0 +1,2 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="JAVA_MODULE" version="4" />

@ -0,0 +1,166 @@
-- MySQL dump 10.13 Distrib 8.0.30, for Win64 (x86_64)
--
-- Host: localhost Database: sp_emp
-- ------------------------------------------------------
-- Server version 8.0.30
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!50503 SET NAMES utf8mb4 */;
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
--
-- Table structure for table `t_dept`
--
DROP TABLE IF EXISTS `t_dept`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `t_dept` (
`id` int NOT NULL AUTO_INCREMENT,
`deptId` varchar(20) NOT NULL COMMENT '部门号',
`deptName` varchar(20) NOT NULL COMMENT '部门名',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8mb3;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Dumping data for table `t_dept`
--
LOCK TABLES `t_dept` WRITE;
/*!40000 ALTER TABLE `t_dept` DISABLE KEYS */;
INSERT INTO `t_dept` VALUES (1,'D1001','开发部'),(2,'D1002','测试部'),(3,'D1003','后勤部'),(4,'D1004','人事部'),(5,'D1005','财务部'),(6,'D1006','保安部'),(9,'D1007','行政部');
/*!40000 ALTER TABLE `t_dept` ENABLE KEYS */;
UNLOCK TABLES;
--
-- Table structure for table `t_emp`
--
DROP TABLE IF EXISTS `t_emp`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `t_emp` (
`id` int NOT NULL AUTO_INCREMENT COMMENT '员工表的主键',
`empId` varchar(20) NOT NULL COMMENT '员工号',
`name` varchar(30) DEFAULT NULL COMMENT '员工姓名',
`email` varchar(30) DEFAULT NULL COMMENT '员工的邮箱',
`gender` bit(1) DEFAULT NULL COMMENT '员工性别',
`birth` datetime DEFAULT NULL COMMENT '员工生日',
`deptId` int DEFAULT NULL COMMENT '员工所属的部门',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8mb3;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Dumping data for table `t_emp`
--
LOCK TABLES `t_emp` WRITE;
/*!40000 ALTER TABLE `t_emp` DISABLE KEYS */;
INSERT INTO `t_emp` VALUES (1,'E2001','王志','wz@163.com',_binary '','1993-04-06 00:00:00',2),(2,'E2002','刘倩','11156789@qq.com',_binary '\0','1999-01-26 00:00:00',4),(3,'E2003','李思','18112341234@163.com',_binary '\0','1995-07-12 00:00:00',6),(4,'E2004','赵笑','zxx@163.com',_binary '\0','1996-01-15 00:00:00',5),(9,'E2005','赵丽','zhaoli@163.com',_binary '\0','2001-06-17 00:00:00',1),(10,'E2006','子文','ziwen@163.com',_binary '','1989-08-24 00:00:00',1);
/*!40000 ALTER TABLE `t_emp` ENABLE KEYS */;
UNLOCK TABLES;
--
-- Table structure for table `t_test`
--
DROP TABLE IF EXISTS `t_test`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `t_test` (
`id` int NOT NULL AUTO_INCREMENT,
`num` varchar(20) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=14 DEFAULT CHARSET=utf8mb3;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Dumping data for table `t_test`
--
LOCK TABLES `t_test` WRITE;
/*!40000 ALTER TABLE `t_test` DISABLE KEYS */;
INSERT INTO `t_test` VALUES (1,'1'),(2,'2'),(3,'3'),(4,'4'),(5,'5'),(6,'6'),(7,'7'),(8,'8'),(9,'9'),(10,'10'),(11,'11'),(12,'12'),(13,'13');
/*!40000 ALTER TABLE `t_test` ENABLE KEYS */;
UNLOCK TABLES;
--
-- Table structure for table `t_user`
--
DROP TABLE IF EXISTS `t_user`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `t_user` (
`id` int NOT NULL AUTO_INCREMENT COMMENT 'id',
`name` varchar(20) NOT NULL COMMENT '用户名',
`password` varchar(60) NOT NULL COMMENT '用户密码',
`identity` bit(1) DEFAULT NULL COMMENT '0 代表员工 1 代表管理员',
`telNumber` char(11) DEFAULT NULL COMMENT '手机号',
`idCard` char(18) DEFAULT NULL COMMENT '身份证号',
`email` varchar(50) DEFAULT NULL COMMENT '邮箱',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8mb3;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Dumping data for table `t_user`
--
LOCK TABLES `t_user` WRITE;
/*!40000 ALTER TABLE `t_user` DISABLE KEYS */;
INSERT INTO `t_user` VALUES (1,'admin','admin123',_binary '','13712341234','130122196412120512','admin@163.com'),(2,'tom','e10adc3949ba59abbe56e057f20f883e',_binary '\0','13111223344','610322199712100712','1546558782@qq.com'),(3,'赵飞','e10adc3949ba59abbe56e057f20f883e',_binary '\0','17718911891','610322188412100112','zhao@163.com'),(4,'刘云','1e48c4420b7073bc11916c6c1de226bb',_binary '\0','18112341234','310322199812120101','liuyun@163.com'),(5,'tom','c4ca4238a0b923820dcc509a6f75849b',_binary '\0',NULL,NULL,'tom@163.com');
/*!40000 ALTER TABLE `t_user` ENABLE KEYS */;
UNLOCK TABLES;
--
-- Table structure for table `t_visitor`
--
DROP TABLE IF EXISTS `t_visitor`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `t_visitor` (
`id` int NOT NULL AUTO_INCREMENT COMMENT 'id',
`name` varchar(20) DEFAULT NULL COMMENT '名字',
`identity` bit(1) DEFAULT NULL COMMENT '是否是管理员 1 是 0 否',
`telPhone` char(11) DEFAULT NULL COMMENT '手机号',
`email` varchar(50) DEFAULT NULL COMMENT '邮箱',
`visitTime` datetime DEFAULT NULL COMMENT '访问时间',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=33 DEFAULT CHARSET=utf8mb3;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Dumping data for table `t_visitor`
--
LOCK TABLES `t_visitor` WRITE;
/*!40000 ALTER TABLE `t_visitor` DISABLE KEYS */;
INSERT INTO `t_visitor` VALUES (1,'tom',_binary '\0','13112312312','1546558782@qq.com','2021-07-09 22:15:01'),(2,'tom',_binary '\0','13112312312','1546558782@qq.com','2021-07-10 17:55:27'),(3,'tom',_binary '\0','13112312312','1546558782@qq.com','2021-07-10 17:57:13'),(4,'tom',_binary '\0','13112312312','1546558782@qq.com','2021-07-10 18:00:14'),(5,'tom',_binary '\0','13112312312','1546558782@qq.com','2021-07-10 18:09:17'),(6,'tom',_binary '\0','13112341234','1546558782@qq.com','2021-07-10 22:29:36'),(7,'tom',_binary '\0','13112341234','1546558782@qq.com','2021-07-12 13:37:30'),(8,'tom',_binary '\0','13112341234','1546558782@qq.com','2021-07-13 09:54:11'),(9,'tom',_binary '\0','13112341234','1546558782@qq.com','2021-07-13 10:08:27'),(10,'tom',_binary '\0','13112341234','1546558782@qq.com','2021-07-13 10:11:28'),(11,'tom',_binary '\0','13112341234','1546558782@qq.com','2021-07-13 10:13:39'),(12,'tom',_binary '\0','13112341234','1546558782@qq.com','2021-07-13 10:19:17'),(13,'tom',_binary '\0','13112341234','1546558782@qq.com','2021-07-13 11:38:34'),(14,'tom',_binary '\0','13112341234','1546558782@qq.com','2021-07-13 15:15:22'),(15,'tom',_binary '\0','13112341234','1546558782@qq.com','2021-07-13 15:30:27'),(16,'tom',_binary '\0','13112341234','1546558782@qq.com','2021-07-13 15:35:16'),(17,'tom',_binary '\0','13112341234','1546558782@qq.com','2021-07-13 15:51:35'),(18,'tom',_binary '\0','13112341234','1546558782@qq.com','2021-07-13 15:53:28'),(19,'tom',_binary '\0','13112341234','1546558782@qq.com','2021-07-13 16:13:48'),(20,'tom',_binary '\0','13112341234','1546558782@qq.com','2021-07-13 16:21:20'),(21,'tom',_binary '\0','13112341234','1546558782@qq.com','2021-07-13 16:25:45'),(22,'tom',_binary '\0','13112341234','1546558782@qq.com','2021-07-13 16:32:54'),(23,'tom',_binary '\0','13112341234','1546558782@qq.com','2021-07-13 16:34:56'),(24,'赵飞',_binary '\0','17718911891','zhao@163.com','2021-07-13 16:40:22'),(25,'赵飞',_binary '\0','17718911891','zhao@163.com','2021-07-13 16:50:19'),(26,'赵飞',_binary '\0','17718911891','zhao@163.com','2021-07-13 16:52:42'),(27,'赵飞',_binary '\0','17718911891','zhao@163.com','2021-07-13 16:57:45'),(28,'赵飞',_binary '\0','17718911891','zhao@163.com','2021-07-13 16:59:23'),(29,'刘云',_binary '\0','18114561456','liu@163.com','2021-07-13 17:31:22'),(30,'刘云',_binary '\0','18112341234','liuyun@163.com','2021-07-13 17:34:20'),(31,'刘云',_binary '\0','18112341234','liuyun@163.com','2021-07-13 17:36:07'),(32,'刘云',_binary '\0','18112341234','liuyun@163.com','2021-07-13 17:37:23');
/*!40000 ALTER TABLE `t_visitor` ENABLE KEYS */;
UNLOCK TABLES;
--
-- Dumping routines for database 'sp_emp'
--
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
-- Dump completed on 2023-04-10 18:32:29

@ -1,26 +1,177 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" <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"> xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<groupId>org.example</groupId> <groupId>org.example</groupId>
<artifactId>SSM_EMP</artifactId> <artifactId>SSM_EMP</artifactId>
<packaging>war</packaging>
<version>1.0-SNAPSHOT</version> <version>1.0-SNAPSHOT</version>
<packaging>war</packaging>
<name>SSM_EMP Maven Webapp</name> <name>SSM_EMP Maven Webapp</name>
<url>http://maven.apache.org</url> <!-- FIXME change it to the project's website -->
<url>http://www.example.com</url>
<properties>
<!-- spring版本号 -->
<spring.version>4.0.2.RELEASE</spring.version>
<!-- mybatis版本号 -->
<mybatis.version>3.2.6</mybatis.version>
<!-- log4j日志文件管理包版本 -->
<slf4j.version>1.7.7</slf4j.version>
<log4j.version>1.2.17</log4j.version>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
<dependencies> <dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>4.3.20.RELEASE</version>
</dependency>
<dependency> <dependency>
<groupId>junit</groupId> <groupId>junit</groupId>
<artifactId>junit</artifactId> <artifactId>junit</artifactId>
<version>3.8.1</version> <version>4.11</version>
<!-- 表示开发的时候引入,发布的时候不会加载此包 -->
<scope>test</scope> <scope>test</scope>
</dependency> </dependency>
<!-- spring核心包 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</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-oxm</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-jdbc</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-aop</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-test</artifactId>
<version>${spring.version}</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.2.2</version>
</dependency>
<!-- 导入java ee jar 包 -->
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-api</artifactId>
<version>7.0</version>
</dependency>
<!-- 导入Mysql数据库链接jar包 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.30</version>
</dependency>
<!-- 导入dbcp的jar包用来在applicationContext.xml中配置数据库 -->
<dependency>
<groupId>commons-dbcp</groupId>
<artifactId>commons-dbcp</artifactId>
<version>1.2.2</version>
</dependency>
<!-- JSTL标签类 -->
<dependency>
<groupId>jstl</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<!-- 日志文件管理包 -->
<!-- log start -->
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>${log4j.version}</version>
</dependency>
<!-- 格式化对象,方便输出日志 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.1.41</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>${slf4j.version}</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>${slf4j.version}</version>
</dependency>
<!-- log end -->
<!-- 映入JSON -->
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-mapper-asl</artifactId>
<version>1.9.13</version>
</dependency>
<!-- 上传组件包 -->
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.3.1</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.4</version>
</dependency>
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
<version>1.9</version>
</dependency>
</dependencies> </dependencies>
<build>
<finalName>SSM_EMP</finalName>
</build>
</project> </project>

@ -0,0 +1,120 @@
package com.controller;
import com.entity.Department;
import com.service.IDeptService;
import com.utils.Page;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Controller
public class DepartmentController {
@Autowired
private IDeptService deptService;
@RequestMapping("/toDepartment")
public ModelAndView toDepartment(Page page){
ModelAndView mv = new ModelAndView();
List<Department> departmentList = deptService.listDept(page);
int total = deptService.getDeptTotal();
int pageIndex = total / page.getCount();
pageIndex = total % page.getCount() == 0 ? pageIndex : pageIndex+1;
page.setTotalIndex(pageIndex);
page.calculateLast(total);
mv.addObject("deptList",departmentList);
mv.addObject("page",page);
mv.addObject("total",total);
mv.setViewName("department");
return mv;
}
/**
*
* @param department
* @return
*/
@RequestMapping("/addDept")
public ModelAndView addDept(Department department){
ModelAndView mv = new ModelAndView();
//调用service层的方法
deptService.addDept(department);
//重定向到部门列表页面
mv.setViewName("redirect:/toDepartment");
return mv;
}
/**
*
* @param deptName
* @param page
* @return
*/
@RequestMapping("/searchDept")
public ModelAndView searchDept(String deptName, Page page){
ModelAndView mv = new ModelAndView();
//根据部门名称查找部门信息,并进行分页显示
List<Department> departmentList = deptService.findDeptByName(deptName, page);
//得到总记录数
int total = departmentList.size();
//每页显示三条,总共显示的页数
int pageIndex = total / page.getCount();
pageIndex = total % page.getCount() == 0 ? pageIndex : pageIndex+1;
page.setTotalIndex(pageIndex);
page.calculateLast(total);
//添加信息到modelview。
mv.addObject("deptList",departmentList);
mv.addObject("page",page);
mv.addObject("total",total);
//返回部门信息列表页面
mv.setViewName("department");
return mv;
}
/**
*
* @param id id
* @return
*/
@RequestMapping("/toModifyDept")
public ModelAndView toModifyDept(int id){
ModelAndView mv = new ModelAndView();
//找到部门信息
Department department = deptService.findDeptById(id);
//将该部门信息返回到页面
mv.addObject("dept",department);
//跳转至修改信息界面
mv.setViewName("updateDepartment");
return mv;
}
/**
*
* @param department
* @return
*/
@RequestMapping("/modifyDept")
public ModelAndView modifyDept(Department department){
ModelAndView mv = new ModelAndView();
//修改部门信息
deptService.modifyDept(department);
//重定向到部门信息列表界面
mv.setViewName("redirect:/toDepartment");
return mv;
}
@RequestMapping("/deleteDept")
public ModelAndView deleteDept(int id){
ModelAndView mv = new ModelAndView();
//修改部门信息
deptService.deleteDept(id);
//重定向到部门信息列表界面
mv.setViewName("redirect:/toDepartment");
return mv;
}
}

@ -0,0 +1,176 @@
package com.controller;
import com.entity.Department;
import com.entity.Employee;
import com.service.IDeptService;
import com.service.IEmpService;
import com.utils.Page;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
import java.text.SimpleDateFormat;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Controller
public class EmployeeController {
@Autowired
private IEmpService empService;
@Autowired
private IDeptService deptService;
/**
*
* @param page
* @return
*/
@RequestMapping("/toEmployee")
public ModelAndView toEmployee(Page page){
ModelAndView mv = new ModelAndView();
//查询所有员工
List<Employee> employeeList = empService.listEmp(page);
//给每个员工设置部门名称
for (Employee emp : employeeList) {
emp.setDeptName(deptService.findDeptById(emp.getDeptId()).getDeptName());
}
//获取数据库中记录总数
int total = empService.getEmpTotal();
//页数。即:每页显示三条记录,总共展示几页
int pageIndex = total / page.getCount();
pageIndex = total % page.getCount() == 0 ? pageIndex : pageIndex+1;
page.setTotalIndex(pageIndex);
page.calculateLast(total);
//将数据返回员工列表页面
mv.addObject("empList",employeeList);
mv.addObject("page",page);
mv.addObject("total",total);
mv.setViewName("employee");
return mv;
}
/**
*
* @param page
* @param name
* @param email
* @param empId
* @return
*/
@RequestMapping("/searchEmp")
public ModelAndView toEmployee(Page page, String name, String email, String empId){
ModelAndView mv = new ModelAndView();
//根据部门名称查找部门信息,并进行分页显示
Map<String, Object> map = new HashMap<>();
if(name != "" && name != null){
map.put("name", name);
}
if(email != "" && email != null){
map.put("email", email);
}
if(empId != "" && empId != null){
map.put("empId", empId);
}
map.put("page", page);
//得到符合条件的记录
List<Employee> employeeList = empService.searchEmp(map);
System.out.println(employeeList);
//设置员工的部门名称
for (Employee emp : employeeList) {
emp.setDeptName(deptService.findDeptById(emp.getDeptId()).getDeptName());
}
//得到总记录数
int total = employeeList.size();
//每页显示三条,总共显示的页数
int pageIndex = total / page.getCount();
pageIndex = total % page.getCount() == 0 ? pageIndex : pageIndex+1;
page.setTotalIndex(pageIndex);
page.calculateLast(total);
//将数据返回给页面
mv.addObject("empList",employeeList);
mv.addObject("page",page);
mv.addObject("total",total);
//返回部门信息列表页面
mv.setViewName("employee");
return mv;
}
/**
*
* @return
*/
@RequestMapping("/toAddEmp")
public ModelAndView toAddEmp(){
ModelAndView mv = new ModelAndView();
//添加信息到modelview。
List<Department> departmentList = deptService.findAllDepartment();
mv.addObject("deptList",departmentList);
mv.setViewName("addEmployee");
return mv;
}
/**
*
* @param employee
* @return
*/
@RequestMapping("/addEmp")
public ModelAndView addEmp(Employee employee){
ModelAndView mv = new ModelAndView();
//添加员工到数据库
empService.addEmp(employee);
mv.setViewName("redirect:/toEmployee");
return mv;
}
/**
*
* @param id
* @return
*/
@RequestMapping("/toModifyEmp")
public ModelAndView toUpdateEmp(int id){
ModelAndView mv = new ModelAndView();
//得到员工信息
mv.addObject("emp", empService.selectEmpById(id));
//得到所有部门信息
List<Department> departmentList = deptService.findAllDepartment();
mv.addObject("deptList",departmentList);
mv.setViewName("updateEmployee");
return mv;
}
/**
*
* @param employee
* @return
*/
@RequestMapping("/modifyEmp")
public ModelAndView modifyEmp(Employee employee){
ModelAndView mv = new ModelAndView();
//修改数据库中信息
empService.modifyEmp(employee);
List<Department> departmentList = deptService.findAllDepartment();
mv.addObject("deptList",departmentList);
//重定向到员工列表界面
mv.setViewName("redirect:/toEmployee");
return mv;
}
/**
*
* @param id
* @return
*/
@RequestMapping("/deleteEmp")
public ModelAndView deleteEmp(int id){
ModelAndView mv = new ModelAndView();
//删除员工
empService.deleteEmp(id);
mv.setViewName("redirect:/toEmployee");
return mv;
}
}

@ -0,0 +1,37 @@
package com.controller;
import com.dao.ITestDao;
import com.entity.TestEntity;
import com.sun.scenario.effect.impl.sw.sse.SSEBlend_SRC_OUTPeer;
import com.utils.Page;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
import java.util.List;
@Controller
public class TestController {
@Autowired
private ITestDao testDao;
@RequestMapping("/getTest")
public ModelAndView getTest(Page page){
ModelAndView mav = new ModelAndView();
//从数据库中获取记录
List<TestEntity> cs = testDao.list(page);
//获取记录总数
int total = testDao.total();
//计算得到总页数
int pageIndex = total / page.getCount();
pageIndex = total % page.getCount() == 0 ? pageIndex : pageIndex+1;
page.setTotalIndex(pageIndex);
page.calculateLast(total);
//将数据返回前端页面
mav.addObject("testList",cs);
mav.addObject("page",page);
mav.addObject("total",total);
mav.setViewName("test");
return mav;
}
}

@ -0,0 +1,71 @@
package com.controller;
import com.entity.Department;
import com.entity.Visitor;
import com.service.IVisitorService;
import com.utils.Page;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
import java.util.List;
@Controller
public class VistorController {
@Autowired
private IVisitorService visitorService;
/**
* 访
* @param page
* @return
*/
@RequestMapping("/toVisitor")
public ModelAndView toVisitor(Page page){
ModelAndView mv = new ModelAndView();
//得到所有访客列表信息
List<Visitor> visitorList = visitorService.listVisitor(page);
//得到记录总数
int total = visitorService.getVisitorTotal();
//得到页数
int pageIndex = total / page.getCount();
pageIndex = total % page.getCount() == 0 ? pageIndex : pageIndex+1;
page.setTotalIndex(pageIndex);
page.calculateLast(total);
//返回数据至页面
mv.addObject("visitorList",visitorList);
mv.addObject("page",page);
mv.addObject("total",total);
mv.setViewName("visitor");
return mv;
}
/**
* 访
* @param name
* @param page
* @return
*/
@RequestMapping("/searchVisitor")
public ModelAndView searchDept(String name, Page page){
ModelAndView mv = new ModelAndView();
//根据部门名称查找部门信息,并进行分页显示
List<Visitor> visitorList = visitorService.searchByName(name, page);
//得到总记录数
int total = visitorList.size();
//每页显示三条,总共显示的页数
int pageIndex = total / page.getCount();
pageIndex = total % page.getCount() == 0 ? pageIndex : pageIndex+1;
page.setTotalIndex(pageIndex);
page.calculateLast(total);
//添加信息到modelview。
mv.addObject("visitorList",visitorList);
mv.addObject("page",page);
mv.addObject("total",total);
//返回部门信息列表页面
mv.setViewName("visitor");
return mv;
}
}

@ -1,5 +1,172 @@
package com.controller; package com.controller;
import com.entity.User;
import com.entity.Visitor;
import com.service.IUserService;
import com.service.IVisitorService;
import com.utils.MD5Utils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import java.text.SimpleDateFormat;
import java.util.Date;
@Controller
public class loginController { public class loginController {
@Autowired
private IUserService userService;
@Autowired
private IVisitorService visitorService;
/**
*
* @param username
* @param password
* @param request
* @return
*/
@RequestMapping("/main")
@ResponseBody
public ModelAndView toMain(String username, String password, HttpServletRequest request){
ModelAndView mv = new ModelAndView();
mv.setViewName("main");
//使用session存储数据
HttpSession session = request.getSession();
mv.addObject("status", "ok");
//根据用户名和密码查找用户
User user = userService.findByNameAndPwd(username, MD5Utils.stringToMD5(password));
//访客信息
Visitor visitor = new Visitor();
//用户不为空,则表示登录成功
if(user != null){
if(user.getName().equals(username) && user.getPassword().equals(MD5Utils.stringToMD5(password))){
//跳转至首页
mv.setViewName("main");
// mv.addObject("userName", user.getName());
// mv.addObject("status", "ok");
//存储数据
mv.addObject("userId", user.getId());
session.setAttribute("userName", user.getName());
session.setAttribute("userId", user.getId());
//添加访客信息
visitor.setName(user.getName());
visitor.setEmail(user.getEmail());
visitor.setIdentity(user.getIdentity());
visitor.setTelPhone(user.getTelNumber());
Date date = new Date(System.currentTimeMillis());
visitor.setVisitTime(date);
//存储方可信息
visitorService.addVisitor(visitor);
}else {
//查询失败,返回登录页
mv.setViewName("redirect:/index.jsp");
mv.addObject("status", "userNameOrPwdError");
}
}else{
//返回首页
mv.setViewName("redirect:/index.jsp");
mv.addObject("status", "userNameOrPwdError");
}
return mv;
}
/**
*
* @param user
* @return
*/
@RequestMapping("/register")
public String toRegister(User user){
//对用户密码进行加密
user.setPassword(MD5Utils.stringToMD5(user.getPassword()));
//将用户信息插入数据库
userService.insertUser(user);
//重定向到首页
return "redirect:/index.jsp";
}
/**
*
* @param id
* @return
*/
@RequestMapping("/toUserMsg")
public ModelAndView toUserMsg(Integer id){
ModelAndView mv = new ModelAndView();
//根据id找到用户
User user = userService.findById(id);
mv.setViewName("userMsg");
System.out.println(id);
System.out.println(user);
//将用户信息返回用户信息页
mv.addObject("loginUser", user);
return mv;
}
/**
*
* @param user
* @return
*/
@RequestMapping("/modifyUserMsg")
public ModelAndView modifyUserMsg(User user){
ModelAndView mv = new ModelAndView();
//修改用户信息
userService.modifyUser(user);
mv.addObject("loginUser", user);
//修改完成后,跳转至用户信息页
mv.setViewName("userMsg");
return mv;
}
/**
*
* @param id
* @return
*/
@RequestMapping("/toModifyPwd")
public ModelAndView toModifyPwd(int id){
ModelAndView mv = new ModelAndView();
//找到用户
User user = userService.findById(id);
mv.setViewName("modifyPwd");
mv.addObject("loginUser", user);
return mv;
}
/**
*
* @param id
* @param password
* @param rePassword
* @return
*/
@RequestMapping("/modifyPwd")
public ModelAndView modifyPwd(Integer id, String password, String rePassword){
ModelAndView mv = new ModelAndView();
//判断两次输入的密码是否一致
if(password.equals(rePassword)){
//一致。则更改数据库,重定向到登录页
userService.modifyPwd(password, id);
mv.setViewName("redirect:/index.jsp");
}else{
//跳转到修改密码页面
mv.setViewName("modifyPwd");
}
return mv;
}
/**
*
* @return
*/
@RequestMapping("/about")
public String about(){
return "about";
}
} }

@ -8,62 +8,46 @@ import org.springframework.stereotype.Repository;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
/**
* @ClassName IDepartmentDao
* @Description TODO
* @Author YHT
* @Date 2021/5/30 15:58
*/
@Repository @Repository
public interface IDepartmentDao { public interface IDepartmentDao {
/** /**
* *
* @return
*/ */
List<Department> findAllDepartment(); List<Department> findAllDepartment();
/** /**
* *
* @param department
*/ */
void insertDept(Department department); void insertDept(Department department);
/** /**
* *
* @param map
* @return
*/ */
List<Department> searchByName(Map<String, Object> map); List<Department> searchByName(Map<String, Object> map);
/** /**
* *
* @return
*/ */
int getDeptTotal(); int getDeptTotal();
/** /**
* *
* @param page
* @return
*/ */
List<Department> listDept(Page page); List<Department> listDept(Page page);
/** /**
* id * id
* @param id
* @return
*/ */
Department findDeptById(int id); Department findDeptById(int id);
/** /**
* *
* @param department
*/ */
void modifyDept(Department department); void modifyDept(Department department);
/** /**
* id * id
* @param id
*/ */
void deleteDept(int id); void deleteDept(int id);
} }

@ -0,0 +1,29 @@
package com.dao;
import com.entity.Employee;
import com.utils.Page;
import org.springframework.stereotype.Repository;
import java.util.List;
import java.util.Map;
@Repository
public interface IEmployeeDao {
List<Employee> listEmp(Page page);
int getEmpTotal();
List<Employee> searchEmp(Map<String, Object> map);
void addEmp(Employee employee);
Employee selectEmpById(int id);
void modifyEmp(Employee employee);
void deleteEmp(int id);
}

@ -0,0 +1,14 @@
package com.dao;
import com.entity.TestEntity;
import com.utils.Page;
import org.springframework.stereotype.Repository;
import java.util.List;
@Repository
public interface ITestDao {
List<TestEntity> findAll();
List<TestEntity> list(Page page);
int total();
}

@ -2,6 +2,12 @@ package com.dao;
import com.entity.User; import com.entity.User;
import org,springframework.stereotype.Respository; import org,springframework.stereotype.Respository;
import java.util.Map; import java.util.Map;
public interface IUserDao { @Repository
public interface IUserDao {
User FindById(Interger id);
User findByNameAndPwd(Map<String, String> map);
int insertUser(User user);
void modifyUser(User user);
void modifyPwd(Map<String, Object> map);
} }

@ -0,0 +1,22 @@
package com.dao;
import com.entity.Visitor;
import com.utils.Page;
import org.springframework.stereotype.Repository;
import java.util.List;
import java.util.Map;
@Repository
public interface IVisitorDao {
List<Visitor> listVisitor(Page page);
int getVisitorTotal();
void addVisitor(Visitor visitor);
Visitor> searchByName(Map<String, Object> map);
}

@ -0,0 +1,43 @@
package com.entity;
public class Department {
private Integer id;
private String deptId;
private String deptName;
public Department() {
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getDeptId() {
return deptId;
}
public void setDeptId(String deptId) {
this.deptId = deptId;
}
public String getDeptName() {
return deptName;
}
public void setDeptName(String deptName) {
this.deptName = deptName;
}
@Override
public String toString() {
return "Department{" +
"id=" + id +
", deptId='" + deptId + '\'' +
", deptName='" + deptName + '\'' +
'}';
}
}

@ -0,0 +1,96 @@
package com.entity;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
public class Employee {
private Integer id;
private String empId;
private String name;
private String email;
private Integer gender;
@DateTimeFormat(pattern="yyyy-MM-dd")
private Date birth;
private Integer deptId;
private String deptName;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getEmpId() {
return empId;
}
public void setEmpId(String empId) {
this.empId = empId;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public Integer getGender() {
return gender;
}
public void setGender(Integer gender) {
this.gender = gender;
}
public Date getBirth() {
return birth;
}
public void setBirth(Date birth) {
this.birth = birth;
}
public Integer getDeptId() {
return deptId;
}
public void setDeptId(Integer deptId) {
this.deptId = deptId;
}
public String getDeptName() {
return deptName;
}
public void setDeptName(String deptName) {
this.deptName = deptName;
}
@Override
public String toString() {
return "Employee{" +
"id=" + id +
", empId='" + empId + '\'' +
", name='" + name + '\'' +
", email='" + email + '\'' +
", gender=" + gender +
", birth=" + birth +
", deptId=" + deptId +
", deptName='" + deptName + '\'' +
'}';
}
}

@ -0,0 +1,30 @@
package com.entity;
public class TestEntity {
private Integer id;
private String num;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getNum() {
return num;
}
public void setNum(String num) {
this.num = num;
}
@Override
public String toString() {
return "TestEntity{" +
"id=" + id +
", num='" + num + '\'' +
'}';
}
}

@ -0,0 +1,72 @@
package com.entity;
import java.util.Date;
public class Visitor {
private Integer id;
private String name;
private String email;
private Integer identity;
private String telPhone;
private Date visitTime;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public Integer getIdentity() {
return identity;
}
public void setIdentity(Integer identity) {
this.identity = identity;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getTelPhone() {
return telPhone;
}
public void setTelPhone(String telPhone) {
this.telPhone = telPhone;
}
public Date getVisitTime() {
return visitTime;
}
public void setVisitTime(Date visitTime) {
this.visitTime = visitTime;
}
@Override
public String toString() {
return "Visitor{" +
"id=" + id +
", name='" + name + '\'' +
", email='" + email + '\'' +
", telPhone='" + telPhone + '\'' +
", visitTime=" + visitTime +
'}';
}
}

@ -0,0 +1,62 @@
package com.service;
import com.entity.Department;
import com.utils.Page;
import java.util.List;
public interface IDeptService {
/**
*
* @return
*/
List<Department> findAllDepartment();
/**
*
* @param department
*/
void addDept(Department department);
/**
*
* @param deptName
* @param page
* @return
*/
List<Department> findDeptByName(String deptName, Page page);
/**
*
* @return
*/
int getDeptTotal();
/**
*
* @param page
* @return
*/
List<Department> listDept(Page page);
/**
* id
* @param id
* @return
*/
Department findDeptById(int id);
/**
*
* @param department
*/
void modifyDept(Department department);
/**
*
* @param id
*/
void deleteDept(int id);
}

@ -0,0 +1,57 @@
package com.service;
import com.entity.Employee;
import com.utils.Page;
import java.util.List;
import java.util.Map;
public interface IEmpService {
/**
*
* @param page
* @return
*/
List<Employee> listEmp(Page page);
/**
*
* @return
*/
int getEmpTotal();
/**
*
* @param map
* @return
*/
List<Employee> searchEmp(Map<String, Object> map);
/**
*
* @param employee
*/
void addEmp(Employee employee);
/**
* id
* @param id
* @return
*/
Employee selectEmpById(int id);
/**
*
* @param employee
*/
void modifyEmp(Employee employee);
/**
*
* @param id
*/
void deleteEmp(int id);
}

@ -1,5 +1,45 @@
package com.service; package com.service;
import com.entity.User;
import org.springframework.stereotype.Service;
import java.util.Map;
public interface IUserService { public interface IUserService {
/**
* ID
* @param id ID
* @return
*/
User findById(Integer id);
/**
*
* @param name
* @param password
* @return
*/
User findByNameAndPwd(String name, String password);
/**
*
* @param user
* @return
*/
int insertUser(User user);
/**
*
* @param user
*/
void modifyUser(User user);
/**
*
* @param password
* @param id
*/
void modifyPwd(String password, Integer id);
} }

@ -0,0 +1,37 @@
package com.service;
import com.entity.Visitor;
import com.utils.Page;
import java.util.List;
public interface IVisitorService {
/**
* 访
* @param page
* @return
*/
List<Visitor> listVisitor(Page page);
/**
*
* @return
*/
int getVisitorTotal();
/**
* 访
* @param visitor
*/
void addVisitor(Visitor visitor);
/**
* 访
* @param name
* @param page
* @return
*/
List<Visitor> searchByName(String name, Page page);
}

@ -0,0 +1,63 @@
package com.service.impl;
import com.dao.IDepartmentDao;
import com.entity.Department;
import com.service.IDeptService;
import com.utils.Page;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.management.ObjectName;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Service
public class DeptServiceImpl implements IDeptService {
@Autowired
private IDepartmentDao departmentDao;
@Override
public List<Department> findAllDepartment() {
return departmentDao.findAllDepartment();
}
@Override
public void addDept(Department department) {
departmentDao.insertDept(department);
}
@Override
public List<Department> findDeptByName(String deptName, Page page) {
deptName = "%" + deptName + "%";
Map<String, Object> map = new HashMap<>();
map.put("deptName", deptName);
map.put("page", page);
return departmentDao.searchByName(map);
}
@Override
public int getDeptTotal() {
return departmentDao.getDeptTotal();
}
@Override
public List<Department> listDept(Page page) {
return departmentDao.listDept(page);
}
@Override
public Department findDeptById(int id) {
return departmentDao.findDeptById(id);
}
@Override
public void modifyDept(Department department) {
departmentDao.modifyDept(department);
}
@Override
public void deleteDept(int id) {
departmentDao.deleteDept(id);
}
}

@ -0,0 +1,52 @@
package com.service.impl;
import com.dao.IEmployeeDao;
import com.entity.Employee;
import com.service.IEmpService;
import com.utils.Page;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Map;
@Service
public class EmpServiceImpl implements IEmpService {
@Autowired
private IEmployeeDao employeeDao;
@Override
public List<Employee> listEmp(Page page) {
return employeeDao.listEmp(page);
}
@Override
public int getEmpTotal() {
return employeeDao.getEmpTotal();
}
@Override
public List<Employee> searchEmp(Map<String, Object> map) {
return employeeDao.searchEmp(map);
}
@Override
public void addEmp(Employee employee) {
employeeDao.addEmp(employee);
}
@Override
public Employee selectEmpById(int id) {
return employeeDao.selectEmpById(id);
}
@Override
public void modifyEmp(Employee employee) {
employeeDao.modifyEmp(employee);
}
@Override
public void deleteEmp(int id) {
employeeDao.deleteEmp(id);
}
}

@ -1,7 +0,0 @@
package com.service.impl;
import com.service.IUserService;
public class IUserServiceImpl implements IUserService {
}

@ -0,0 +1,53 @@
package com.service.impl;
import com.dao.IUserDao;
import com.entity.User;
import com.service.IUserService;
import com.utils.MD5Utils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.HashMap;
import java.util.Map;
/**
* @ClassName UserServiceImpl
* @Description TODO
* @Author YHT
* @Date 2021/5/28 17:41
*/
@Service
public class UserServiceImpl implements IUserService {
@Autowired
private IUserDao userDao;
public User findById(Integer id) {
return userDao.findById(id);
}
public User findByNameAndPwd(String name, String password) {
Map<String, String> map = new HashMap<>();
map.put("name", name);
map.put("password", password);
return userDao.findByNameAndPwd(map);
}
@Override
public int insertUser(User user) {
return userDao.insertUser(user);
}
@Override
public void modifyUser(User user) {
userDao.modifyUser(user);
}
@Override
public void modifyPwd(String password, Integer id) {
Map<String, Object> map = new HashMap<>();
password = MD5Utils.stringToMD5(password);
map.put("id", id);
map.put("password", password);
userDao.modifyPwd(map);
}
}

@ -0,0 +1,46 @@
package com.service.impl;
import com.dao.IVisitorDao;
import com.entity.Visitor;
import com.service.IVisitorService;
import com.utils.Page;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* @ClassName VisitorServiceImpl
* @Description TODO
* @Author YHT
* @Date 2021/7/9 21:47
*/
@Service
public class VisitorServiceImpl implements IVisitorService {
@Autowired
private IVisitorDao visitorDao;
@Override
public List<Visitor> listVisitor(Page page) {
return visitorDao.listVisitor(page);
}
@Override
public int getVisitorTotal() {
return visitorDao.getVisitorTotal();
}
@Override
public void addVisitor(Visitor visitor) {
visitorDao.addVisitor(visitor);
}
@Override
public List<Visitor> searchByName(String name, Page page) {
Map<String, Object> map = new HashMap<>();
map.put("name", name);
map.put("page", page);
return visitorDao.searchByName(map);
}
}

@ -0,0 +1,23 @@
package com.utils;
import java.math.BigInteger;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
public class MD5Utils {
public static String stringToMD5(String plainText) {
byte[] secretBytes = null;
try {
secretBytes = MessageDigest.getInstance("md5").digest(
plainText.getBytes());
} catch (NoSuchAlgorithmException e) {
throw new RuntimeException("没有这个md5算法");
}
String md5code = new BigInteger(1, secretBytes).toString(16);
for (int i = 0; i < 32 - md5code.length(); i++) {
md5code = "0" + md5code;
}
return md5code;
}
}

@ -0,0 +1,41 @@
<?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:p="http://www.springframework.org/schema/p"
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-3.1.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.1.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd">
<!-- 自动扫描该包使SpringMVC认为包下用了@controller注解的类是控制器 -->
<context:component-scan base-package="com.*" />
<mvc:annotation-driven></mvc:annotation-driven>
<!-- 定义跳转的文件的前后缀 ,视图模式配置-->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<!-- 这里的配置我的理解是自动给后面action的方法return的字符串加上前缀和后缀变成一个 可用的url地址 -->
<property name="prefix" value="/WEB-INF/pages/" />
<property name="suffix" value=".jsp" />
</bean>
<!--浏览器请求静态资源时jsp中的/css/**路径将映射到 /WEB-INF/css/**路径而且该请求不会被DispatcherServlet拦截-->
<mvc:resources location="/css/" mapping="/css/**"/>
<mvc:resources location="/img/" mapping="/img/**"/>
<mvc:resources location="/js/" mapping="/js/**"/>
<mvc:resources location="/bootstrap/" mapping="/bootstrap/**"/>
<!-- 配置文件上传,如果没有使用文件上传可以不用配置,当然如果不配,那么配置文件中也不必引入上传组件包 -->
<bean id="multipartResolver"
class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<!-- 默认编码 -->
<property name="defaultEncoding" value="utf-8" />
<!-- 文件大小最大值 -->
<property name="maxUploadSize" value="10485760000" />
<!-- 内存中的最大值 -->
<property name="maxInMemorySize" value="40960" />
</bean>
</beans>

@ -0,0 +1,57 @@
<?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:p="http://www.springframework.org/schema/p"
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-3.1.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.1.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd">
<!-- 自动扫描 -->
<context:component-scan base-package="com" />
<!-- 引入配置文件 -->
<bean id="propertyConfigurer"
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="location" value="classpath:jdbc.properties" />
</bean>
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close">
<property name="driverClassName" value="${driver}" />
<property name="url" value="${url}" />
<property name="username" value="${username}" />
<property name="password" value="${password}" />
<!-- 初始化连接大小 -->
<property name="initialSize" value="${initialSize}"></property>
<!-- 连接池最大数量 -->
<property name="maxActive" value="${maxActive}"></property>
<!-- 连接池最大空闲 -->
<property name="maxIdle" value="${maxIdle}"></property>
<!-- 连接池最小空闲 -->
<property name="minIdle" value="${minIdle}"></property>
<!-- 获取连接最大等待时间 -->
<property name="maxWait" value="${maxWait}"></property>
</bean>
<!-- spring和MyBatis完美整合不需要mybatis的配置映射文件 -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<!-- 自动扫描mapping.xml文件 -->
<property name="mapperLocations" value="classpath:mapper/*.xml"></property>
</bean>
<!-- DAO接口所在包名Spring会自动查找其下的类 -->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="com.dao" />
<property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"></property>
</bean>
<!-- (事务管理)transaction manager, use JtaTransactionManager for global tx -->
<bean id="transactionManager"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource" />
</bean>
</beans>

@ -0,0 +1,14 @@
driver=com.mysql.cj.jdbc.Driver
url=jdbc:mysql://127.0.0.1:3306/sp_emp
username=root
password=123456
initialSize=0
maxActive=20
maxIdle=20
minIdle=1
maxWait=60000

@ -0,0 +1,18 @@
log4j.rootLogger=INFO,Console,File
log4j.appender.Console=org.apache.log4j.ConsoleAppender
log4j.appender.Console.Target=System.out
log4j.appender.Console.layout = org.apache.log4j.PatternLayout
log4j.appender.Console.layout.ConversionPattern=[%c] - %m%n
log4j.appender.File = org.apache.log4j.RollingFileAppender
log4j.appender.File.File = logs/ssm.log
log4j.appender.File.MaxFileSize = 10MB
log4j.appender.File.Threshold = ALL
log4j.appender.File.layout = org.apache.log4j.PatternLayout
log4j.appender.File.layout.ConversionPattern =[%p] [%d{yyyy-MM-dd HH\:mm\:ss}][%c]%m%n

@ -0,0 +1,44 @@
<?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="com.dao.IDepartmentDao">
<!--查询所有部门信息-->
<select id="findAllDepartment" resultType="com.entity.Department">
select * from t_dept;
</select>
<!--根据id查找部门-->
<select id="findDeptById" resultType="com.entity.Department" parameterType="int">
select * from t_dept where id = #{id};
</select>
<!--按页数查找部门信息-->
<select id="listDept" resultType="com.entity.Department">
select * from t_dept
<if test="start!=null and count!=null">
limit #{start},#{count}
</if>
</select>
<!--添加部门-->
<insert id="insertDept" parameterType="com.entity.Department">
insert into t_dept(deptId, deptName) values(#{deptId}, #{deptName});
</insert>
<!--修改部门信息-->
<update id="modifyDept" parameterType="com.entity.Department">
update t_dept set deptId = #{deptId}, deptName = #{deptName} where id = #{id}
</update>
<!--根据名称查找部门-->
<select id="searchByName" parameterType="Map" resultType="com.entity.Department">
select * from t_dept where deptName like #{deptName}
<if test="page.start!=null and page.count!=null">
limit #{page.start},#{page.count}
</if>
</select>
<!--获取记录总数-->
<select id="getDeptTotal" resultType="int">
select count(*) from t_dept;
</select>
<!--根据id查找部门信息-->
<delete id="deleteDept" parameterType="int">
delete from t_dept where id = #{id}
</delete>
</mapper>

@ -0,0 +1,53 @@
<?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="com.dao.IEmployeeDao">
<!--查询所有员工信息-->
<select id="findAllEmp" resultType="com.entity.Employee">
select * from t_emp;
</select>
<!--按页数查找员工信息-->
<select id="listEmp" resultType="com.entity.Employee">
select * from t_emp
<if test="start!=null and count!=null">
limit #{start},#{count}
</if>
</select>
<!--根据条件查找员工信息-->
<select id="searchEmp" parameterType="Map" resultType="com.entity.Employee">
select * from t_emp where 1=1
<if test="name!=null">
and name like #{name}
</if>
<if test="email!=null">
and email = #{email}
</if>
<if test="empId!=null">
and empId = #{empId}
</if>
<if test="page.start!=null and page.count!=null">
limit #{page.start},#{page.count}
</if>
</select>
<!--添加员工-->
<insert id="addEmp" parameterType="com.entity.Employee">
insert into t_emp(empId, name, gender, email, birth, deptId) values(#{empId}, #{name}, #{gender}, #{email}, #{birth}, #{deptId});
</insert>
<!--修改员工信息-->
<update id="modifyEmp" parameterType="com.entity.Employee">
update t_emp set empId = #{empId}, name = #{name}, gender = #{gender}, email = #{email}, birth = #{birth}, deptId = #{deptId} where id = #{id}
</update>
<!--获取记录总数-->
<select id="getEmpTotal" resultType="int">
select count(*) from t_emp;
</select>
<!--根据id查找员工-->
<select id="selectEmpById" resultType="com.entity.Employee">
select * from t_emp where id = #{id};
</select>
<!--删除员工-->
<delete id="deleteEmp" parameterType="int">
delete from t_emp where id = #{id}
</delete>
</mapper>

@ -0,0 +1,20 @@
<?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">
<!-- 设置为IUserDao接口方法提供sql语句配置 -->
<mapper namespace="com.dao.ITestDao">
<select id="findAll" resultType="com.entity.TestEntity">
select * from t_test;
</select>
<select id="list" resultType="com.entity.TestEntity">
select * from t_test
<if test="start!=null and count!=null">
limit #{start},#{count}
</if>
</select>
<select id="total" resultType="int">
select count(*) from t_test;
</select>
</mapper>

@ -1,6 +1,27 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
</beans>
<!-- 设置为IUserDao接口方法提供sql语句配置 -->
<mapper namespace="com.dao.IUserDao">
<!--根据id查找用户-->
<select id="findById" resultType="com.entity.User" parameterType="Integer">
select * from t_user where id = #{id};
</select>
<!--根据用户名和密码查找用户-->
<select id="findByNameAndPwd" resultType="com.entity.User" parameterType="Map">
select * from t_user where name = #{name} and password = #{password};
</select>
<!--添加用户-->
<insert id="insertUser" parameterType="com.entity.User">
insert into t_user(name, password, identity, telNumber, idCard, email) values(#{name}, #{password}, #{identity}, #{telNumber}, #{idCard}, #{email});
</insert>
<!--修改用户-->
<update id="modifyUser" parameterType="com.entity.User">
update t_user set name = #{name}, identity = #{identity}, telNumber = #{telNumber}, idCard = #{idCard}, email = #{email} where id = #{id}
</update>
<!--修改用户密码-->
<update id="modifyPwd" parameterType="Map">
update t_user set password = #{password} where id = #{id}
</update>
</mapper>

@ -0,0 +1,29 @@
<?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="com.dao.IVisitorDao">
<!--按页数查找访客信息-->
<select id="listVisitor" resultType="com.entity.Visitor">
select * from t_visitor
<if test="start!=null and count!=null">
limit #{start},#{count}
</if>
</select>
<!--获取记录总数-->
<select id="getVisitorTotal" resultType="int">
select count(*) from t_visitor;
</select>
<insert id="addVisitor" parameterType="com.entity.Visitor">
insert into t_visitor(name, identity, telPhone, email, visitTime) values(#{name}, #{identity}, #{telPhone}, #{email}, #{visitTime});
</insert>
<!--根据名称查找访客信息-->
<select id="searchByName" parameterType="Map" resultType="com.entity.Visitor">
select * from t_visitor where name like #{name}
<if test="page.start!=null and page.count!=null">
limit #{page.start},#{page.count}
</if>
</select>
</mapper>

@ -6,11 +6,46 @@
To change this template use File | Settings | File Templates. To change this template use File | Settings | File Templates.
--%> --%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %> <%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<html> <html>
<head> <head>
<title>Title</title> <meta charset="utf-8">
<title></title>
<link rel="stylesheet" href="bootstrap/css/bootstrap.min.css" />
<script src="js/jquery-3.5.1.js"></script>
<script src="bootstrap/js/bootstrap.min.js"></script>
<script src="js/index.js"></script>
<link rel="stylesheet" href="css/index.css"/>
</head> </head>
<body> <body>
<jsp:include page="topbar.jsp"></jsp:include>
<!-- 主题内容 -->
<div class="container-fluid">
<div class="row">
<jsp:include page="leftMenu.jsp"></jsp:include>
<div class="col-sm-10 page-main">
<table class="table table-striped table-bordered text-center" style="margin-top:80px">
<tr>
<td>开发工具</td>
<td>IDEA 2019</td>
</tr>
<tr>
<td>前端技术</td>
<td>Bootstrap</td>
</tr>
<tr>
<td>框架</td>
<td>Spring+Spring MVC+MyBatis</td>
</tr>
</table>
</div>
</div>
</div>
<jsp:include page="footer.jsp"></jsp:include>
</body> </body>
</html> </html>

@ -0,0 +1,94 @@
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<html>
<head>
<meta charset="utf-8">
<title></title>
<link rel="stylesheet" href="bootstrap/css/bootstrap.min.css" />
<script src="js/index.js"></script>
<link rel="stylesheet" href="css/index.css"/>
<script src="js/jquery-3.5.1.js"></script>
<script src="bootstrap/js/bootstrap.min.js"></script>
</head>
<body>
<jsp:include page="topbar.jsp"></jsp:include>
<!-- 主题内容 -->
<div class="container-fluid">
<div class="row">
<jsp:include page="leftMenu.jsp"></jsp:include>
<div class="col-sm-10 page-main">
<ol class="breadcrumb">
<li>员工管理</li>
<li>员工信息</li>
</ol>
<form action="${pageContext.request.contextPath}/addEmp" class="form-horizontal">
<div class="form-group">
<label class="col-sm-3 control-label">员工号</label>
<div class="col-sm-7">
<input type="text" class="form-control" name="empId">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">姓名</label>
<div class="col-sm-7">
<input type="text" class="form-control" name="name">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">性别</label>
<div class="col-sm-3">
<div class="radio">
<label>
<input type="radio" name="gender" value="1" checked> 男
</label>
</div>
</div>
<div class="col-sm-3">
<div class="radio">
<label>
<input type="radio" name="gender" value="0"> 女
</label>
</div>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">邮箱</label>
<div class="col-sm-7">
<input type="text" class="form-control" name="email">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">生日</label>
<div class="col-sm-7">
<input type="text" class="form-control" name="birth">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">所属部门</label>
<div class="col-sm-7">
<select name="deptId" class="selectpicker" style="display:block;height: 40px;font-size: 16px">
<c:forEach items="${deptList}" var="dept" >
<div class="col-sm-4" >
<option value="${dept.id}">
${dept.deptName}
</option>
</div>
</c:forEach>
</select>
</div>
</div>
<div class="modal-footer">
<button type="submit" class="btn btn-primary">确认</button>
</div>
</form>
</div>
</div>
<jsp:include page="footer.jsp"></jsp:include>
</body>
</html>

@ -0,0 +1,129 @@
<%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<html>
<head>
<meta charset="utf-8">
<title></title>
<link rel="stylesheet" href="bootstrap/css/bootstrap.min.css" />
<%-- <script src="js/index.js"></script>--%>
<link rel="stylesheet" href="css/index.css"/>
<script src="js/jquery-3.5.1.js"></script>
<script src="bootstrap/js/bootstrap.min.js"></script>
</head>
<body>
<jsp:include page="topbar.jsp"></jsp:include>
<!-- 主题内容 -->
<div class="container-fluid">
<div class="row">
<jsp:include page="leftMenu.jsp"></jsp:include>
<div class="col-sm-10 page-main">
<ol class="breadcrumb">
<li>部门管理</li>
<li>部门信息</li>
</ol>
<form class="form-inline" action="${pageContext.request.contextPath}/searchDept">
<div class="form-group">
<input type="text" class="form-control" placeholder="请输入部门名称" name="deptName">
</div>
<button class="btn btn-info" type="submit"><span class="glyphicon glyphicon-search"></span></button>
</form>
<hr>
<div class="text-center" style="display:block">
<button class="btn btn-primary col-sm-1" style="margin-right:10px" data-toggle="modal" data-target="#studentAddModal"><span class="glyphicon glyphicon-plus" style="margin-right: 10px;"></span>添加</button>
<button class="btn btn-warning col-sm-1"><span class="glyphicon glyphicon-upload" style="margin-right: 10px;"></span>导出</button>
<label class="pull-right" style="margin-right:20px">共有数据${total}条</label>
<div class="modal fade" id="studentAddModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel2">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
<h4 class="modal-title" id="myModalLabel2">添加部门</h4>
</div>
<div class="modal-body">
<form action="${pageContext.request.contextPath}/addDept" class="form-horizontal">
<div class="form-group">
<label class="col-sm-3 control-label">部门号</label>
<div class="col-sm-7">
<input type="text" class="form-control" name="deptId">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">部门名称</label>
<div class="col-sm-7">
<input type="text" class="form-control" name="deptName">
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">取消</button>
<button type="submit" class="btn btn-primary">确定</button>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
<table class="table table-striped table-bordered text-center" style="margin-top:80px">
<thead>
<tr>
<th class="text-center">部门号</th>
<th class="text-center">部门名称</th>
<th class="text-center">操作</th>
</tr>
</thead>
<tbody>
<c:forEach var="dept" items="${deptList}" >
<tr>
<td>${dept.deptId}</td>
<td>${dept.deptName}</td>
<td>
<a href="${pageContext.request.contextPath}/toModifyDept?id=${dept.id}" ><span class="glyphicon glyphicon-pencil" style="margin-right:10px"></span></a>
<a href="${pageContext.request.contextPath}/deleteDept?id=${dept.id}"><span class="glyphicon glyphicon-trash"></span></a>
</td>
</tr>
</c:forEach>
</tbody>
</table>
<div class="row text-center">
<div class="form-group">
<label class="pull-right" style="margin-right:20px">当前第${page.currentIndex}页,共${page.totalIndex}页</label>
</div>
<form class="form-inline" style="padding:20px" action="">
<div class="col-sm-6 col-sm-offset-2">
<ul class="pagination">
<li><a href="${pageContext.request.contextPath}/toDepartment?start=0" aria-label="Previous"><span aria-hidden="true">首页</span></a></li>
<c:if test="${page.currentIndex != 1}">
<li><a href="${pageContext.request.contextPath}/toDepartment?start=${page.start - page.count}&currentIndex=${page.currentIndex-1}" aria-label="Previous"><span aria-hidden="true">上一页</span></a></li>
</c:if>
<c:if test="${page.currentIndex != page.totalIndex}">
<li><a href="${pageContext.request.contextPath}/toDepartment?start=${page.start + page.count}&currentIndex=${page.currentIndex+1}" aria-label="Next"><span aria-hidden="true">下一页</span></a></li>
</c:if>
<li><a href="${pageContext.request.contextPath}/toDepartment?start=${page.last}" aria-label="Previous"><span aria-hidden="true">末页</span></a></li>
</ul>
</div>
</form>
</div>
</div>
</div>
<jsp:include page="footer.jsp"></jsp:include>
</body>
<script>
$(function () {
$(".modifyOperate").click(function () {
var td = $(".modifyOperate").parent().parent().find('td');
console.log(td.eq(1).text());
console.log(td.eq(0).text());
// $("#update_id_input").val(tr.eq(1).text())
// $("#update_name_input").val(tr.eq(2).text());
});
});
</script>
</html>

@ -0,0 +1,104 @@
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<html>
<head>
<meta charset="utf-8">
<title></title>
<link rel="stylesheet" href="bootstrap/css/bootstrap.min.css" />
<script src="js/index.js"></script>
<link rel="stylesheet" href="css/index.css"/>
<script src="js/jquery-3.5.1.js"></script>
<script src="bootstrap/js/bootstrap.min.js"></script>
</head>
<body>
<jsp:include page="topbar.jsp"></jsp:include>
<!-- 主题内容 -->
<div class="container-fluid">
<div class="row">
<jsp:include page="leftMenu.jsp"></jsp:include>
<div class="col-sm-10 page-main">
<ol class="breadcrumb">
<li>员工管理</li>
<li>员工信息</li>
</ol>
<form class="form-inline" action="${pageContext.request.contextPath}/searchEmp">
<div class="form-group">
<input type="text" class="form-control" placeholder="请输入姓名" name="name">
</div>
<div class="form-group">
<input type="text" class="form-control" placeholder="请输入邮箱" name="email">
</div>
<div class="form-group">
<input type="text" class="form-control" placeholder="请输入员工号" name="empId">
</div>
<button class="btn btn-info"><span class="glyphicon glyphicon-search"></span></button>
</form>
<hr>
<div class="text-center" style="display:block">
<a href="${pageContext.request.contextPath}/toAddEmp" class="btn btn-primary col-sm-1" style="margin-right:10px" ><span class="glyphicon glyphicon-plus" style="margin-right: 10px;"></span>添加</a>
<button class="btn btn-warning col-sm-1"><span class="glyphicon glyphicon-upload" style="margin-right: 10px;"></span>导出</button>
</div>
<label class="pull-right" style="margin-right:20px">共有数据${total}条</label>
<table class="table table-striped table-bordered text-center" style="margin-top:80px">
<thead>
<tr>
<th class="text-center">员工号</th>
<th class="text-center">姓名</th>
<th class="text-center">性别</th>
<th class="text-center">邮箱</th>
<th class="text-center">生日</th>
<th class="text-center">所属部门</th>
<th class="text-center">操作</th>
</tr>
</thead>
<tbody>
<c:forEach var="emp" items="${empList}" >
<tr>
<td>${emp.empId}</td>
<td>${emp.name}</td>
<td>${emp.gender == 1 ? "男" : "女"}</td>
<td>${emp.email}</td>
<td><fmt:formatDate value="${emp.birth}" pattern="yyyy-MM-dd hh:mm" />
</td>
<td>${emp.deptName}</td>
<td>
<a href="${pageContext.request.contextPath}/toModifyEmp?id=${emp.id}" ><span class="glyphicon glyphicon-pencil" style="margin-right:10px"></span></a>
<a href="${pageContext.request.contextPath}/deleteEmp?id=${emp.id}"><span class="glyphicon glyphicon-trash"></span></a>
</td>
</tr>
</c:forEach>
</tbody>
</table>
<div class="row text-center">
<div class="form-group">
<label class="pull-right" style="margin-right:20px">当前第${page.currentIndex}页,共${page.totalIndex}页</label>
</div>
<form class="form-inline" style="padding:20px" action="">
<div class="col-sm-6 col-sm-offset-2">
<ul class="pagination">
<li><a href="${pageContext.request.contextPath}/toEmployee?start=0" aria-label="Previous"><span aria-hidden="true">首页</span></a></li>
<c:if test="${page.currentIndex != 1}">
<li><a href="${pageContext.request.contextPath}/toEmployee?start=${page.start - page.count}&currentIndex=${page.currentIndex-1}" aria-label="Previous"><span aria-hidden="true">上一页</span></a></li>
</c:if>
<c:if test="${page.currentIndex != page.totalIndex}">
<li><a href="${pageContext.request.contextPath}/toEmployee?start=${page.start + page.count}&currentIndex=${page.currentIndex+1}" aria-label="Next"><span aria-hidden="true">下一页</span></a></li>
</c:if>
<li><a href="${pageContext.request.contextPath}/toEmployee?start=${page.last}" aria-label="Previous"><span aria-hidden="true">末页</span></a></li>
</ul>
</div>
</form>
</div>
</div>
</div>
<jsp:include page="footer.jsp"></jsp:include>
</body>
<script>
</script>
</html>

@ -0,0 +1,7 @@
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<footer class="footer" style="background-color:#1C1C1C;color:white;height:80px;line-height:30px">
<div class="container text-center">
<p>所属小组:第九组 &nbsp;&nbsp;&nbsp;电话12345678901<br />地址:河南省郑州市 &nbsp;&nbsp;&nbsp; 邮编123456</p>
</div>
</footer>

@ -0,0 +1,38 @@
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<!-- 侧边栏 -->
<div class="navbar-default navbar-collapse col-sm-2" id="slide-left">
<ul class="nav col-sm-12 slide-group">
<li>
<a href="#sub1" class="collapse" data-toggle="collapse">员工管理<span class="glyphicon glyphicon-chevron-right pull-right"></span></a>
<ul id="sub1" class="nav collapse">
<li class="text-center"><a href="${pageContext.request.contextPath}/toEmployee"><span class="glyphicon glyphicon-list-alt"></span>&nbsp;员工信息</a></li>
</ul>
</li>
<li>
<a href="#sub2" class="collapse" data-toggle="collapse">部门管理<span class="glyphicon glyphicon-chevron-right pull-right"></span></a>
<ul id="sub2" class="nav collapse">
<li class="text-center"><a href="${pageContext.request.contextPath}/toDepartment"><span class="glyphicon glyphicon-book"></span>&nbsp;部门信息</a></li>
</ul>
</li>
<li>
<a href="#sub3" class="collapse" data-toggle="collapse">访客信息<span class="glyphicon glyphicon-chevron-right pull-right"></span></a>
<ul id="sub3" class="nav collapse">
<li class="text-center"><a href="${pageContext.request.contextPath}/toVisitor"><span class="glyphicon glyphicon-eye-open"></span>&nbsp;访客列表</a></li>
</ul>
</li>
<li>
<a href="#sub4" class="collapse" data-toggle="collapse">个人资料<span class="glyphicon glyphicon-chevron-right pull-right"></span></a>
<ul id="sub4" class="nav collapse">
<li class="text-center"><a href="${pageContext.request.contextPath}/toUserMsg?id=${userId}"><span class="glyphicon glyphicon-dashboard"></span>&nbsp;个人信息</a></li>
<li class="text-center"><a href="${pageContext.request.contextPath}/toModifyPwd?id=${userId}"><span class="glyphicon glyphicon-eye-open"></span>&nbsp;修改密码</a></li>
</ul>
</li>
<%-- <li>--%>
<%-- <a href="#sub5" class="collapse" data-toggle="collapse">测试<span class="glyphicon glyphicon-chevron-right pull-right"></span></a>--%>
<%-- <ul id="sub5" class="nav collapse">--%>
<%-- <li class="text-center"><a href="${pageContext.request.contextPath}/getTest"><span class="glyphicon glyphicon-eye-open"></span>&nbsp;测试列表</a></li>--%>
<%-- </ul>--%>
<%-- </li>--%>
</ul>
</div>

@ -0,0 +1,91 @@
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<meta charset="utf-8">
<title>员工管理系统</title>
<!-- 引入bootstrap -->
<link rel="stylesheet" href="bootstrap/css/bootstrap.min.css" />
<!-- 引入jquery -->
<script src="js/jquery-3.5.1.js"></script>
<script src="bootstrap/js/bootstrap.min.js"></script>
<!-- 引入自定义js -->
<script src="/js/index.js"></script>
<style>
#carousel_container{
margin-bottom: 20px;
}
#carousel_container img{
width:780px;
height: 480px;
}
</style>
</head>
<body>
<jsp:include page="topbar.jsp"></jsp:include>
<!-- 主题内容 -->
<div class="container-fluid">
<div class="row">
<jsp:include page="leftMenu.jsp"></jsp:include>
<!-- 右侧内容 -->
<div class="col-sm-8 page-main">
<ol class="breadcrumb">
<li>系统主页</li>
</ol>
<div class="row">
<div class="col-md-10 col-md-offset-1">
<!-- 轮播图 -->
<div class="carousel slide" id="carousel_container" data-ride="carousel" data-interval="2000">
<!-- 图片容器 -->
<div class="carousel carousel-inner">
<div class="item active">
<img src="img/build1.jpg">
</div>
<div class="item">
<img src="img/build2.jpg">
</div>
<div class="item">
<img src="img/build3.jpg">
</div>
<div class="item">
<img src="img/build4.jpg">
</div>
</div>
<!-- 小圆圈容器 -->
<ol class="carousel-indicators">
<li data-slide-to="0" data-target="#carousel_container"></li>
<li data-slide-to="1" data-target="#carousel_container"></li>
<li data-slide-to="2" data-target="#carousel_container"></li>
<li data-slide-to="3" data-target="#carousel_container"></li>
</ol>
<!-- 左右按钮 -->
<a href="#carousel_container" data-slide="prev" class="left carousel-control">
<span class="glyphicon glyphicon-chevron-left"></span>
</a>
<a href="#carousel_container" data-slide="next" class="right carousel-control">
<span class="glyphicon glyphicon-chevron-right"></span>
</a>
</div>
</div>
</div>
</div>
<div class="col-sm-2">
<div class="panel panel-default">
<div class="panel-heading" style="background-color:skyblue">
系统介绍
</div>
<div class="panel-body">
<marquee scrolldelay="100">
<p>&nbsp;&nbsp;&nbsp;&nbsp;系统名称:员工信息采集系统 第九组成员介绍:耿春莹 秦幸利 孙博 刘静 在当今社会,互联网空间的发展,给人们的工作和生活带来了极大的便利和高效,信息化、电子化已经成为节约运营成本,提高工作效率的首选。当前大量企业的员工管理尚处于手工作业阶段,不但效率低下,还常常因为管理的不慎而出现纰漏。因此部分企业需求,设计企业员工信息管理系统,以帮助企业达到员工管理办公自动化、节约管理成本、提高企业工作效率的目的。
企业员工信息管理系统采用B/S结构主要对企业员工的信息以及跟人事相关的工作流程进行集中管理方便企业建立一个完善的、强大的员工信息数据库。使用HTML和Java设计管理页面和编写操作程序完成数据输入、修改、存储、调用查询等功能并使用MySQL数据库形成数据表进行数据存储。</p>
</marquee>
</div>
</div>
</div>
</div>
</div>
<jsp:include page="footer.jsp"></jsp:include>
</body>
</html>

@ -0,0 +1,53 @@
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<html>
<head>
<meta charset="utf-8">
<title></title>
<link rel="stylesheet" href="bootstrap/css/bootstrap.min.css" />
<script src="js/jquery-3.5.1.js"></script>
<script src="bootstrap/js/bootstrap.min.js"></script>
<script src="js/index.js"></script>
<link rel="stylesheet" href="css/index.css"/>
</head>
<body>
<jsp:include page="topbar.jsp"></jsp:include>
<!-- 主题内容 -->
<div class="container-fluid">
<div class="row">
<jsp:include page="leftMenu.jsp"></jsp:include>
<div class="col-sm-10 page-main">
<ol class="breadcrumb">
<li>个人资料</li>
<li>修改密码</li>
</ol>
<form action="${pageContext.request.contextPath}/modifyPwd" class="form-horizontal" id="registerForms">
<input type="hidden" value="${loginUser.id}" name="id">
<div class="form-group">
<label class="col-sm-3 control-label">新密码</label>
<div class="col-sm-4 register-username-area">
<input type="password" name="password" class="form-control">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">确认密码</label>
<div class="col-sm-4 register-email-area">
<input type="password" name="rePassword" class="form-control" >
</div>
</div>
<div class="modal-footer">
<button class="btn btn-default" data-dismiss="modal">取消</button>
<button class="btn btn-primary" type="submit">修改</button>
</div>
</form>
</div>
</div>
</div>
<jsp:include page="footer.jsp"></jsp:include>
</body>
</html>

@ -0,0 +1,111 @@
<%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<html>
<head>
<meta charset="utf-8">
<title></title>
<link rel="stylesheet" href="bootstrap/css/bootstrap.min.css" />
<%-- <script src="js/index.js"></script>--%>
<link rel="stylesheet" href="css/index.css"/>
<script src="js/jquery-3.5.1.js"></script>
<script src="bootstrap/js/bootstrap.min.js"></script>
</head>
<body>
<jsp:include page="topbar.jsp"></jsp:include>
<!-- 主题内容 -->
<div class="container-fluid">
<div class="row">
<jsp:include page="leftMenu.jsp"></jsp:include>
<div class="col-sm-10 page-main">
<div class="text-center" style="display:block">
<label class="pull-right" style="margin-right:20px">共有数据${total}条</label>
</div>
<table id="table" class="table table-striped table-bordered text-center" style="margin-top:80px">
<thead>
<tr>
<th class="text-center">部门号</th>
<th class="text-center">名称</th>
</tr>
</thead>
<tbody>
<c:forEach var="test" items="${testList}" >
<tr>
<td>${test.id}</td>
<td>${test.num}</td>
<td>
<a href="" data-toggle="modal" data-target="#deptModifyModal" data-orderId="${test.id}"><span class="glyphicon glyphicon-pencil" style="margin-right:10px"></span></a>
<!-- Modal -->
<div class="modal fade" id="deptModifyModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel3">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
<h4 class="modal-title" id="myModalLabel3">信息修改</h4>
</div>
<div class="modal-body">
<form action="${pageContext.request.contextPath}/modifyDept" class="form-horizontal" id="updateform">
<input value="${dept.id}" name="id" hidden>
<div class="form-group">
<label class="col-sm-3 control-label">部门号</label>
<div class="col-sm-7">
<input type="text" class="form-control" value="${test.id}" name="id">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">部门名称</label>
<div class="col-sm-7">
<input type="text" class="form-control" value="${test.num}" name="num">
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">取消</button>
<button type="submit" class="btn btn-primary">确认</button>
</div>
</form>
</div>
</div>
</div>
</div>
<a href=""><span class="glyphicon glyphicon-trash"></span></a>
</td>
</tr>
</c:forEach>
</tbody>
</table>
<div class="row text-center">
<div class="form-group">
<label class="pull-right" style="margin-right:20px">当前第${page.currentIndex}页,共${page.totalIndex}页</label>
</div>
<form class="form-inline" style="padding:20px" action="">
<div class="col-sm-6 col-sm-offset-2">
<ul class="pagination">
<li><a href="${pageContext.request.contextPath}/getTest?start=0" aria-label="Previous"><span aria-hidden="true">首页</span></a></li>
<c:if test="${page.currentIndex != 1}">
<li><a href="${pageContext.request.contextPath}/getTest?start=${page.start - page.count}&currentIndex=${page.currentIndex-1}" aria-label="Previous"><span aria-hidden="true">上一页</span></a></li>
</c:if>
<c:if test="${page.currentIndex != page.totalIndex}">
<li><a href="${pageContext.request.contextPath}/getTest?start=${page.start + page.count}&currentIndex=${page.currentIndex+1}" aria-label="Next"><span aria-hidden="true">下一页</span></a></li>
</c:if>
<li><a href="${pageContext.request.contextPath}/getTest?start=${page.last}" aria-label="Previous"><span aria-hidden="true">末页</span></a></li>
</ul>
</div>
</form>
</div>
</div>
</div>
<jsp:include page="footer.jsp"></jsp:include>
</body>
<script>
$("#deptModifyModal").on('show.bs.modal', function (e) {
let deleteBookId = $(e.relatedTarget).data("orderid");
console.log(deleteBookId)
});
</script>
</html>

@ -0,0 +1,40 @@
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<!-- 导航 -->
<nav class="navbar navbar-default navbar-static-top navbar-inverse">
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#slide-left">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<label class="navbar-brand">员工信息管理</label>
</div>
<ul class="nav navbar-nav nav-menu" style="margin-right: 25px;" >
<li ><a href="${pageContext.request.contextPath}/main">首页</a></li>
<li><a href="">使用指南</a></li>
<li><a href="${pageContext.request.contextPath}/about">关于</a></li>
</ul>
<!-- 搜索框 -->
<form class="navbar-form navbar-left">
<div class="input-group">
<input type="" class="form-control" />
<span class="input-group-btn">
<button type="button" class="btn btn-default"><span class="glyphicon glyphicon-search"></span></button>
</span>
</div>
</form>
<ul class="nav navbar-nav navbar-right pull-right" style="margin-right: 40px;">
<li><a href="">欢迎&nbsp;${userName} 登录</a></li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">我的
<span class="caret"></span></a>
<ul class="dropdown-menu text-center">
<li role="separator" class="divider"></li>
<li class="text-center"><a href="index.jsp">退出</a></li>
</ul>
</li>
</ul>
</nav>

@ -0,0 +1,62 @@
<%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<html>
<head>
<meta charset="utf-8">
<title></title>
<link rel="stylesheet" href="bootstrap/css/bootstrap.min.css" />
<%-- <script src="js/index.js"></script>--%>
<link rel="stylesheet" href="css/index.css"/>
<script src="js/jquery-3.5.1.js"></script>
<script src="bootstrap/js/bootstrap.min.js"></script>
</head>
<body>
<jsp:include page="topbar.jsp"></jsp:include>
<!-- 主题内容 -->
<div class="container-fluid">
<div class="row">
<jsp:include page="leftMenu.jsp"></jsp:include>
<div class="col-sm-10 page-main">
<ol class="breadcrumb">
<li>部门管理</li>
<li>部门信息</li>
</ol>
<form action="${pageContext.request.contextPath}/modifyDept" class="form-horizontal" id="updateform">
<input value="${dept.id}" name="id" hidden>
<div class="form-group">
<label class="col-sm-3 control-label">部门号</label>
<div class="col-sm-7">
<input type="text" class="form-control" value="${dept.deptId}" name="deptId">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">部门名称</label>
<div class="col-sm-7">
<input type="text" class="form-control" value="${dept.deptName}" name="deptName">
</div>
</div>
<div class="modal-footer">
<button type="submit" class="btn btn-primary">确认</button>
</div>
</form>
</div>
</div>
<jsp:include page="footer.jsp"></jsp:include>
</body>
<script>
$(function () {
$(".modifyOperate").click(function () {
var td = $(".modifyOperate").parent().parent().find('td');
console.log(td.eq(1).text());
console.log(td.eq(0).text());
// $("#update_id_input").val(tr.eq(1).text())
// $("#update_name_input").val(tr.eq(2).text());
});
});
</script>
</html>

@ -0,0 +1,96 @@
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<html>
<head>
<meta charset="utf-8">
<title></title>
<link rel="stylesheet" href="bootstrap/css/bootstrap.min.css" />
<script src="js/index.js"></script>
<link rel="stylesheet" href="css/index.css"/>
<script src="js/jquery-3.5.1.js"></script>
<script src="bootstrap/js/bootstrap.min.js"></script>
</head>
<body>
<jsp:include page="topbar.jsp"></jsp:include>
<!-- 主题内容 -->
<div class="container-fluid">
<div class="row">
<jsp:include page="leftMenu.jsp"></jsp:include>
<div class="col-sm-10 page-main">
<ol class="breadcrumb">
<li>员工管理</li>
<li>员工信息</li>
</ol>
<form action="${pageContext.request.contextPath}/modifyEmp" class="form-horizontal">
<input type="hidden" class="form-control" name="id" value="${emp.id}">
<div class="form-group">
<label class="col-sm-3 control-label">员工号</label>
<div class="col-sm-7">
<input type="text" class="form-control" name="empId" value="${emp.empId}">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">姓名</label>
<div class="col-sm-7">
<input type="text" class="form-control" name="name" value="${emp.name}">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">性别</label>
<div class="col-sm-3">
<div class="radio">
<label>
<input type="radio" name="gender" value="1" <c:if test="${emp.gender==1}"> checked='checked'</c:if> > 男
</label>
</div>
</div>
<div class="col-sm-3">
<div class="radio">
<label>
<input type="radio" name="gender" value="0" <c:if test="${emp.gender==0}"> checked='checked'</c:if>> 女
</label>
</div>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">邮箱</label>
<div class="col-sm-7">
<input type="text" class="form-control" name="email" value="${emp.email}">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">生日</label>
<div class="col-sm-7">
<input type="text" class="form-control" name="birth" value="<fmt:formatDate value='${emp.birth}' pattern='yyyy-MM-dd hh:mm' />" >
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">所属部门</label>
<div class="col-sm-7">
<select name="deptId" class="selectpicker" style="display:block;height: 40px;font-size: 16px">
<c:forEach items="${deptList}" var="dept" >
<div class="col-sm-4" >
<option value="${dept.id}">
${dept.deptName}
</option>
</div>
</c:forEach>
</select>
</div>
</div>
<div class="modal-footer">
<button type="submit" class="btn btn-primary">确认</button>
</div>
</form>
</div>
</div>
<jsp:include page="footer.jsp"></jsp:include>
</body>
</html>

@ -0,0 +1,82 @@
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<html>
<head>
<meta charset="utf-8">
<title></title>
<link rel="stylesheet" href="bootstrap/css/bootstrap.min.css" />
<script src="js/jquery-3.5.1.js"></script>
<script src="bootstrap/js/bootstrap.min.js"></script>
<script src="js/index.js"></script>
<link rel="stylesheet" href="css/index.css"/>
</head>
<body>
<jsp:include page="topbar.jsp"></jsp:include>
<!-- 主题内容 -->
<div class="container-fluid">
<div class="row">
<jsp:include page="leftMenu.jsp"></jsp:include>
<div class="col-sm-10 page-main">
<ol class="breadcrumb">
<li>个人资料</li>
<li>个人信息</li>
</ol>
<form action="${pageContext.request.contextPath}/modifyUserMsg" class="form-horizontal" id="registerForms">
<input type="hidden" value="${loginUser.id}" name="id">
<div class="form-group">
<label class="col-sm-3 control-label">用户名</label>
<div class="col-sm-4 register-username-area">
<input type="text" name="name" class="form-control" value="${loginUser.name}">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">身份</label>
<div class="col-sm-3">
<div class="radio">
<label>
<input type="radio" name="identity" value="0" <c:if test="${loginUser.identity==0}"> checked='checked'</c:if> > 员工
</label>
</div>
</div>
<div class="col-sm-3">
<div class="radio">
<label>
<input type="radio" name="identity" value="1" <c:if test="${loginUser.identity==1}"> checked='checked'</c:if>> 管理员
</label>
</div>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">手机号</label>
<div class="col-sm-4 register-photo-area">
<input type="text" name="telNumber" class="form-control" value="${loginUser.telNumber}">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">身份证号</label>
<div class="col-sm-4 register-idNumber-area">
<input type="text" name="idCard" class="form-control" value="${loginUser.idCard}">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">邮箱</label>
<div class="col-sm-4 register-email-area">
<input type="text" name="email" class="form-control" value="${loginUser.email}">
</div>
</div>
<div class="modal-footer">
<button class="btn btn-default" data-dismiss="modal">取消</button>
<button class="btn btn-primary" type="submit">修改</button>
</div>
</form>
</div>
</div>
</div>
<jsp:include page="footer.jsp"></jsp:include>
</body>
</html>

@ -0,0 +1,89 @@
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<html>
<head>
<meta charset="utf-8">
<title></title>
<link rel="stylesheet" href="bootstrap/css/bootstrap.min.css" />
<script src="js/jquery-3.5.1.js"></script>
<script src="bootstrap/js/bootstrap.min.js"></script>
<script src="js/index.js"></script>
<link rel="stylesheet" href="css/index.css"/>
</head>
<body>
<jsp:include page="topbar.jsp"></jsp:include>
<!-- 主题内容 -->
<div class="container-fluid">
<div class="row">
<jsp:include page="leftMenu.jsp"></jsp:include>
<div class="col-sm-10 page-main">
<ol class="breadcrumb">
<li>访客管理</li>
<li>访客列表</li>
</ol>
<form class="form-inline" action="${pageContext.request.contextPath}/searchVisitor">
<div class="form-group">
<input type="text" class="form-control" placeholder="请输入姓名" name="name">
</div>
<button class="btn btn-info" type="submit"><span class="glyphicon glyphicon-search"></span></button>
</form>
<hr>
<div class="text-center" style="display:block">
<button class="btn btn-warning col-sm-1"><span class="glyphicon glyphicon-upload" style="margin-right: 10px;"></span>导出</button>
<label class="pull-right" style="margin-right:20px">共有数据${total}条</label>
</div>
<table class="table table-striped table-bordered text-center" style="margin-top:80px">
<thead>
<tr>
<th class="text-center">姓名</th>
<th class="text-center">是否管理员</th>
<th class="text-center">邮箱</th>
<th class="text-center">手机号</th>
<th class="text-center">访问时间</th>
</tr>
</thead>
<tbody>
<c:forEach var="visitor" items="${visitorList}" >
<tr>
<td>${visitor.name}</td>
<td>${visitor.identity == 1 ? "是" : "否"}</td>
<td>${visitor.email}</td>
<td>${visitor.telPhone}</td>
<td><fmt:formatDate value="${visitor.visitTime}" pattern="yyyy-MM-dd hh:mm" /></td>
</tr>
</c:forEach>
</tbody>
</table>
<div class="row text-center">
<div class="form-group">
<label class="pull-right" style="margin-right:20px">当前第${page.currentIndex}页,共${page.totalIndex}页</label>
</div>
<form class="form-inline" style="padding:20px" action="">
<div class="col-sm-6 col-sm-offset-2">
<ul class="pagination">
<li><a href="${pageContext.request.contextPath}/toVisitor?start=0" aria-label="Previous"><span aria-hidden="true">首页</span></a></li>
<c:if test="${page.currentIndex != 1}">
<li><a href="${pageContext.request.contextPath}/toVisitor?start=${page.start - page.count}&currentIndex=${page.currentIndex-1}" aria-label="Previous"><span aria-hidden="true">上一页</span></a></li>
</c:if>
<c:if test="${page.currentIndex != page.totalIndex}">
<li><a href="${pageContext.request.contextPath}/toVisitor?start=${page.start + page.count}&currentIndex=${page.currentIndex+1}" aria-label="Next"><span aria-hidden="true">下一页</span></a></li>
</c:if>
<li><a href="${pageContext.request.contextPath}/toVisitor?start=${page.last}" aria-label="Previous"><span aria-hidden="true">末页</span></a></li>
</ul>
</div>
</form>
</div>
</div>
</div>
</div>
<jsp:include page="footer.jsp"></jsp:include>
</body>
</html>

@ -1,7 +1,55 @@
<!DOCTYPE web-app PUBLIC <?xml version="1.0" encoding="UTF-8"?>
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
"http://java.sun.com/dtd/web-app_2_3.dtd" > 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"
<web-app> version="3.0">
<display-name>Archetype Created Web Application</display-name> <display-name>Archetype Created Web Application</display-name>
</web-app> <!-- Spring和mybatis的配置文件 -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext-mybatis.xml</param-value>
</context-param>
<!-- 编码过滤器 -->
<filter>
<filter-name>encodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<async-supported>true</async-supported>
<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>
<!-- Spring监听器 -->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<!-- 防止Spring内存溢出监听器 -->
<listener>
<listener-class>org.springframework.web.util.IntrospectorCleanupListener</listener-class>
</listener>
<!-- Spring MVC servlet -->
<servlet>
<servlet-name>SpringMVC</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext-SpringMVC.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对应struts的后缀习惯 -->
<url-pattern>/</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>/index.jsp</welcome-file>
</welcome-file-list>
</web-app>

@ -0,0 +1,587 @@
/*!
* Bootstrap v3.3.7 (http://getbootstrap.com)
* Copyright 2011-2016 Twitter, Inc.
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
*/
.btn-default,
.btn-primary,
.btn-success,
.btn-info,
.btn-warning,
.btn-danger {
text-shadow: 0 -1px 0 rgba(0, 0, 0, .2);
-webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 1px rgba(0, 0, 0, .075);
box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 1px rgba(0, 0, 0, .075);
}
.btn-default:active,
.btn-primary:active,
.btn-success:active,
.btn-info:active,
.btn-warning:active,
.btn-danger:active,
.btn-default.active,
.btn-primary.active,
.btn-success.active,
.btn-info.active,
.btn-warning.active,
.btn-danger.active {
-webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);
box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);
}
.btn-default.disabled,
.btn-primary.disabled,
.btn-success.disabled,
.btn-info.disabled,
.btn-warning.disabled,
.btn-danger.disabled,
.btn-default[disabled],
.btn-primary[disabled],
.btn-success[disabled],
.btn-info[disabled],
.btn-warning[disabled],
.btn-danger[disabled],
fieldset[disabled] .btn-default,
fieldset[disabled] .btn-primary,
fieldset[disabled] .btn-success,
fieldset[disabled] .btn-info,
fieldset[disabled] .btn-warning,
fieldset[disabled] .btn-danger {
-webkit-box-shadow: none;
box-shadow: none;
}
.btn-default .badge,
.btn-primary .badge,
.btn-success .badge,
.btn-info .badge,
.btn-warning .badge,
.btn-danger .badge {
text-shadow: none;
}
.btn:active,
.btn.active {
background-image: none;
}
.btn-default {
text-shadow: 0 1px 0 #fff;
background-image: -webkit-linear-gradient(top, #fff 0%, #e0e0e0 100%);
background-image: -o-linear-gradient(top, #fff 0%, #e0e0e0 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#e0e0e0));
background-image: linear-gradient(to bottom, #fff 0%, #e0e0e0 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe0e0e0', GradientType=0);
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
background-repeat: repeat-x;
border-color: #dbdbdb;
border-color: #ccc;
}
.btn-default:hover,
.btn-default:focus {
background-color: #e0e0e0;
background-position: 0 -15px;
}
.btn-default:active,
.btn-default.active {
background-color: #e0e0e0;
border-color: #dbdbdb;
}
.btn-default.disabled,
.btn-default[disabled],
fieldset[disabled] .btn-default,
.btn-default.disabled:hover,
.btn-default[disabled]:hover,
fieldset[disabled] .btn-default:hover,
.btn-default.disabled:focus,
.btn-default[disabled]:focus,
fieldset[disabled] .btn-default:focus,
.btn-default.disabled.focus,
.btn-default[disabled].focus,
fieldset[disabled] .btn-default.focus,
.btn-default.disabled:active,
.btn-default[disabled]:active,
fieldset[disabled] .btn-default:active,
.btn-default.disabled.active,
.btn-default[disabled].active,
fieldset[disabled] .btn-default.active {
background-color: #e0e0e0;
background-image: none;
}
.btn-primary {
background-image: -webkit-linear-gradient(top, #337ab7 0%, #265a88 100%);
background-image: -o-linear-gradient(top, #337ab7 0%, #265a88 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#265a88));
background-image: linear-gradient(to bottom, #337ab7 0%, #265a88 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff265a88', GradientType=0);
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
background-repeat: repeat-x;
border-color: #245580;
}
.btn-primary:hover,
.btn-primary:focus {
background-color: #265a88;
background-position: 0 -15px;
}
.btn-primary:active,
.btn-primary.active {
background-color: #265a88;
border-color: #245580;
}
.btn-primary.disabled,
.btn-primary[disabled],
fieldset[disabled] .btn-primary,
.btn-primary.disabled:hover,
.btn-primary[disabled]:hover,
fieldset[disabled] .btn-primary:hover,
.btn-primary.disabled:focus,
.btn-primary[disabled]:focus,
fieldset[disabled] .btn-primary:focus,
.btn-primary.disabled.focus,
.btn-primary[disabled].focus,
fieldset[disabled] .btn-primary.focus,
.btn-primary.disabled:active,
.btn-primary[disabled]:active,
fieldset[disabled] .btn-primary:active,
.btn-primary.disabled.active,
.btn-primary[disabled].active,
fieldset[disabled] .btn-primary.active {
background-color: #265a88;
background-image: none;
}
.btn-success {
background-image: -webkit-linear-gradient(top, #5cb85c 0%, #419641 100%);
background-image: -o-linear-gradient(top, #5cb85c 0%, #419641 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#5cb85c), to(#419641));
background-image: linear-gradient(to bottom, #5cb85c 0%, #419641 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff419641', GradientType=0);
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
background-repeat: repeat-x;
border-color: #3e8f3e;
}
.btn-success:hover,
.btn-success:focus {
background-color: #419641;
background-position: 0 -15px;
}
.btn-success:active,
.btn-success.active {
background-color: #419641;
border-color: #3e8f3e;
}
.btn-success.disabled,
.btn-success[disabled],
fieldset[disabled] .btn-success,
.btn-success.disabled:hover,
.btn-success[disabled]:hover,
fieldset[disabled] .btn-success:hover,
.btn-success.disabled:focus,
.btn-success[disabled]:focus,
fieldset[disabled] .btn-success:focus,
.btn-success.disabled.focus,
.btn-success[disabled].focus,
fieldset[disabled] .btn-success.focus,
.btn-success.disabled:active,
.btn-success[disabled]:active,
fieldset[disabled] .btn-success:active,
.btn-success.disabled.active,
.btn-success[disabled].active,
fieldset[disabled] .btn-success.active {
background-color: #419641;
background-image: none;
}
.btn-info {
background-image: -webkit-linear-gradient(top, #5bc0de 0%, #2aabd2 100%);
background-image: -o-linear-gradient(top, #5bc0de 0%, #2aabd2 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#5bc0de), to(#2aabd2));
background-image: linear-gradient(to bottom, #5bc0de 0%, #2aabd2 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff2aabd2', GradientType=0);
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
background-repeat: repeat-x;
border-color: #28a4c9;
}
.btn-info:hover,
.btn-info:focus {
background-color: #2aabd2;
background-position: 0 -15px;
}
.btn-info:active,
.btn-info.active {
background-color: #2aabd2;
border-color: #28a4c9;
}
.btn-info.disabled,
.btn-info[disabled],
fieldset[disabled] .btn-info,
.btn-info.disabled:hover,
.btn-info[disabled]:hover,
fieldset[disabled] .btn-info:hover,
.btn-info.disabled:focus,
.btn-info[disabled]:focus,
fieldset[disabled] .btn-info:focus,
.btn-info.disabled.focus,
.btn-info[disabled].focus,
fieldset[disabled] .btn-info.focus,
.btn-info.disabled:active,
.btn-info[disabled]:active,
fieldset[disabled] .btn-info:active,
.btn-info.disabled.active,
.btn-info[disabled].active,
fieldset[disabled] .btn-info.active {
background-color: #2aabd2;
background-image: none;
}
.btn-warning {
background-image: -webkit-linear-gradient(top, #f0ad4e 0%, #eb9316 100%);
background-image: -o-linear-gradient(top, #f0ad4e 0%, #eb9316 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#f0ad4e), to(#eb9316));
background-image: linear-gradient(to bottom, #f0ad4e 0%, #eb9316 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffeb9316', GradientType=0);
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
background-repeat: repeat-x;
border-color: #e38d13;
}
.btn-warning:hover,
.btn-warning:focus {
background-color: #eb9316;
background-position: 0 -15px;
}
.btn-warning:active,
.btn-warning.active {
background-color: #eb9316;
border-color: #e38d13;
}
.btn-warning.disabled,
.btn-warning[disabled],
fieldset[disabled] .btn-warning,
.btn-warning.disabled:hover,
.btn-warning[disabled]:hover,
fieldset[disabled] .btn-warning:hover,
.btn-warning.disabled:focus,
.btn-warning[disabled]:focus,
fieldset[disabled] .btn-warning:focus,
.btn-warning.disabled.focus,
.btn-warning[disabled].focus,
fieldset[disabled] .btn-warning.focus,
.btn-warning.disabled:active,
.btn-warning[disabled]:active,
fieldset[disabled] .btn-warning:active,
.btn-warning.disabled.active,
.btn-warning[disabled].active,
fieldset[disabled] .btn-warning.active {
background-color: #eb9316;
background-image: none;
}
.btn-danger {
background-image: -webkit-linear-gradient(top, #d9534f 0%, #c12e2a 100%);
background-image: -o-linear-gradient(top, #d9534f 0%, #c12e2a 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#d9534f), to(#c12e2a));
background-image: linear-gradient(to bottom, #d9534f 0%, #c12e2a 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc12e2a', GradientType=0);
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
background-repeat: repeat-x;
border-color: #b92c28;
}
.btn-danger:hover,
.btn-danger:focus {
background-color: #c12e2a;
background-position: 0 -15px;
}
.btn-danger:active,
.btn-danger.active {
background-color: #c12e2a;
border-color: #b92c28;
}
.btn-danger.disabled,
.btn-danger[disabled],
fieldset[disabled] .btn-danger,
.btn-danger.disabled:hover,
.btn-danger[disabled]:hover,
fieldset[disabled] .btn-danger:hover,
.btn-danger.disabled:focus,
.btn-danger[disabled]:focus,
fieldset[disabled] .btn-danger:focus,
.btn-danger.disabled.focus,
.btn-danger[disabled].focus,
fieldset[disabled] .btn-danger.focus,
.btn-danger.disabled:active,
.btn-danger[disabled]:active,
fieldset[disabled] .btn-danger:active,
.btn-danger.disabled.active,
.btn-danger[disabled].active,
fieldset[disabled] .btn-danger.active {
background-color: #c12e2a;
background-image: none;
}
.thumbnail,
.img-thumbnail {
-webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .075);
box-shadow: 0 1px 2px rgba(0, 0, 0, .075);
}
.dropdown-menu > li > a:hover,
.dropdown-menu > li > a:focus {
background-color: #e8e8e8;
background-image: -webkit-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);
background-image: -o-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#f5f5f5), to(#e8e8e8));
background-image: linear-gradient(to bottom, #f5f5f5 0%, #e8e8e8 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);
background-repeat: repeat-x;
}
.dropdown-menu > .active > a,
.dropdown-menu > .active > a:hover,
.dropdown-menu > .active > a:focus {
background-color: #2e6da4;
background-image: -webkit-linear-gradient(top, #337ab7 0%, #2e6da4 100%);
background-image: -o-linear-gradient(top, #337ab7 0%, #2e6da4 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#2e6da4));
background-image: linear-gradient(to bottom, #337ab7 0%, #2e6da4 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);
background-repeat: repeat-x;
}
.navbar-default {
background-image: -webkit-linear-gradient(top, #fff 0%, #f8f8f8 100%);
background-image: -o-linear-gradient(top, #fff 0%, #f8f8f8 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#f8f8f8));
background-image: linear-gradient(to bottom, #fff 0%, #f8f8f8 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff8f8f8', GradientType=0);
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
background-repeat: repeat-x;
border-radius: 4px;
-webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 5px rgba(0, 0, 0, .075);
box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 5px rgba(0, 0, 0, .075);
}
.navbar-default .navbar-nav > .open > a,
.navbar-default .navbar-nav > .active > a {
background-image: -webkit-linear-gradient(top, #dbdbdb 0%, #e2e2e2 100%);
background-image: -o-linear-gradient(top, #dbdbdb 0%, #e2e2e2 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#dbdbdb), to(#e2e2e2));
background-image: linear-gradient(to bottom, #dbdbdb 0%, #e2e2e2 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdbdbdb', endColorstr='#ffe2e2e2', GradientType=0);
background-repeat: repeat-x;
-webkit-box-shadow: inset 0 3px 9px rgba(0, 0, 0, .075);
box-shadow: inset 0 3px 9px rgba(0, 0, 0, .075);
}
.navbar-brand,
.navbar-nav > li > a {
text-shadow: 0 1px 0 rgba(255, 255, 255, .25);
}
.navbar-inverse {
background-image: -webkit-linear-gradient(top, #3c3c3c 0%, #222 100%);
background-image: -o-linear-gradient(top, #3c3c3c 0%, #222 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#3c3c3c), to(#222));
background-image: linear-gradient(to bottom, #3c3c3c 0%, #222 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff3c3c3c', endColorstr='#ff222222', GradientType=0);
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
background-repeat: repeat-x;
border-radius: 4px;
}
.navbar-inverse .navbar-nav > .open > a,
.navbar-inverse .navbar-nav > .active > a {
background-image: -webkit-linear-gradient(top, #080808 0%, #0f0f0f 100%);
background-image: -o-linear-gradient(top, #080808 0%, #0f0f0f 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#080808), to(#0f0f0f));
background-image: linear-gradient(to bottom, #080808 0%, #0f0f0f 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff080808', endColorstr='#ff0f0f0f', GradientType=0);
background-repeat: repeat-x;
-webkit-box-shadow: inset 0 3px 9px rgba(0, 0, 0, .25);
box-shadow: inset 0 3px 9px rgba(0, 0, 0, .25);
}
.navbar-inverse .navbar-brand,
.navbar-inverse .navbar-nav > li > a {
text-shadow: 0 -1px 0 rgba(0, 0, 0, .25);
}
.navbar-static-top,
.navbar-fixed-top,
.navbar-fixed-bottom {
border-radius: 0;
}
@media (max-width: 767px) {
.navbar .navbar-nav .open .dropdown-menu > .active > a,
.navbar .navbar-nav .open .dropdown-menu > .active > a:hover,
.navbar .navbar-nav .open .dropdown-menu > .active > a:focus {
color: #fff;
background-image: -webkit-linear-gradient(top, #337ab7 0%, #2e6da4 100%);
background-image: -o-linear-gradient(top, #337ab7 0%, #2e6da4 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#2e6da4));
background-image: linear-gradient(to bottom, #337ab7 0%, #2e6da4 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);
background-repeat: repeat-x;
}
}
.alert {
text-shadow: 0 1px 0 rgba(255, 255, 255, .2);
-webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .25), 0 1px 2px rgba(0, 0, 0, .05);
box-shadow: inset 0 1px 0 rgba(255, 255, 255, .25), 0 1px 2px rgba(0, 0, 0, .05);
}
.alert-success {
background-image: -webkit-linear-gradient(top, #dff0d8 0%, #c8e5bc 100%);
background-image: -o-linear-gradient(top, #dff0d8 0%, #c8e5bc 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#dff0d8), to(#c8e5bc));
background-image: linear-gradient(to bottom, #dff0d8 0%, #c8e5bc 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffc8e5bc', GradientType=0);
background-repeat: repeat-x;
border-color: #b2dba1;
}
.alert-info {
background-image: -webkit-linear-gradient(top, #d9edf7 0%, #b9def0 100%);
background-image: -o-linear-gradient(top, #d9edf7 0%, #b9def0 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#d9edf7), to(#b9def0));
background-image: linear-gradient(to bottom, #d9edf7 0%, #b9def0 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffb9def0', GradientType=0);
background-repeat: repeat-x;
border-color: #9acfea;
}
.alert-warning {
background-image: -webkit-linear-gradient(top, #fcf8e3 0%, #f8efc0 100%);
background-image: -o-linear-gradient(top, #fcf8e3 0%, #f8efc0 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#fcf8e3), to(#f8efc0));
background-image: linear-gradient(to bottom, #fcf8e3 0%, #f8efc0 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fff8efc0', GradientType=0);
background-repeat: repeat-x;
border-color: #f5e79e;
}
.alert-danger {
background-image: -webkit-linear-gradient(top, #f2dede 0%, #e7c3c3 100%);
background-image: -o-linear-gradient(top, #f2dede 0%, #e7c3c3 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#f2dede), to(#e7c3c3));
background-image: linear-gradient(to bottom, #f2dede 0%, #e7c3c3 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffe7c3c3', GradientType=0);
background-repeat: repeat-x;
border-color: #dca7a7;
}
.progress {
background-image: -webkit-linear-gradient(top, #ebebeb 0%, #f5f5f5 100%);
background-image: -o-linear-gradient(top, #ebebeb 0%, #f5f5f5 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#ebebeb), to(#f5f5f5));
background-image: linear-gradient(to bottom, #ebebeb 0%, #f5f5f5 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb', endColorstr='#fff5f5f5', GradientType=0);
background-repeat: repeat-x;
}
.progress-bar {
background-image: -webkit-linear-gradient(top, #337ab7 0%, #286090 100%);
background-image: -o-linear-gradient(top, #337ab7 0%, #286090 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#286090));
background-image: linear-gradient(to bottom, #337ab7 0%, #286090 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff286090', GradientType=0);
background-repeat: repeat-x;
}
.progress-bar-success {
background-image: -webkit-linear-gradient(top, #5cb85c 0%, #449d44 100%);
background-image: -o-linear-gradient(top, #5cb85c 0%, #449d44 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#5cb85c), to(#449d44));
background-image: linear-gradient(to bottom, #5cb85c 0%, #449d44 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff449d44', GradientType=0);
background-repeat: repeat-x;
}
.progress-bar-info {
background-image: -webkit-linear-gradient(top, #5bc0de 0%, #31b0d5 100%);
background-image: -o-linear-gradient(top, #5bc0de 0%, #31b0d5 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#5bc0de), to(#31b0d5));
background-image: linear-gradient(to bottom, #5bc0de 0%, #31b0d5 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff31b0d5', GradientType=0);
background-repeat: repeat-x;
}
.progress-bar-warning {
background-image: -webkit-linear-gradient(top, #f0ad4e 0%, #ec971f 100%);
background-image: -o-linear-gradient(top, #f0ad4e 0%, #ec971f 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#f0ad4e), to(#ec971f));
background-image: linear-gradient(to bottom, #f0ad4e 0%, #ec971f 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffec971f', GradientType=0);
background-repeat: repeat-x;
}
.progress-bar-danger {
background-image: -webkit-linear-gradient(top, #d9534f 0%, #c9302c 100%);
background-image: -o-linear-gradient(top, #d9534f 0%, #c9302c 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#d9534f), to(#c9302c));
background-image: linear-gradient(to bottom, #d9534f 0%, #c9302c 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc9302c', GradientType=0);
background-repeat: repeat-x;
}
.progress-bar-striped {
background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
}
.list-group {
border-radius: 4px;
-webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .075);
box-shadow: 0 1px 2px rgba(0, 0, 0, .075);
}
.list-group-item.active,
.list-group-item.active:hover,
.list-group-item.active:focus {
text-shadow: 0 -1px 0 #286090;
background-image: -webkit-linear-gradient(top, #337ab7 0%, #2b669a 100%);
background-image: -o-linear-gradient(top, #337ab7 0%, #2b669a 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#2b669a));
background-image: linear-gradient(to bottom, #337ab7 0%, #2b669a 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2b669a', GradientType=0);
background-repeat: repeat-x;
border-color: #2b669a;
}
.list-group-item.active .badge,
.list-group-item.active:hover .badge,
.list-group-item.active:focus .badge {
text-shadow: none;
}
.panel {
-webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .05);
box-shadow: 0 1px 2px rgba(0, 0, 0, .05);
}
.panel-default > .panel-heading {
background-image: -webkit-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);
background-image: -o-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#f5f5f5), to(#e8e8e8));
background-image: linear-gradient(to bottom, #f5f5f5 0%, #e8e8e8 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);
background-repeat: repeat-x;
}
.panel-primary > .panel-heading {
background-image: -webkit-linear-gradient(top, #337ab7 0%, #2e6da4 100%);
background-image: -o-linear-gradient(top, #337ab7 0%, #2e6da4 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#2e6da4));
background-image: linear-gradient(to bottom, #337ab7 0%, #2e6da4 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);
background-repeat: repeat-x;
}
.panel-success > .panel-heading {
background-image: -webkit-linear-gradient(top, #dff0d8 0%, #d0e9c6 100%);
background-image: -o-linear-gradient(top, #dff0d8 0%, #d0e9c6 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#dff0d8), to(#d0e9c6));
background-image: linear-gradient(to bottom, #dff0d8 0%, #d0e9c6 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffd0e9c6', GradientType=0);
background-repeat: repeat-x;
}
.panel-info > .panel-heading {
background-image: -webkit-linear-gradient(top, #d9edf7 0%, #c4e3f3 100%);
background-image: -o-linear-gradient(top, #d9edf7 0%, #c4e3f3 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#d9edf7), to(#c4e3f3));
background-image: linear-gradient(to bottom, #d9edf7 0%, #c4e3f3 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffc4e3f3', GradientType=0);
background-repeat: repeat-x;
}
.panel-warning > .panel-heading {
background-image: -webkit-linear-gradient(top, #fcf8e3 0%, #faf2cc 100%);
background-image: -o-linear-gradient(top, #fcf8e3 0%, #faf2cc 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#fcf8e3), to(#faf2cc));
background-image: linear-gradient(to bottom, #fcf8e3 0%, #faf2cc 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fffaf2cc', GradientType=0);
background-repeat: repeat-x;
}
.panel-danger > .panel-heading {
background-image: -webkit-linear-gradient(top, #f2dede 0%, #ebcccc 100%);
background-image: -o-linear-gradient(top, #f2dede 0%, #ebcccc 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#f2dede), to(#ebcccc));
background-image: linear-gradient(to bottom, #f2dede 0%, #ebcccc 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffebcccc', GradientType=0);
background-repeat: repeat-x;
}
.well {
background-image: -webkit-linear-gradient(top, #e8e8e8 0%, #f5f5f5 100%);
background-image: -o-linear-gradient(top, #e8e8e8 0%, #f5f5f5 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#e8e8e8), to(#f5f5f5));
background-image: linear-gradient(to bottom, #e8e8e8 0%, #f5f5f5 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe8e8e8', endColorstr='#fff5f5f5', GradientType=0);
background-repeat: repeat-x;
border-color: #dcdcdc;
-webkit-box-shadow: inset 0 1px 3px rgba(0, 0, 0, .05), 0 1px 0 rgba(255, 255, 255, .1);
box-shadow: inset 0 1px 3px rgba(0, 0, 0, .05), 0 1px 0 rgba(255, 255, 255, .1);
}
/*# sourceMappingURL=bootstrap-theme.css.map */

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

@ -1,16 +0,0 @@
<%--
Created by IntelliJ IDEA.
User: 耿春莹
Date: 2023/4/8
Time: 16:43
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
</body>
</html>

File diff suppressed because one or more lines are too long

@ -0,0 +1,13 @@
require('../../js/transition.js')
require('../../js/alert.js')
require('../../js/button.js')
require('../../js/carousel.js')
require('../../js/collapse.js')
require('../../js/dropdown.js')
require('../../js/modal.js')
require('../../js/tooltip.js')
require('../../js/popover.js')
require('../../js/scrollspy.js')
require('../../js/tab.js')
require('../../js/affix.js')

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

@ -1,4 +0,0 @@
package com.dao;
public class UserTest {
}

@ -1,14 +1,9 @@
driver=com.mysql.jdbc.Driver driver=com.mysql.cj.jdbc.Driver
url=jdbc:mysql://127.0.0.1:3306/sp_emp url=jdbc:mysql://127.0.0.1:3306/sp_emp
username=root username=root
password=root password=123456
#定义初始连接数
initialSize=0 initialSize=0
#定义最大连接数
maxActive=20 maxActive=20
#定义最大空闲
maxIdle=20 maxIdle=20
#定义最小空闲
minIdle=1 minIdle=1
#定义最长等待时间
maxWait=60000 maxWait=60000

@ -1,19 +1,19 @@
#定义LOG输出级别
log4j.rootLogger=INFO,Console,File log4j.rootLogger=INFO,Console,File
#定义日志输出目的地为控制台
log4j.appender.Console=org.apache.log4j.ConsoleAppender log4j.appender.Console=org.apache.log4j.ConsoleAppender
log4j.appender.Console.Target=System.out log4j.appender.Console.Target=System.out
#可以灵活地指定日志输出格式,下面一行是指定具体的格式
log4j.appender.Console.layout = org.apache.log4j.PatternLayout log4j.appender.Console.layout = org.apache.log4j.PatternLayout
log4j.appender.Console.layout.ConversionPattern=[%c] - %m%n log4j.appender.Console.layout.ConversionPattern=[%c] - %m%n
#文件大小到达指定尺寸的时候产生一个新的文件
log4j.appender.File = org.apache.log4j.RollingFileAppender log4j.appender.File = org.apache.log4j.RollingFileAppender
#指定输出目录
log4j.appender.File.File = logs/ssm.log log4j.appender.File.File = logs/ssm.log
#定义文件最大大小
log4j.appender.File.MaxFileSize = 10MB log4j.appender.File.MaxFileSize = 10MB
# 输出所以日志如果换成DEBUG表示输出DEBUG以上级别日志 0В4
log4j.appender.File.Threshold = ALL log4j.appender.File.Threshold = ALL
log4j.appender.File.layout = org.apache.log4j.PatternLayout log4j.appender.File.layout = org.apache.log4j.PatternLayout
log4j.appender.File.layout.ConversionPattern =[%p] [%d{yyyy-MM-dd HH\:mm\:ss}][%c]%m%n log4j.appender.File.layout.ConversionPattern =[%p] [%d{yyyy-MM-dd HH\:mm\:ss}][%c]%m%n
Loading…
Cancel
Save