Hibernate集成实战详解

需求:
百度百度百度目录结构:
百度百度百度百度
设计表:
百度百度百度百度依赖:

<!-- junit 测试用, -->
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<version>4.0</version>
			<scope>test</scope>
		</dependency>

		<!-- hibernate -->
		<dependency>
			<groupId>org.hibernate</groupId>
			<artifactId>hibernate-core</artifactId>
			<version>3.3.2.GA</version>
		</dependency>

		<dependency>
			<groupId>org.slf4j</groupId>
			<artifactId>slf4j-api</artifactId>
			<version>1.7.26</version>
		</dependency>

		<!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-log4j12 -->
		<dependency>
			<groupId>org.slf4j</groupId>
			<artifactId>slf4j-log4j12</artifactId>
			<version>1.7.26</version>
			<scope>test</scope>
		</dependency>


		<!-- springmvc -->
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-webmvc</artifactId>
			<version>${spring-version}</version>
		</dependency>

		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-web</artifactId>
			<version>${spring-version}</version>
		</dependency>

		<!--spring -->
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-context</artifactId>
			<version>${spring-version}</version>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-core</artifactId>
			<version>${spring-version}</version>
		</dependency>

		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-beans</artifactId>
			<version>${spring-version}</version>
		</dependency>

		<!-- https://mvnrepository.com/artifact/org.springframework/spring-aop -->
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-aop</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-hibernate</artifactId>
			<version>1.2.9</version>
		</dependency>

		<!-- jdbc -->
		<!-- https://mvnrepository.com/artifact/org.springframework/spring-jdbc -->
		<!-- https://mvnrepository.com/artifact/org.springframework/spring-jdbc -->
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-jdbc</artifactId>
			<version>${spring-version}</version>
		</dependency>

		<dependency>
			<groupId>com.oracle</groupId>
			<artifactId>jdbc</artifactId>
			<version>11.2.0.1.0</version>
		</dependency>

		<!-- https://mvnrepository.com/artifact/commons-dbcp/commons-dbcp -->
		<dependency>
			<groupId>commons-dbcp</groupId>
			<artifactId>commons-dbcp</artifactId>
			<version>1.4</version>
		</dependency>


		<!-- serlvet -->
		<dependency>
			<groupId>javax.servlet</groupId>
			<artifactId>javax.servlet-api</artifactId>
			<version>3.1.0</version>
			<scope>provided</scope>
		</dependency>

		<dependency>
			<groupId>javax.servlet</groupId>
			<artifactId>jstl</artifactId>
			<version>1.2</version>
		</dependency>

		<dependency>
			<groupId>org.aspectj</groupId>
			<artifactId>aspectjweaver</artifactId>
			<version>1.8.14</version>
		</dependency>


		<!-- javassist -->
		<dependency>
			<groupId>org.javassist</groupId>
			<artifactId>javassist</artifactId>
			<version>3.22.0-GA</version>
		</dependency>

配置:
properties
jdbc:

jdbc.username = scott
jdbc.password = tiger
jdbc.url = jdbc:oracle:thin:@192.168.1.108:1521:orcl
jdbc.driverClassName = oracle.jdbc.driver.OracleDriver

log4j:

log4j.rootLogger = info,a,b

log4j.appender.a = org.apache.log4j.ConsoleAppender
log4j.appender.a.Target = System.err
log4j.appender.a.layout = org.apache.log4j.SimpleLayout

log4j.appender.b = org.apache.log4j.FileAppender
log4j.appender.b.File = D:/gz.log
log4j.appender.b.layout = org.apache.log4j.PatternLayout
log4j.appender.b.layout.ConversionPattern = %d{yyyy-MM-dd HH:mm:ss} %l %F %p %m%n

xml:

