Spring+SpringMVC+Hiberate+MySql+Bootstrap实现一个简单验证登录实例

来源:互联网 发布:jquery数组清空 编辑:程序博客网 时间:2024/06/08 18:21

本例子结合Spring+SpringMVC+Hiberate+MySql+Bootstrap实现一个简单验证登录实例

1工程目录:

web.xml配置文件:

<?xml version="1.0" encoding="UTF-8"?><web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">  <display-name>Login</display-name>  <welcome-file-list>    <welcome-file>index.jsp</welcome-file>  </welcome-file-list>      <!-- 加载所有的配置文件 -->  <context-param>  <param-name>contextConfigLocation</param-name>  <param-value>classpath*:config/spring/spring-*.xml</param-value>  </context-param>    <!-- 配置Spring监听 -->  <listener>  <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>  </listener>    <!-- 配置SpringMVC -->  <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*:config/spring/spring-mvc.xml</param-value>  </init-param>  <load-on-startup>1</load-on-startup>  </servlet>  <servlet-mapping>  <servlet-name>SpringMVC</servlet-name>  <url-pattern>/</url-pattern>  </servlet-mapping>         <!-- 配置字符集 -->  <filter>  <filter-name>encodingFilter</filter-name>  <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>  <init-param>  <param-name>encoding</param-name>  <param-value>UTF-8</param-value>  </init-param>  <init-param>  <param-name>forceEncoding</param-name>  <param-value>true</param-value>  </init-param>  </filter>  <filter-mapping>  <filter-name>encodingFilter</filter-name>  <url-pattern>/*</url-pattern>  </filter-mapping>      <!-- 配置Session -->  <filter>  <filter-name>openSession</filter-name>  <filter-class>org.springframework.orm.hibernate4.support.OpenSessionInViewFilter</filter-class>  </filter>  <filter-mapping>  <filter-name>openSession</filter-name>  <url-pattern>/*</url-pattern>  </filter-mapping>    </web-app>

spring-mvc.xml配置文件:

<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:context="http://www.springframework.org/schema/context"xmlns:mvc="http://www.springframework.org/schema/mvc"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context-3.2.xsdhttp://www.springframework.org/schema/mvchttp://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd"><!-- 注解扫描包 --><context:component-scan base-package="com.web" /><!-- 开启注解 --><mvc:annotation-driven /><!-- 静态资源(js/image)的访问 --><mvc:resources location="/js/" mapping="/js/**"/><!-- 定义视图解析器 --><bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"><property name="prefix" value="/"></property><property name="suffix" value=".jsp"></property></bean></beans>

spring-beans.xml配置文件:

<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:context="http://www.springframework.org/schema/context"xmlns:mvc="http://www.springframework.org/schema/mvc"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"><!-- 依赖注入 --><bean id="userDao" class="com.dao.UserDaoimpl"><property name="sessionFactory" ref="sessionFactory"></property></bean><bean id="userManagerBase" class="com.manager.ManagerImpl"><property name="userDao" ref="userDao"></property></bean><bean name="manager" parent="transactionProxy"><property name="target" ref="userManagerBase"></property></bean></beans>

spring-common.xml配置文件:

<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:context="http://www.springframework.org/schema/context"xmlns:mvc="http://www.springframework.org/schema/mvc"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"><!-- 配置数据源 --><bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource" ><property name="driverClassName" value="com.mysql.jdbc.Driver"></property><property name="url" value="jdbc:mysql://localhost/test"></property><property name="username" value="root"></property><property name="password" value="1996112lin"></property></bean><bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean"><property name="dataSource" ref="dataSource" /><property name="hibernateProperties"><props><prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop><prop key="hibernate.hbm2ddl.auto">update</prop><prop key="hibernate.show_sql">true</prop><prop key="hibernate.format_sql">true</prop></props></property><property name="annotatedClasses"><list><value>com.eneity.User</value></list></property></bean><bean id="transactionManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager"><property name="sessionFactory" ref="sessionFactory"/></bean><!-- 配置事务,使用代理的方式 --><bean id="transactionProxy" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean" abstract="true">      <property name="transactionManager" ref="transactionManager"></property>      <property name="transactionAttributes">          <props>              <prop key="add*">PROPAGATION_REQUIRED,-Exception</prop>              <prop key="modify*">PROPAGATION_REQUIRED,-myException</prop>              <prop key="del*">PROPAGATION_REQUIRED</prop>              <prop key="*">PROPAGATION_REQUIRED</prop>          </props>      </property>  </bean> </beans>

