一、源码:

1、Users.java

package com.login.entity;

import java.io.Serializable;

public class Users implements Serializable {
/**
*
*/
private static final long serialVersionUID = 1L;
private Integer id;
private String username;
private String password; public Users() {
super();
} public Users(Integer id, String username, String password) {
super();
this.id = id;
this.username = username;
this.password = password;
} public Integer getId() {
return id;
} public void setId(Integer id) {
this.id = id;
} public String getUsername() {
return username;
} public void setUsername(String username) {
this.username = username;
} public String getPassword() {
return password;
} public void setPassword(String password) {
this.password = password;
} }

2、UsersController.java

package com.login.controller;

import java.util.HashMap;

import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession; import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping; import com.login.entity.Users;
import com.login.service.UsersService;
import com.login.util.MD5Util; @Controller
@RequestMapping("/")
public class UsersController { protected final Log logger = LogFactory.getLog(getClass()); @Resource
private UsersService usersService; @RequestMapping("main")
public String main() {
return "main";
} @RequestMapping("login")
public String login() { return "login"; /*HashMap<String, Object> users = new HashMap<String, Object>();
users.put("username",username.trim());
users.put("password",MD5Util.string2MD5(password.trim()));
Users one=usersService.getUserByUsernameAndPassword(users);
HttpSession session = request.getSession();
session.setAttribute("one",one);
if(one==null){
model.addAttribute("error","用户名或密码错误!");
return "login";
}else{
return "redirect:/main";
}*/
} @RequestMapping("adminis")
public String adminis(@Param("username") String username,@Param("password") String password,HttpServletRequest request,Model model) {
HttpSession session = request.getSession();
session.setAttribute("username",username);
session.setAttribute("password",password);
if(username==null||username==""){
model.addAttribute("error","用户名不能为空!");
return "login";
}else if(password==null||password==""){
model.addAttribute("error","密码不能为空!");
return "logins";
}
HashMap<String, Object> users = new HashMap<String, Object>();
users.put("username",username.trim());
users.put("password",MD5Util.string2MD5(password.trim()));
Users user=usersService.getUserByUsernameAndPassword(users); session.setAttribute("user",user);
if(user==null){
model.addAttribute("error","用户名或密码错误!");
return "logins";
}else{
return "redirect:/admin";
}
} @RequestMapping("admin")
public String admin() {
return "main";
} @RequestMapping("logout")
public String logout(HttpServletRequest request) {
request.getSession().removeAttribute("user");
request.getSession().invalidate();
return "login";
} }

3、UsersService.java

package com.login.service;

import java.util.ArrayList;
import java.util.Map; import com.login.entity.Users; public interface UsersService { /**
* 添加用户信息
* @param param
*/
public void insertUsers(Map<String, Object> param); /**
* 删除用户信息
* @param id
*/
public void deleteUsers(int id); /**
* 修改用户信息
* @param param
*/
public void updateUsers(Map<String, Object> param); /**
* 查询用户信息(后台)
* @return List<Users>
*/
public ArrayList<Users> searchUsers(); /**
* 根据用户名称查询用户信息(后台)
* @return List<Users>
*/
public ArrayList<Users> searchUsersByUsername(String username); /**
* 根据编号查询用户信息
* @param id
* @return Users
*/
public Users searchUsersById(int id); /**
* 根据用户名和密码查询用户是否存在
* @param param
* @return Users
*/
public Users getUserByUsernameAndPassword(Map<String, Object> param);
}

4、UsersServiceImpl.java

package com.login.service.impl;

