1. 程式人生 > >很全面的登陸註冊介面實現,包括頁面顯示和後臺資料庫互動(寫了我一下午)

很全面的登陸註冊介面實現,包括頁面顯示和後臺資料庫互動(寫了我一下午)

1.login.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%
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%>">
    
  </head>
  <body>
<% 
String msg="";
msg=(String)request.getAttribute("msg");
%>
  <center>
    <form action="dologin" method="post" onsubmit="return check();">
                            使用者名稱:<input type="text" id="username" name="username"/><span id="userPmg" style="color:red;"></span></br></br>
                           密 碼 :<input type="password" id="password" name="password"/><span id="pwd" style="color:red;"></span></br>
                  <input type="button" value="註冊" onclick="window.location='regis.jsp;'"/>    
                  <input type="submit" value="登陸"/></br>
           <c:if test="${msg!=''}">
           <span style="color:red;">${msg}</span>
           </c:if>
    </form>
    </center>
  </body>
    <script type="text/javascript">
      function check(){
         document.getElementById("userPmg").innerHTML="";
         document.getElementById("pwd").innerHTML="";
         var flag=true;
         var username=document.getElementById("username").value;
         if(username.length==0){
             document.getElementById("userPmg").innerHTML="使用者名稱不能為空";
             flag=false;
         }
         var password=document.getElementById("password").value;
         if(password.length==0){
            document.getElementById("pwd").innerHTML="密碼不能為空";
            flag=false;
         }
         return flag;
      }
  
  </script>
  
</html>

2.dologin
package com.cdsxt.action;

import java.io.IOException;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import com.cdsxt.dao.UserDao;
import com.cdsxt.dao.impl.UserDaoImpl;
import com.cdsxt.po.User;

/**
 * Servlet implementation class dologin
 */
@WebServlet("/dologin")
public class dologin extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public dologin() {
        super();
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        this.doPost(request, response);
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		response.setContentType("text/html");
		response.setCharacterEncoding("UTF-8");
		request.setCharacterEncoding("UTF-8");
		
		HttpSession session=request.getSession();
		
		String username=request.getParameter("username");
		String password=request.getParameter("password");
		UserDao us=new UserDaoImpl();
		List<User> list=us.getUserList();
		int a=0;
		for(User user:list){
			if(user.getName().equals(username)&&(user.getPassword().equals(password))){
				a=1;
				session.setAttribute("username", username);
				session.setAttribute("password",password);
				response.sendRedirect("success.jsp");
				return;
			}
		}
		if(a==0){
			String msg="使用者名稱或密碼錯誤,請重新輸入";
			request.setAttribute("msg", msg);
			request.getRequestDispatcher("login.jsp").forward(request,response);
			return;
		}
	}

}

3.UserDao
package com.cdsxt.dao;

import java.util.List;

import com.cdsxt.po.User;

public interface UserDao {
    List<User> getUserList();
    boolean addUser(User user);
}

4.UserDaoImpl
package com.cdsxt.dao.impl;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;

import com.cdsxt.dao.UserDao;
import com.cdsxt.po.User;


public class UserDaoImpl implements UserDao{