spring-hibernate.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"
	xmlns:tx="http://www.springframework.org/schema/tx"
	xmlns:aop="http://www.springframework.org/schema/aop"
	xsi:schemaLocation="
	http://www.springframework.org/schema/beans
     http://www.springframework.org/schema/beans/spring-beans.xsd
     http://www.springframework.org/schema/context
     http://www.springframework.org/schema/context/spring-context.xsd
     http://www.springframework.org/schema/mvc
     http://www.springframework.org/schema/mvc/spring-mvc.xsd
     http://www.springframework.org/schema/tx
     http://www.springframework.org/schema/tx/spring-tx.xsd
     http://www.springframework.org/schema/aop
     http://www.springframework.org/schema/aop/spring-aop.xsd
     ">
	
	<!-- 开启扫描扫控制器 -->
	<context:component-scan
		base-package="com.hxzy.ssh.dao" scoped-proxy="interfaces"></context:component-scan>
	<context:component-scan
		base-package="com.hxzy.ssh.service" scoped-proxy="interfaces"></context:component-scan>

	<!-- 读取jdbc配置 -->
	<bean
		class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
		<property name="locations" value="classpath:jdbc.properties" />
	</bean>

	<!-- jdbc -->
	<bean id="dataSource"
		class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
		<property name="driverClassName"
			value="${jdbc.driverClassName}" />
		<property name="url" value="${jdbc.url}" />
		<property name="username" value="${jdbc.username}" />
		<property name="password" value="${jdbc.password}" />
	</bean>
	
	<!-- 创建hibernate 会话工厂 -->
	<bean id="sessionFactory"
		class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
		<property name="dataSource" ref="dataSource" />
		<property name="mappingLocations"><!-- or <property name="mappingResources"> -->
			<list>
				<value>classpath*:hbm/*.hbm.xml</value>
			</list>
		</property>
		<property name="hibernateProperties">
			<value>
				hibernate.dialect=org.hibernate.dialect.Oracle10gDialect
				hibernate.hbm2ddl.auto = update
				hibernate.show_sql = true
			</value>
		</property>
	</bean>

	<!-- 事务管理器 -->
	<bean id="txManager"
		class="org.springframework.orm.hibernate3.HibernateTransactionManager">
		<property name="sessionFactory" ref="sessionFactory" />
	</bean>

	<tx:advice transaction-manager="txManager" id="txAdvice">
		<tx:attributes>
			<tx:method name="add*" propagation="REQUIRED" />
			<tx:method name="del*" propagation="REQUIRED" />
			<tx:method name="update*" propagation="REQUIRED" />
			<tx:method name="get*" read-only="true" />
		</tx:attributes>
	</tx:advice>

	<aop:config>
			<aop:pointcut id="aop"
				expression="execution(* com.hxzy.ssh.service.impl.*.*(..))" />
			<aop:advisor advice-ref="txAdvice" pointcut-ref="aop"/>
	</aop:config>

</beans>

spring-mvc.xml:

     <mvc:annotation-driven></mvc:annotation-driven>
	<context:component-scan
		base-package="com.hxzy.ssh.controller"></context:component-scan>
		
	<!-- 视图解析 -->
	<bean id="viewResolver"
		class="org.springframework.web.servlet.view.UrlBasedViewResolver">
		<property name="viewClass"
			value="org.springframework.web.servlet.view.JstlView"></property>
		<property name="suffix" value=".jsp"></property>
	</bean>

映射:

author.hbm.xml

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
        "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
        "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">

<hibernate-mapping>
	<class name="com.hxzy.ssh.entity.Author" table="author"
		lazy="true">
		<id name="authorId" column="authorId" type="java.lang.Integer">
			<generator class="sequence">
				<param name="sequence">
					seq_author_authorId
				</param>
			</generator>
		</id>
		<property name="authorName" column="authorName"
			type="java.lang.String"></property>
		<property name="passWord" column="passWord"
			type="java.lang.String"></property>
		<set name="set" inverse="true" cascade="save-update">
			<key column="authorId" />
			<one-to-many class="com.hxzy.ssh.entity.Book" />
		</set>
	</class>

</hibernate-mapping>

book.hbm.xml:

<class name="com.hxzy.ssh.entity.Book" table="book" lazy="true">
		<id name="bookId" column="bookId"  type="java.lang.Integer">
			<generator class="sequence">
				<param name="sequence">
					seq_book_bookId
				</param>
			</generator>
		</id>
		<property name="bookName" column="bookName" type="java.lang.String"></property>
		<many-to-one name="author" class="com.hxzy.ssh.entity.Author" cascade="save-update"
			not-null="true">
			<column name="authorId"></column>
		</many-to-one>

这是一个双向关联多对一映射

entity:

public class Author {
	private String authorName;
	private int authorId;
	private String passWord;
	private Set<Book> set = new HashSet<Book>();
}
public class Book {
	private int bookId;
	private String bookName;
	private Author author = new Author();
}
public class Page {
	private int totalPageNum;
	private int totalBookNum;
	private int currentPageNum;
}

dao层:增删改查跑不掉
BookDao

@Component
public class BookDaoImpl implements BookDao {
	Session session = null;
	Transaction tx = null;
	private static SessionFactory sessionFactory;

	/**
	 * 实现增删改查book功能
	 */
	public SessionFactory getSessionFactory() {
		return sessionFactory;
	}

	@SuppressWarnings("static-access")
	@Resource(name = "sessionFactory")
	public void setSessionFactory(SessionFactory sessionFactory) {
		this.sessionFactory = sessionFactory;
	}

	/**
	 * 添加书籍book
	 */
	@Override
	public void addBook(Book book) {
		// TODO Auto-generated method stub
		session = getSession();
		tx = session.beginTransaction();// 开启事务
		try {
			book.setBookId(0);
			session.saveOrUpdate(book);
			tx.commit();// 提交事务
		} catch (Exception e) {
			e.printStackTrace();
			tx.rollback();// 失败则回滚
		} finally {
			session.close();// 关闭资源
		}
	}

	@Override
	public void deleteBook(Book book) {
		// TODO Auto-generated method stub

	}

	/***/
	@Override
	public void updateBook(Book book) {
		// TODO Auto-generated method stub
	}

	/***
	 * 获取session
	 */
	public Session getSession() {
		session = sessionFactory.openSession();
		return session;
	}

	@SuppressWarnings("unchecked")
	@Override
	public List<Book> getBookList(Author author, int currentPageNum) {
		// TODO Auto-generated method stub
		session = getSession();
		List<Book> bookList = new ArrayList<Book>();
		int Page_Size = 3;//每一页的book数量
		try { 
				Query q = session.createQuery("from Book where authorId =:authorId");
						q.setMaxResults(Page_Size);
						q.setFirstResult(Page_Size * (currentPageNum-1));//  最小结果3*(n-1)
				bookList = q
						.setParameter("authorId", author.getAuthorId())
						.list();//查出结果集
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			session.close();
		}
		return bookList;
	}

	/**
	 * 获取书籍总数
	 */
	public int getTotalBookNum(Author author) {
		session = getSession();
		BigDecimal i = null;
		int j = 0;
		try {
			i = (BigDecimal) session.createSQLQuery("select count(1) from book").uniqueResult();
			j =i.toBigInteger().intValue();//转换为int数值
// 查出总书数量
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			session.close();
		}
		return j;
	}

	/**
	 * 5本书一页,获取总页数
	 */
	public int getTotalPageNum(Author author) {
		int i = (getTotalBookNum(author) % 3 == 0)? getTotalBookNum(author)/3: getTotalBookNum(author)/3+1;
		return i;
	}

	/**
	 * 由bookname获取单个book
	 */
	@Override
	public Book getBook(Book book) {
		session = sessionFactory.openSession();
		Book book1 = null;
		try {
			String hql = "from Book where bookName = :bookName";// 根据bookname查出book
			book1 = (Book) session.createQuery(hql).setParameter("bookName", book.getBookName()).uniqueResult();
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			session.close();// 关闭资源
		}
		return book1;
	}

}