import java.util.ArrayList;
import java.util.Map; import javax.annotation.Resource; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import com.login.entity.Users;
import com.login.mapper.UsersMapper;
import com.login.service.UsersService; @Service
@Transactional
// @Transactional表示该类被Spring作为管理事务的类
public class UsersServiceImpl implements UsersService { @Resource
private UsersMapper usersMapper; /**
* 添加用户信息
*
* @param param
*/
@Override
public void insertUsers(Map<String, Object> param) {
usersMapper.insertUsers(param);
} /**
* 删除用户信息
*
* @param id
*/
@Override
public void deleteUsers(int id) {
usersMapper.deleteUsers(id);
} /**
* 修改用户信息
*
* @param param
*/
@Override
public void updateUsers(Map<String, Object> param) {
usersMapper.updateUsers(param);
} /**
* 查询用户信息(后台)
*
* @return List<Users>
*/
@Override
public ArrayList<Users> searchUsers() {
return usersMapper.searchUsers();
} /**
* 根据用户名称查询用户信息(后台)
*
* @return List<Users>
*/
@Override
public ArrayList<Users> searchUsersByUsername(String username) {
return usersMapper.searchUsersByUsername(username);
} /**
* 根据编号查询用户信息
*
* @param id
* @return Users
*/
@Override
public Users searchUsersById(int id) {
return usersMapper.searchUsersById(id);
} /**
* 根据用户名和密码查询用户是否存在
*
* @param param
* @return Users
*/
public Users getUserByUsernameAndPassword(Map<String, Object> param) {
return usersMapper.getUserByUsernameAndPassword(param);
}
}

5、UsersMapper.java

package com.login.mapper;

import java.util.ArrayList;
import java.util.Map; import com.login.entity.Users; public interface UsersMapper { /**
* 添加用户信息
*
* @param param
*/
public void insertUsers(Map<String, Object> param); /**
* 删除用户信息
*
* @param id
*/
public void deleteUsers(int id); /**
* 修改用户信息
*
* @param param
*/
public void updateUsers(Map<String, Object> param); /**
* 查询用户信息(后台)
*
* @return ArrayList<Users>
*/
public ArrayList<Users> searchUsers(); /**
* 根据用户名称查询用户信息(后台)
*
* @return ArrayList<Users>
*/
public ArrayList<Users> searchUsersByUsername(String username); /**
* 根据编号查询用户信息
*
* @param id
* @return Users
*/
public Users searchUsersById(int id); /**
* 根据用户名和密码查询用户是否存在
*
* @param param
* @return Users
*/
public Users getUserByUsernameAndPassword(Map<String, Object> param); }