	@Override
	public List<User> getUserList() {
		List<User> list=new ArrayList<User>();
		Connection conn=null;
		Statement ps=null;
		ResultSet rs=null;
		try{
			Class.forName("com.mysql.jdbc.Driver");
			conn=(Connection) DriverManager.getConnection("jdbc:mysql://localhost:3306/test","root","123456");
			String sql="select * from User";
			ps=conn.createStatement();
			rs=ps.executeQuery(sql);
			while(rs.next()){
				int id=rs.getInt("id");
				String username=rs.getString("name");
				String password=rs.getString("password");
				int age=rs.getInt("age");
				
				User user=new User();
				user.setId(id);
				user.setName(username);
				user.setPassword(password);
				user.setAge(age);
				
				list.add(user);
				
			}
		}catch(Exception e){
			e.printStackTrace();
		}finally{
			if(rs!=null){
				try {
					rs.close();
				} catch (SQLException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			}
			if(ps!=null){
				try {
					ps.close();
				} catch (SQLException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			}
			if(conn!=null){
				try {
					conn.close();
				} catch (SQLException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			}
		}
		return list;
	}

	@Override
	public boolean addUser(User user) {
		boolean flag=false;
		Connection conn=null;
		Statement st=null;
	    try{
	    	Class.forName("com.mysql.jdbc.Driver");
	    	conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/test","root","123456");
	    	st=conn.createStatement();
	    	String sql="insert into user(name,password) values('"+user.getName()+"','"+user.getPassword()+"');";
	    	int i=st.executeUpdate(sql);
	    	if(i>0){
	    		flag=true;
	    		System.out.println("新增成功");
	    	}
	    }catch(Exception e){
	    	e.printStackTrace();
	    	System.out.println("新增失敗");
	    }finally{
	    	if(st!=null){
				try {
					st.close();
				} catch (SQLException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			}
			if(conn!=null){
				try {
					conn.close();
				} catch (SQLException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			}
	    }
		return false;
	}

}


5.regis.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 'regis.jsp' starting page</title>
    
	

  </head>
  <script text="text/javascript">
      function check(){
         document.getElementById("umeg").innerHTML="";
         document.getElementById("pwd").innerHTML="";
         document.getElementById("pwdmeg").innerHTML="";
         var username=document.getElementById("username").value;
         var flag=true;
         if(username==""){
            document.getElementById("umeg").innerHTML="使用者名稱不能為空";
            flag=false;
         }
         var password=document.getElementById("password").value;
         if(password==""){
            document.getElementById("pwd").innerHTML="密碼不能為空";
            flag=false;
         }
         var repwd=document.getElementById("repwd").value;
         if(repwd!=password){
            document.getElementById("pwdmeg").innerHTML="兩次輸入的密碼不一致";
            flag=false;
         }
         return flag;
      
      }
  
  
  
  
  
  </script>
<% 
String msg="";
msg=(String)request.getAttribute("msg");
%>
  
  
  <body>
      <center> <h2 style="color:blue;">註冊介面</h2></center>
      <center>
      <form action="doregis" method="post" onsubmit="return check();">
                            使用者名稱:<input type="text" id="username" name="username"/><span id="umeg" style="color:red;"></span>
             <c:if test="${msg!=''}">
           <span style="color:red;">${msg}</span>
           </c:if></br></br>
                              密碼:<input type="password" id="password" name="password"/><span id="pwd" style="color:red;"></span></br></br>
                            確認密碼:<input type="password" id="repwd" name="repwd"/><span id="pwdmeg" style="color:red;"></span></br></br>
               <input type="submit" value="提交"/>
      
      
      
      </form>
      
      
      
      
      </center>
       
  </body>
</html>

6.doregis
package com.cdsxt.action;

import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import com.cdsxt.dao.UserDao;
import com.cdsxt.dao.impl.UserDaoImpl;
import com.cdsxt.po.User;

/**
 * Servlet implementation class doregis
 */
@WebServlet("/doregis")
public class doregis extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public doregis() {
        super();
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		this.doPost(request, response);
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		response.setContentType("text/html");
		response.setCharacterEncoding("UTF-8");
		request.setCharacterEncoding("UTF-8");
		
		HttpSession session=request.getSession();
		String username=request.getParameter("username");
		String password=request.getParameter("password");
		User user1=new User();
		user1.setName(username);
		user1.setPassword(password);
		
		UserDao us=new UserDaoImpl();
		List<User> list=us.getUserList();
		int a=0;
		for(User user:list){
			if(user.getName().equals(username)){
				a=1;
				String msg="該使用者名稱已經存在,請重新註冊";
				request.setAttribute("msg", msg);
				request.getRequestDispatcher("regis.jsp").forward(request,response);
				
			}
		}
		if(a==0){
			boolean b=us.addUser(user1);
			session.setAttribute("username",username);
			session.setAttribute("password",password);
			response.sendRedirect("login.jsp");
		}
	}

}


7.seccess.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%
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%>">
 

  </head>
<% 
String username="";
username=(String)request.getAttribute("username");
%>
  <body>
                                            歡迎 <c:if test="${username!=''}">
           <span id="username" style="color:red;">${username}</span>
           </c:if>使用本系統
  </body>
</html>