采用注解实现实体类文件User.java:

import javax.persistence.Column;import javax.persistence.Entity;import javax.persistence.GeneratedValue;import javax.persistence.Id;import javax.persistence.Table;import org.hibernate.annotations.GenericGenerator;@Entity@Table(name="myuser")public class User {@Id@GeneratedValue(generator="system-uuid")@GenericGenerator(name = "system-uuid",strategy="uuid")@Column(length=32)private String id;@Column(length=32)private String name;@Column(length=32)private String password;public String getId() {return id;}public void setId(String id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}}

实体类操作接口UseDao.java:

public interface UserDao {public String check(String name,String password);}

具体实现类UserDaoimpl.java:

import java.util.List;import javax.management.Query;import org.hibernate.Session;import org.hibernate.SessionFactory;public class UserDaoimpl implements UserDao{private SessionFactory sessionFactory;public void setSessionFactory(SessionFactory sessionFactory) {this.sessionFactory = sessionFactory;}@Overridepublic String check(String name, String password) {String hql = "select user.name ,user.password from User as user where user.name='"+name+"' and user.password ='"+password+"'";org.hibernate.Query query = sessionFactory.getCurrentSession().createQuery(hql);List list = query.list();  if (list.size() > 0) {return "ok";}return "no";}}

管理接口Manager.java:

public interface Manager {public String check(String name,String password); }

管理实现类ManagerImpl.java:

import com.dao.UserDao;public class ManagerImpl implements Manager{private UserDao userDao;public void setUserDao(UserDao userDao) {this.userDao = userDao;}public String check(String name,String password) {return userDao.check(name, password);}}

控制类Controler.java:

import javax.annotation.Resource;import javax.enterprise.inject.Model;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import com.dao.UserDao;import com.eneity.User;import com.manager.Manager;@Controller@RequestMapping("/login")public class Controler {@Resourceprivate Manager manager;public void setManager(Manager manager) {this.manager = manager;}@RequestMapping("/check")public String check(User user,org.springframework.ui.Model model) {String string = manager.check(user.getName(), user.getPassword());if (string.equals("ok")) {model.addAttribute("name",user.getName());return "/ok";}return "/no";}}

登录主页面index.jsp(加入了BootStrap实现效果):

<%@ 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%>">        <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"> <title>用户登录</title>        <link rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css" />        <link rel="stylesheet" href="css/style.css" />        <script src="http://cdn.static.runoob.com/libs/bootstrap/3.3.7/js/bootstrap.min.js"></script>        <script src="http://cdn.static.runoob.com/libs/jquery/2.1.1/jquery.min.js"></script>        <style type="text/css">                 body {    background:url(../img/login_bg_0.jpg) #f8f6e9;}.mycenter{    margin-top: 100px;    margin-left: auto;    margin-right: auto;    height: 350px;    width:500px;    padding: 5%;    padding-left: 5%;    padding-right: 5%;}.mycenter mysign{    width: 440px;}.mycenter input,checkbox,button{    margin-top:2%;    margin-left: 10%;    margin-right: 10%;}.mycheckbox{    margin-top:10px;    margin-left: 40px;    margin-bottom: 10px;    height: 10px;}        </style>   </head>    <body>          <form action="/MyLogin/login/check" method="post">            <div class="mycenter">            <div class="mysign">                <div class="col-lg-11 text-center text-info">                    <h2>请登录</h2>                </div>                <div class="col-lg-10">                    <input type="text" class="form-control" name="name" placeholder="请输入账户名" required autofocus/>                </div>                <div class="col-lg-10"></div>                <div class="col-lg-10">                    <input type="password" class="form-control" name="password" placeholder="请输入密码" required autofocus/>                </div>                <div class="col-lg-10"></div>                <div class="col-lg-10 mycheckbox checkbox">                    <input type="checkbox" class="col-lg-1">记住密码</input>                </div>                <div class="col-lg-10"></div>                <div class="col-lg-10">                    <button type="submit" class="btn btn-success col-lg-12">登录</button>                </div>            </div>        </div>        </form>                </form>  </body></html>

ok.jsp和no.jsp就不给出了,最终实现效果:

0 0
原创粉丝点击