AuthorDao

@Component//准备authorImpl的bean
public class AuthorDaoImpl implements AuthorDao {

	Session session = null;
	
	private static SessionFactory sessionFactory;

	@SuppressWarnings("static-access")
	@Resource//注入sessionFactory
	public void setSessionFactory(SessionFactory sessionFactory) {
		this.sessionFactory = sessionFactory;
		//System.out.println("sessionFactory:" + sessionFactory);
	}

	Transaction tx = null;

	@Override
	public void addAuthor(Author author) {
		// TODO Auto-generated method stub

	}

	@Override
	public void deleteAuthor(Author author) {
		// TODO Auto-generated method stub

	}

	/**
	 * 关闭资源
	 * */
	public void destory() {
		if(session!=null) {
			session.close();
		}
	}

	/**
	 * 获取单个author
	 */
	@Override
	public Author getAuthor(Author author) {
	//	System.out.println("author:"+author.getAuthorName()+author.getPassWord());
		session = sessionFactory.openSession();
		Author author1 = null;
		try {
			String hql = "from Author where authorName = :authorName and passWord = :passWord";
			author1 = (Author) session.createQuery(hql).setParameter("passWord", author.getPassWord())
					.setParameter("authorName", author.getAuthorName()).uniqueResult();
	//		System.out.println("author1:"+author1.getAuthorName()+author1.getPassWord());
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			destory();//关闭资源
		}
		return author1;
		// TODO Auto-generated method stub
	}
	
