很全面的登陸註冊介面實現,包括頁面顯示和後臺資料庫互動(寫了我一下午)
阿新 • • 發佈:2019-01-02
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>