6、UsersMapper.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.login.mapper.UsersMapper"> <insert id="insertUsers" parameterType="java.util.Map">
INSERT INTO tbl_Users ([username],[password]) VALUES (#{username},#{password})
<selectKey keyProperty="id" resultType="int" order="AFTER">
select @@identity
</selectKey>
</insert> <select id="deleteUsers" parameterType="java.lang.Integer">
delete from tbl_Users where id = #{id}
</select> <update id="updateUsers" parameterType="com.login.entity.Users" statementType="PREPARED">
update tbl_Users
<set>
<if test="username != null">username = #{username},</if>
<if test="password != null">password = #{password},</if>
</set>
where id = #{id}
</update> <select id="searchUsers" parameterType="java.util.Map" resultType="com.login.entity.Users">
select * from tbl_Users
</select> <select id="searchUsersByUsername" parameterType="java.lang.String" resultType="com.login.entity.Users">
select * from tbl_Users where username like '%${_parameter}%'
</select> <select id="searchUsersById" parameterType="java.lang.Integer" resultType="com.login.entity.Users">
select * from tbl_Users where id = #{id}
</select> <select id="getUserByUsernameAndPassword" parameterType="java.util.Map" resultType="com.login.entity.Users">
select * from tbl_Users where username=#{username} and password=#{password}
</select>
</mapper>

7、jdbc.properties

jdbc_driver=com.microsoft.sqlserver.jdbc.SQLServerDriver
jdbc_url=jdbc:sqlserver://127.0.0.1:1433;DatabaseName=policestation
jdbc_username=sa
jdbc_password=systemadmin

7、applicationContext.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd"> <!-- 引入jdbc配置文件 -->
<context:property-placeholder location="config/jdbc.properties" /> <!--配制数据源-->
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="${jdbc_driver}"></property>
<property name="url" value="${jdbc_url}"></property>
<property name="username" value="${jdbc_username}"></property>
<property name="password" value="${jdbc_password}"></property>
</bean> <!-- 创建sqlSessionFactory,同时指定数据源 -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource"></property>
<property name="configLocation" value="/WEB-INF/mybatis-config.xml"/>
<!-- 自动扫描mapper目录, 省掉mybatis-config.xml里的手工配置 -->
<property name="mapperLocations">
<list>
<value>classpath:com/login/mapper/*.xml</value>
</list>
</property>
</bean> <!-- 通过扫描的模式,扫描目录在com/login/mapper目录下 -->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="com.login.mapper" />
<property name="sqlSessionFactoryBeanName" value="sqlSessionFactory" />
</bean> <!-- (事务管理)-->
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource"></property>
</bean>
<!-- 使用annotation定义数据库事务,这样可以在类或方法中直接使用@Transactional注解来声明事务 -->
<tx:annotation-driven transaction-manager="transactionManager" /> <tx:advice id="txAdvice" transaction-manager="transactionManager">
<tx:attributes>
<tx:method name="insert*" propagation="REQUIRED" />
<tx:method name="delete*" propagation="REQUIRED" />
<tx:method name="update*" propagation="REQUIRED" />
<tx:method name="approve" propagation="REQUIRED" />
<tx:method name="undo" propagation="REQUIRED" />
<tx:method name="load*" propagation="SUPPORTS" read-only="true" />
<tx:method name="get*" propagation="SUPPORTS" read-only="true" />
<tx:method name="search*" propagation="SUPPORTS" read-only="true" />
<tx:method name="*" propagation="SUPPORTS" read-only="true" />
</tx:attributes>
</tx:advice> <aop:config>
<aop:pointcut id="serviceMethod" expression="execution(* com.login.service.*.*(..))" />
<aop:advisor advice-ref="txAdvice" pointcut-ref="serviceMethod" />
</aop:config> <!-- 自动搜索注解路径-->
<context:component-scan base-package="com.login"></context:component-scan>
</beans>

8、mybatis-config.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration> <!--整合Spring的时候 只有 settings typeAliases mapper 三个属性有用, 其余的要在spring总配置文件中会覆盖 -->
<settings>
<!-- 全局映射器,是否启用缓存 -->
<setting name="cacheEnabled" value="false" />
<!-- 查询时,关闭关联对象即时加载以提高性能 -->
<!-- 设置关联对象加载的形态,此处为按需加载字段(加载字段由SQL指 定),不会加载关联表的所有字段,以提高性能 -->
<setting name="aggressiveLazyLoading" value="false" />
<!-- 对于未知的SQL查询,允许返回不同的结果集以达到通用的效果 -->
<setting name="multipleResultSetsEnabled" value="true" />
<!-- 允许使用列标签代替列名 -->
<setting name="useColumnLabel" value="true" />
<!-- 允许使用自定义的主键值(比如由程序生成的UUID 32位编码作为键值),数据表的PK生成策略将被覆盖 -->
<setting name="useGeneratedKeys" value="true" />
<!-- 给予被嵌套的resultMap以字段-属性的映射支持 -->
<setting name="autoMappingBehavior" value="FULL" />
<!-- 对于批量更新操作缓存SQL以提高性能 -->
<setting name="defaultExecutorType" value="BATCH" />
<!-- 数据库超过25000秒仍未响应则超时 -->
<setting name="defaultStatementTimeout" value="25000" />
</settings> </configuration>

9、spring-servlet.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans
xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-4.0.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd"> <!-- 自动扫描的包名 -->
<context:component-scan base-package="com.login.controller"/> <!-- 默认的注解映射的支持 -->
<mvc:annotation-driven /> <!-- 静态资源映射 -->
<mvc:resources mapping="/css/**" location="/WEB-INF/view/css/" cache-period="31556926"/>
<mvc:resources mapping="/images/**" location="/WEB-INF/view/images/" cache-period="31556926"/>
<mvc:resources mapping="/img/**" location="/WEB-INF/view/img/" cache-period="31556926"/>
<mvc:resources mapping="/js/**" location="/WEB-INF/view/js/" cache-period="31556926"/>
<mvc:resources mapping="/m_css/**" location="/WEB-INF/view/manager/css/" cache-period="31556926"/>
<mvc:resources mapping="/m_images/**" location="/WEB-INF/view/manager/images/" cache-period="31556926"/>
<mvc:resources mapping="/datePicker/**" location="/WEB-INF/view/manager/My97DatePicker/" cache-period="31556926"/>
<mvc:resources mapping="/dtree/**" location="/WEB-INF/view/dtree/" cache-period="31556926"/>
<mvc:resources mapping="/ztree/**" location="/WEB-INF/view/zTree_v3/" cache-period="31556926"/>
<mvc:resources mapping="/FCKeditor/**" location="/FCKeditor/" cache-period="31556926"/>
<mvc:resources mapping="/UserFiles/**" location="/UserFiles/" cache-period="31556926"/>
<mvc:resources mapping="/upload/**" location="/upload/" cache-period="31556926"/>
<mvc:resources mapping="/uploadFriendly/**" location="/uploadFriendly/" cache-period="31556926"/>
<mvc:resources mapping="/uploadAdvert/**" location="/uploadAdvert/" cache-period="31556926"/>
<mvc:resources mapping="/uploadNotice/**" location="/uploadNotice/" cache-period="31556926"/>
<mvc:resources mapping="/tool/**" location="/tool/" cache-period="31556926"/>
<mvc:resources mapping="/loginImg/**" location="/WEB-INF/view/manager/login/images/" cache-period="31556926"/> <!-- 对模型视图添加前后缀 -->
<bean id="viewResolver" class="org.springframework.web.servlet.view.UrlBasedViewResolver">
<property name="viewClass" value="org.springframework.web.servlet.view.JstlView" />
<property name="prefix" value="/" />
<property name="suffix" value=".jsp" />
</bean> <!-- file upload -->
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="maxUploadSize" value="-1" /><!-- 字节单位 -->
<property name="maxInMemorySize" value="2048" /><!-- 2M -->
<property name="defaultEncoding" value="UTF-8" />
</bean> </beans>

10、web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
<display-name>错误跳转页面</display-name>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<display-name>session销毁时间(分钟)</display-name>
<session-config>
<session-timeout>30</session-timeout>
</session-config>
<listener>
<listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
</listener>
<servlet>
<servlet-name>spring</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<servlet-mapping>
<servlet-name>spring</servlet-name>
<url-pattern>*.html</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>spring</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<display-name>Spring字符集过滤器</display-name>
<filter>
<filter-name>encoding</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encoding</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>

11、index.jsp

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>"> <title>My JSP 'index.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head> <body>
This is my JSP page. <br>
<a href="login.html">管理登录</a>
</body>
</html>

12、login.jsp

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ page import="com.login.entity.Users"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>用户登录</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<style>
body{margin:0; padding:0; font-size:9pt;}
#login{margin:auto; width:975px; height:368px; margin-top:120px;}
#top_left{width:691px; height:89px; float:left;}
#top_left img {margin-left:33px;}
#top_center{width:248px; height:89px; background:url(loginImg/login_05.gif); float:left;} #center_left{width:691px; height:190px; background:url(loginImg/login_09.jpg); float:left;}
#center_middle{width:248px; height:190px; float:left; background:url(loginImg/login_13.gif) repeat-y;}
#center_right{width:36px; height:190px; float:right; background:url(loginImg/login_11.gif);} #down_left{width:691px; height:89px; float:left; margin-top:15px;}
#down_center{width:248px; height:89px; background:url(loginImg/login_16.gif); float:left;}
#inf{width:691px; height:38px; background:url(loginImg/login_18.gif) no-repeat; }
.inf_text{display:block; width:100px; height:20px; font-size:16px; font-weight:bolder; color:#fff; margin-left:17px; margin-top:12px; float:left;}
.copyright{display:block; float:left; margin-left:17px; margin-top:15px;} #message{text-align:center;color:red;}
#user{ margin-left:40px; margin-top:15px;}
#password{margin-left:40px; margin-top:25px; height:25px;}
input{width:120px; height:18px; border:solid 1px #aca7a7; font-size:9pt;}
#btn{margin-left:30px; margin-top:40px;height:25px; margin-right:28px; text-align:center;}
#btn a{display:block; line-height:25px; background: url(loginImg/bt_bg.gif); border: solid 1px #b6b6b6; width:65px; float:left; margin-left:15px; text-decoration:none; color:#000;}
#btn input{display:block;height:25px; line-height:22px; background: url(loginImg/bt_bg.gif); border: solid 1px #b6b6b6; width:65px; float:left; margin-left:2px; text-decoration:none; color:#000;}
</style>
<script type="text/javascript">
function show(){
if(document.getElementById("name").value==""){
document.getElementById("showname").innerHTML="用户名不能为空!";
document.getElementById("name").focus();
return false;
}else if(document.getElementById("pwd").value==""){
document.getElementById("showname").innerHTML="密码不能为空!";
document.getElementById("pwd").focus();
return false;
}else{
return true;
}
</script>
</head>
<body>
<form action="adminis.html" method="post" name="myform">
<div id="login">
<div id="top">
<div id="top_left"><img src="loginImg/login_03.gif"/></div>
<div id="top_center"></div>
</div>
<div id="center">
<div id="center_left"></div>
<div id="center_middle">
<div id="message">${error}<span id="showname" style="display:inline;"></span></div>
<div id="user">用  户:<input type="text" name="username" onblur="show()" id="name"/></div>
<div id="password">密  码:<input type="password" name="password" onblur="show()" id="pwd"/></div>
<div id="btn"><a href="javascript:document.myform.submit();">登  录</a><a href="javascript:document.myform.reset();">清  空</a></div>
</div>
<div id="center_right"></div>
</div>
<div id="down">
<div id="down_left">
<div id="inf"><span class="inf_text">版本信息</span><span class="copyright">信息管理系统 2015 v1.0</span><span class="copyright" style="color:red;">请在IE10以下版本中使用后台功能</span></div>
</div>
<div id="down_center"></div>
</div>
</div>
</form>
</body>
</html>

13、logins.jsp

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ page import="com.login.entity.Users"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>用户登录</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<style>
body{margin:0; padding:0; font-size:9pt;}
#login{margin:auto; width:975px; height:368px; margin-top:120px;}
#top_left{width:691px; height:89px; float:left;}
#top_left img {margin-left:33px;}
#top_center{width:248px; height:89px; background:url(loginImg/login_05.gif); float:left;} #center_left{width:691px; height:190px; background:url(loginImg/login_09.jpg); float:left;}
#center_middle{width:248px; height:190px; float:left; background:url(loginImg/login_13.gif) repeat-y;}
#center_right{width:36px; height:190px; float:right; background:url(loginImg/login_11.gif);} #down_left{width:691px; height:89px; float:left; margin-top:15px;}
#down_center{width:248px; height:89px; background:url(loginImg/login_16.gif); float:left;}
#inf{width:691px; height:38px; background:url(loginImg/login_18.gif) no-repeat; }
.inf_text{display:block; width:100px; height:20px; font-size:16px; font-weight:bolder; color:#fff; margin-left:17px; margin-top:12px; float:left;}
.copyright{display:block; float:left; margin-left:17px; margin-top:15px;} #message{text-align:center;color:red;}
#user{ margin-left:40px; margin-top:15px;}
#password{margin-left:40px; margin-top:25px; height:25px;}
input{width:120px; height:18px; border:solid 1px #aca7a7; font-size:9pt;}
#btn{margin-left:30px; margin-top:40px;height:25px; margin-right:28px; text-align:center;}
#btn a{display:block; line-height:25px; background: url(loginImg/bt_bg.gif); border: solid 1px #b6b6b6; width:65px; float:left; margin-left:15px; text-decoration:none; color:#000;}
#btn input{display:block;height:25px; line-height:22px; background: url(loginImg/bt_bg.gif); border: solid 1px #b6b6b6; width:65px; float:left; margin-left:2px; text-decoration:none; color:#000;}
</style>
<script type="text/javascript">
function show(){
if(document.getElementById("name").value==""){
document.getElementById("showname").innerHTML="用户名不能为空!";
document.getElementById("name").focus();
return false;
}else if(document.getElementById("pwd").value==""){
document.getElementById("showname").innerHTML="密码不能为空!";
document.getElementById("pwd").focus();
return false;
}else{
return true;
} </script>
</head>
<body>
<form action="adminis.html" method="post" name="myform">
<div id="login">
<div id="top">
<div id="top_left"><img src="loginImg/login_03.gif"/></div>
<div id="top_center"></div>
</div>
<div id="center">
<div id="center_left"></div>
<div id="center_middle">
<div id="message">${error}<span id="showname" style="display:inline;"></span></div>
<div id="user">用  户:<input type="text" name="username" value="<%=(String)session.getAttribute("username") %>" onblur="show()" id="name"/></div>
<div id="password">密  码:<input type="password" name="password" value="<%=(String)session.getAttribute("password") %>" onblur="show()" id="pwd"/></div>
<div id="btn"><a href="javascript:document.myform.submit();">登  录</a><a href="login.html">清  空</a></div>
</div>
<div id="center_right"></div>
</div>
<div id="down">
<div id="down_left">
<div id="inf"><span class="inf_text">版本信息</span><span class="copyright">信息管理系统 2015 v1.0</span><span class="copyright" style="color:red;">请在IE10以下版本中使用后台功能</span></div>
</div>
<div id="down_center"></div>
</div>
</div>
</form>
</body>
</html>

14、main.jsp

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ page import="com.login.entity.Users"%> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<%
Users user=(Users)session.getAttribute("user");
%>
<head> <title>My JSP 'index.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head> <body>
This is my JSP page. <br>
欢迎您<%=user.getUsername() %>
</body>
</html>

二、lib下项目支持的驱动包(以下是需要的jar包,文件太大,无法上传请看图片,按照下面的版本下载就可以。)

三、需要的数据库文件可自行设计建库。

springmvc+mybatis+sql server实现简单登录功能的更多相关文章

  1. 使用ssm(spring+springMVC+mybatis)创建一个简单的查询实例(二)(代码篇)

    这篇是上一篇的延续: 用ssm(spring+springMVC+mybatis)创建一个简单的查询实例(一) 源代码在github上可以下载,地址:https://github.com/guoxia ...

  2. 使用ssm(spring+springMVC+mybatis)创建一个简单的查询实例(一)

    梳理下使用spring+springMVC+mybatis 整合后的一个简单实例:输入用户的 ID,之后显示用户的信息(此次由于篇幅问题,会分几次进行说明,此次是工程的创建,逆向生成文件以及这个简单查 ...

  3. [转][MSSQL]SQL Server 2008 记住密码功能

    本文转自:http://zhidao.baidu.com/link?url=V_laNOvutMin0kU3DUaMhLSFAYfgtz2IoEAjh8grNVPOZLpd8Pudb4iqZl88Tn ...

  4. SQL Server里简单参数化的痛苦

    在今天的文章里,我想谈下对于即席SQL语句(ad-hoc SQL statements),SQL Server使用的简单参数化(Simple Parameterization)的一些特性和副作用.首先 ...

  5. Python和SQL Server 2017的强大功能

    Python和SQL Server 2017的强大功能 摘要: 源:https://www.red-gate.com/simple-talk/sql/sql-development/power-pyt ...

  6. 使用ssm(spring+springMVC+mybatis)创建一个简单的查询实例(三)(错误整理篇)

    使用ssm(spring+springMVC+mybatis)创建一个简单的查询实例(一) 使用ssm(spring+springMVC+mybatis)创建一个简单的查询实例(二) 以上两篇已经把流 ...

  7. 第三篇——第二部分——第一文 SQL Server镜像简单介绍

    版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/DBA_Huangzj/article/details/26951563 原文出处:http://bl ...

  8. SQL server 如何修改登录名和密码

    No :1 启动SQL Server Management Studio,用windows登录进入: No :2 在左侧对象资源处理器中找到根节点,也就是你安装sqlserver时注册的服务器名称.然 ...

  9. c#直接调用ssis包实现Sql Server的数据导入功能

    调用ssis包实现Sql Server的数据导入功能网上已经有很多人讨论过,自己参考后也动手实现了一下,上一次笔者的项目中还用了一下这个功能.思前想后,决定还是贴一下增强记忆,高手请54. 1.直接调 ...

随机推荐

  1. IDEA使用maven创建SSM及其依赖的导入

    $.说明: 1.IDEA创建maven SSM web项目 2.导入依赖 一.IDEA创建maven SSM项目 对于初入IDEA的人来说此篇博客适用于不会创建maven 项目的人 首先下载IDEA  ...

  2. UWP&WP8.1图片照片添加水印

    水印可以自己自己制作,也可以用代码写. 我这里主要写如何添加到照片上面. UWP和WP8.1添加的方法一样.代码是通用的. UWP和WP8.1没有像WPF和WINFROM中darw这样简便的API可以 ...

  3. [CentOS7] 设置语言环境

    博主想要将英文环境(en_US.UTF-8)改为中文环境(zh_CN.UTF-8),有两种解决方法 一.临时解决方法 使用LANG=“zh_CN.UTF-8”,这个命令来实现,不过在重新登录的时候又会 ...

  4. UINavigationController + UIScrollView组合,视图尺寸的设置探秘(二)

    承接上文,我想把view布局修改为如下模式,让ScrollView长在NavigationBar的下方,这总不会有遮挡的问题了吧: story board内容如下,主要是右侧视图蓝色区域添加了Scro ...

  5. 659. Split Array into Consecutive Subsequences

    You are given an integer array sorted in ascending order (may contain duplicates), you need to split ...

  6. 洛谷P3413 SAC#1 - 萌数(数位dp)

    题目描述 辣鸡蒟蒻SOL是一个傻逼,他居然觉得数很萌! 好在在他眼里,并不是所有数都是萌的.只有满足“存在长度至少为2的回文子串”的数是萌的——也就是说,101是萌的,因为101本身就是一个回文数:1 ...

  7. 直播点赞,上升的动画-- CAKeyFrameAnimation

    // //  ViewController.m //  DMHeartFlyAnimation // //  Created by Rick on 16/3/9. //  Copyright © 20 ...

  8. LUNA16数据集的百度云链接

    可能需要会员链接:https://pan.baidu.com/s/1KTjoGKfLB_1Y-BQzerhGgg 提取码:g901

  9. node.js 服务器

    http-server 是一个简单的零配置命令行HTTP服务器, 基于 nodeJs. 如果你不想重复的写 nodeJs 的 web-server.js, 则可以使用这个. 安装 (全局安装加 -g) ...

  10. C#工具类之日期扩展类

    /// <summary> /// DateTimeHelper /// </summary> public static class DateTimeHelper { /// ...