	/**
	 * 获取单个author by id
	 */
	@Override
	public Author getAuthor(int id) {
	//	System.out.println("author:"+author.getAuthorName()+author.getPassWord());
		session = sessionFactory.openSession();
		Author author1 = null;
		try {
			String hql = "from Author where authorId = :id";
			author1 = (Author) session.createQuery(hql).setParameter("id", id)
					.uniqueResult();
	//		System.out.println("author1:"+author1.getAuthorName()+author1.getPassWord());
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			destory();//关闭资源
		}
		return author1;
	}

	@Override
	public void updateAuthor(Author author) {
		// TODO Auto-generated method stub
		session = sessionFactory.openSession();
		tx = session.beginTransaction();//开启更新事务
		try {
			session.update(author);
			tx.commit();//提交事务
		}catch(Exception e) {
			e.printStackTrace();
			tx.rollback();//异常则回滚
		}finally {
			session.close();//关闭资源
		}
	}

}

控制层:
ListController

@Controller
public class ListController {
	/**
	 * 书籍列表
	 * 实现增删改查书籍功能
	 * */
	private BookService bookService;
	private AuthorService authorService;
	
	@Resource(name="bookServiceImpl")
	public void setBookService(BookService bookService) {
		this.bookService = bookService;
	}
	
	@Resource(name="authorServiceImpl")
	public void setAuthorService(AuthorService authorService) {
		this.authorService = authorService;
	}
	
	/**
	 * 查看书籍列表
	 * */
	@RequestMapping(value="/list",method=RequestMethod.GET)
	public ModelAndView getBookListMav(ModelAndView mav,HttpSession session) {
		Author author = (Author) session.getAttribute("author");
		Page page = (Page) session.getAttribute("page");
		List<Book> bookList = bookService.getBookList(author,page.getCurrentPageNum());
		if(page.getTotalBookNum() == 0) {//初始化page部分参数
			page.setTotalBookNum(bookService.getTotalBookNum(author));
			page.setTotalPageNum(bookService.getTotalPageNum(author));
		}
		mav.addObject("page", page);//传参page
		mav.addObject("bookList", bookList);//传参booklist
		mav.setViewName("list");
		return mav;
	}
	
	/**
	 * 添加书籍列表
	 * */
	@RequestMapping(value="/addlist",method = RequestMethod.POST)
	public ModelAndView addBookListMav(@ModelAttribute Book book,ModelAndView mav) {
		Author author = new Author();
		Set<Book> set = new HashSet<Book>();
		author = authorService.getAuthor(book.getBookId());
		System.out.println("authorid:"+author.getAuthorId());
		set.add(book);
		author.setSet(set);
		book.setAuthor(author);
		bookService.addBook(book);//添加到数据库
		Book book1 = bookService.getBook(book);
		Page page = new Page(bookService.getTotalPageNum(author),bookService.getTotalBookNum(author));
		if(book1!=null) {
			List<Book> bookList = new ArrayList<Book>();
			bookList = bookService.getBookList(author,-1);//查看添加的结果
			mav.addObject("bookList", bookList);
			mav.addObject("page", page);
			mav.setViewName("list");
		}else {
			mav.setViewName("add");
		}
		return mav;
	}
	
