mybatis加servlet-登陸註冊Demo

數據庫設計如下:

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;
	}
     
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章