數據庫設計如下:
login.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>登陸</title>
<style>
*{
margin:0px;
padding:0px;
}
.container{
width:1000px;
height:500px;
background-image:url("./image/background_login1.jpg");
background-size:1000px 500px;
background-repeat:no-repeat;
margin:100px auto;
border:2px solid red;
}
table{
width:500px;
height:400px;
position:relative;
top:50px;
}
input{
height:25px;
}
</style>
</head>
<body>
<div align="center" class="container">
<table style="border-collapse:separate; border-spacing:0px 10px;">
<form action="UserServlet?method=1" method="post" id="form">
<tr>
<td width="100">姓名:</td>
<td width="220"><input name = "name" id="name" type="text" maxlength="10" placeholder="請輸入用戶名"/>
</td>
</tr>
<tr>
<td width="100">密碼:</td>
<td width="220"><input name = "psw" id="psw" type="password" maxlength="10" placeholder="請輸入密碼"/>
</td>
</tr>
<tr align="center" valign="center" cellpadding="5px">
<td></td>
<td style="margin-top:20px;">
<div id="btps">
<input onclick="SubmitForm()" type="button" value="登陸" />
<input type="reset" name="Submit" value="重置" />
<a href="register.jsp">註冊賬號</a>
</div>
</td>
</tr>
</form>
</table>
</div>
<script type="text/javascript">
var form = document.getElementById("form");
function SubmitForm() {
form.submit();
}
</script>
</body>
</html>
register.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>報名信息後臺管理</title>
<style>
*{
margin:0px;
padding:0px;
}
.container{
width:1000px;
height:500px;
background-image:url("./image/background_login1.jpg");
background-size:1000px 500px;
background-repeat:no-repeat;
margin:100px auto;
border:2px solid red;
}
table{
width:500px;
height:400px;
position:relative;
top:50px;
}
input{
height:25px;
}
</style>
</head>
<body>
<div align="center" class="container">
<table style="border-collapse:separate; border-spacing:0px 10px;">
<form action="UserServlet?method=2" method="post" id="form">
<tr>
<td width="100">用戶名:</td>
<td width="220"><input name = "name" id="name" type="text" maxlength="10" placeholder="請輸入用戶名"/>
</td>
</tr>
<tr>
<td width="100">密碼:</td>
<td width="220"><input name = "psw" id="psw" type="password" maxlength="10" placeholder="請輸入密碼"/>
</td>
</tr>
<tr align="center" valign="center" cellpadding="5px">
<td></td>
<td style="margin-top:20px;">
<div id="btps">
<input onclick="SubmitForm()" type="button" value="註冊" />
<a href="login.jsp">已有賬號</a>
</div>
</td>
</tr>
</form>
</table>
</div>
<script type="text/javascript">
var form = document.getElementById("form");
function SubmitForm() {
form.submit();
}
</script>
</body>
</html>
success.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<b>恭喜你登陸成功</b>
</body>
</html>
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" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
<display-name>Mybatis_02</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
<servlet>
<servlet-name>UserServlet</servlet-name>
<servlet-class>com.liqiang.servlet.UserServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>UserServlet</servlet-name>
<url-pattern>/UserServlet</url-pattern>
</servlet-mapping>
</web-app>
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>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/mybatis"/>
<property name="username" value="root"/>
<property name="password" value="asdasd456789"/>
</dataSource>
</environment>
</environments>
<!-- 需要配置SQL映射文件 -->
<mappers>
<!-- <mapper resource="com/atguigu/mybatis/dao/Employee.xml"/> -->
<mapper resource="com/liqiang/mapper/UserMapper.xml"/>
</mappers>
</configuration>
UserServlet.java
package com.liqiang.servlet;
import java.io.IOException;
import java.io.InputStream;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import com.liqiang.entity.User;
import com.liqiang.mapper.UserMapper;
public class UserServlet extends HttpServlet{
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doPost(req,resp);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
req.setCharacterEncoding("utf-8");
resp.setCharacterEncoding("utf-8");
int method = Integer.parseInt(req.getParameter("method"));
System.out.println("method:"+method);
if(method == 1) {
login(req,resp);
}
else if(method == 2)
{
register(req,resp);
}
}
public void login(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
String username = req.getParameter("name");
String psw = req.getParameter("psw");
System.out.println("login");
String resource = "mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);//getSqlSessionFactory();
SqlSession openSession = sqlSessionFactory.openSession();
try {
//得到EmployeeMapper的實現類對象
UserMapper mapper = openSession.getMapper(UserMapper.class);
User user = mapper.checkUser(username,psw);
if(user != null) {
req.getRequestDispatcher("success.jsp").forward(req, resp);
}
else {
PrintWriter out = resp.getWriter();
out.println("<script language=javascript>alert('用戶登錄失敗,用戶名或密碼錯誤!');window.location.href='login.jsp';</script>");
}
} finally {
openSession.close();
}
}
public void register(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
String username = req.getParameter("name");
String psw = req.getParameter("psw");
User user = new User();
user.setUsername(username);
user.setPsw(psw);
System.out.println("register");
String resource = "mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);//getSqlSessionFactory();
SqlSession openSession = sqlSessionFactory.openSession();
try {
UserMapper mapper = openSession.getMapper(UserMapper.class);
mapper.registerUser(user);
//這裏一定得提交,不然進不了數據庫
openSession.commit();
PrintWriter out = resp.getWriter();
out.println("<script language=javascript>alert('success to register');window.location.href='login.jsp';</script>");
} catch(Exception e) {
e.printStackTrace();
}finally {
openSession.close();
}
}
}
UserMapper.java
package com.liqiang.mapper;
import com.liqiang.entity.User;
public interface UserMapper {
public User checkUser(String username,String psw);
public void registerUser(User user);
}
UserMapper.xml(這個文件應該和UserMapper.java同一個包)
<?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">
<!---在mybatis3.4以上版本,傳多個參數應該是#{arg0} #{arg1}而不是#{0} #{1}-->
<mapper namespace="com.liqiang.mapper.UserMapper">
<select id="checkUser" resultType="com.liqiang.entity.User">
select * from user where username = #{arg0} and psw = #{arg1}
</select>
<!---這裏傳入一個對象,要求sql語句中的參數需要和User的屬性相同,一一對應-->
<insert id="registerUser" parameterType="com.liqiang.entity.User" >
insert into user(username , psw) values(#{username}, #{psw})
</insert>
</mapper>
User實體類
package com.liqiang.entity;
public class User {
private String username;
private String psw;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPsw() {
return psw;
}
public void setPsw(String psw) {
this.psw = psw;
}
}