	/**
	 * first首页
	 * */
	@RequestMapping(value="/first",method=RequestMethod.GET)
	public ModelAndView firstMav(HttpSession session,ModelAndView mav) {
		Page page = (Page) session.getAttribute("page");
		page.setCurrentPageNum(1);
		mav.setViewName("list");
		mav = getBookListMav(mav,session);
		return mav;
	}
	
	/**
	 * last上一页
	 * */
	@RequestMapping(value="/last",method=RequestMethod.GET)
	public ModelAndView lastMav(HttpSession session,ModelAndView mav) {
		Page page = (Page) session.getAttribute("page");
		page.setCurrentPageNum(page.getCurrentPageNum()-1>1?page.getCurrentPageNum()-1:1);
		mav.setViewName("list");
		getBookListMav(mav,session);
		return mav;
	}
	
	/**
	 * next下一页
	 * */
	@RequestMapping(value="/next",method=RequestMethod.GET)
	public ModelAndView nextMav(HttpSession session,ModelAndView mav) {
		Page page = (Page) session.getAttribute("page");
		page.setCurrentPageNum(page.getCurrentPageNum()+1<page.getTotalPageNum()?page.getCurrentPageNum()+1:page.getTotalPageNum());
		mav.setViewName("list");
		getBookListMav(mav,session);
		return mav;
	}
	
	/**
	 * 末页
	 * */
	@RequestMapping(value="/final",method=RequestMethod.GET)
	public ModelAndView finalMav(HttpSession session,ModelAndView mav) {
		Page page = (Page) session.getAttribute("page");
		page.setCurrentPageNum(page.getTotalPageNum());
		mav.setViewName("list");
		mav = getBookListMav(mav,session);
		return mav;
	}
	
}

LoginController:

/**
 * 登录控制器
 *实现登录控制
 *index.html-->login.jsp
 *登录成功login-->info.jsp
 *登录失败login-->login.jsp 
 * */
@Controller
public class LoginController {
	private AuthorService authorService;
	
	/**
	 *注入authorservice 
	 * */
	@Resource(name="authorServiceImpl")
	public void setAuthorService(AuthorService authorService) {
		this.authorService = authorService;
	}
	
	/**
	 *     截取index主页跳转到登录页面
	 * index-->login
	 * */
	@RequestMapping(value="index",method=RequestMethod.GET)
	public String index() {
	//	System.out.println("进来了index");
		return "login";
	}

	/**
	 * 截取login返回modelandview
	 * 去service查询
	 * 登录成功转到info
	 * 登录失败转到login
	 * */
	@RequestMapping(value="/login",method=RequestMethod.POST)
	public ModelAndView login(@ModelAttribute Author author,ModelAndView mav) {
	//	System.out.println("进入了mav");
		Author author1 = authorService.getAuthor(author);
	//	System.out.println(author1);
		if(author1!=null) {//查询结果相同,登录成功
		//	System.out.print("author1输出了");
			mav.addObject("author1",author1);
			Page page = new Page(0, 0);
			page.setCurrentPageNum(1);
			mav.addObject("page",page);
			mav.setViewName("info");
		}else {//查询结果不同,登录失败
		//	mav.addObject(author1);
			mav.setViewName("login");
		}
		return mav;//返回视图
	}
	
	/**
	 * 截取updateAuthor返回modelandview
	 * */
	@RequestMapping(value="/updatePassWord.html",method=RequestMethod.POST)
	public ModelAndView updatePassword(@ModelAttribute Author author,ModelAndView mav) {
		authorService.updateAuthor(author);//更新密码
		Author author1 = authorService.getAuthor(author);
		if(author1!=null) {//查询结果相同,修改成功
			System.out.print("修改密码成功");
			mav.addObject("author1",author1);
			mav.setViewName("info");
		}else {//查询结果不同,修改失败
			mav.setViewName("updatePassWord");
		}
		return mav;//返回视图
	}
	
}

视图层:

index.jsp:

<jsp:forward page="index.html"></jsp:forward

login.jsp:

<form action="login.html" method="post">
		AuthorName: <input type="text" name="authorName" /> <br>
		PassWord: <input  type="password" name="passWord" /><br>
		<input type="submit" value="登录"/>
	</form>

info.jsp:

<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<div>welcome ${author1.authorName}</div>
	<c:set var="author" value="${author1}" scope="session"></c:set> 
 	<c:set var="page" value="${page }" scope="session" />  
	<div>
		<a href="updatePassWord.jsp"><button>修改密码</button></a>
	</div>
	<div class="add">
		<a href="add.jsp"><button>添加新书籍</button></a>
	</div>
	<!-- 		<div class="delete"> -->
	<!-- 			<a href="del.jsp"><button >删除</button></a> -->
	<!-- 		</div> -->
	<!-- 		<div class="update"> -->
	<!-- 			<a href="upd.jsp"><button >编辑</button></a> -->
	<!-- 		</div> -->
	<div class="select">
			 <a	href="list.html"><button>查询</button></a>
	</div>

list.jsp:

<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>展示列表</title>
<style>
#sheet {
	 display:inline-block;
}
</style>
</head>
<body>
    <%-- ${sessionScope.author.authorId} --%>
	<div>${author.authorName}的书单:</div>
	<div>一共 ${sessionScope.page.totalPageNum} 页</div>
	<div>查询到 ${sessionScope.page.totalBookNum} 条记录</div>
	<c:set var="pn" value="${session.page.currentPageNum }"></c:set>
	<c:set var="pt" value="${session.page.totalPageNum }"></c:set>
	<c:set var="page" value="${page }" scope="session" />  
	<div class="bookid" id="sheet">
	    <a class="title">书籍编号</a></br>
		<c:forEach items="${bookList}" var="item">
			<c:out value="${item.getBookId()}" /></br>
		</c:forEach>
	</div>
	<div class="bookname" id="sheet">
	    <a class="title">书名</a></br>
		<c:forEach items="${bookList}" var="item">
			<c:out value="${item.getBookName()}" /></br>
		</c:forEach>
	</div>      </br>
	<a href="first.html"><button>首页</button></a>
	<a href="last.html"><button>上一页</button></a>
	<a href="next.html"><button>下一页</button></a>
	<a href="final.html"><button>末页</button></a>
	<div class="add">
		<a href="add.jsp"><button>添加</button></a>
	</div>
</body>
</html>

add.jsp:

<form action="addlist.html" method="post">
		bookname: <input type="text" name="bookName" /> <br> 
		<input	type="hidden" name="bookId" value="${sessionScope.author.authorId}" />
		<input	type="submit" value="提交" />
	</form>

updatepassword.jsp:

<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>修改密码</title>
</head>
<body>
	<input type="hidden" name="authorpass" value="${sessionScope.author.passWord}" id="oldpass" />
	<form action="updatePassWord.html" method="post">
 	<input type="hidden" name="authorId" value="${sessionScope.author.authorId}" /> 
	<input type="hidden" name="authorName" value="${sessionScope.author.authorName}" />
		原密码:       <input type="text" name="oldPassWord" id="pass" /> <br> 
		新密码:       <input type="password" name="passWord" />         <br> 
	        确认新密码: <input type="password" name="passWord2" />        <br>
			    <input type="submit" value="修改密码" id="submit"/>
	</form>
</body>
<script src="jquery-3.2.1.min.js"></script>
<script src="jquery-1.7.2.min.js"></script>
<script>
$(function(e){
	$("#submit").click(function(){
		if($(" #pass ").val() != $(" #oldpass ").val()){
    		alert("原密码不正确");
    		$("form").load("http://localhost:8080/ssh/updatePassWord form");
    	}
		if($(" input[ name='password' ] ").val() != $(" input[ name='password2' ] ").val()){
			alert("新密码不一致");
			$("form").load("http://localhost:8080/ssh/updatePassWord form");
		}
	});
});
</script>
</html>
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值