思路:
用户登录
1. 查询该用户是否存在。当info列为空时,可登录
管理员登录
1. 查询该记录是否存在。当info列为管理员时,可登录
用户登录
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="../y_denglu" method="post">
<table>
<tr><td>用户名:</td><td><input type="text" name="uname"></td></tr>
<tr><td>密码:</td><td><input type="text" name="password"></td></tr>
<tr><td colspan="2">
<input type="submit" value="提交">
<input type="reset" value="取消">
</table>
</form>
</body>
</html>
package denglu;
import java.io.IOException;
import javax.servlet.RequestDispatcher;
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;
/**
* Servlet implementation class Y_denglu
*/
@WebServlet("/y_denglu")
public class Y_denglu extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public Y_denglu() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
S_user ss = new S_user();
String uname = request.getParameter("uname");
String pass = request.getParameter("password");
String reult;
try {
reult = ss.s_yonghu(uname, pass);
HttpSession session = request.getSession();
session.setAttribute("uname",uname);
request.setAttribute("reult", reult);
RequestDispatcher rd = request.getRequestDispatcher("denglu/y_show.jsp");
rd.forward(request, response);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
}
}
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
String n = (String)request.getAttribute("reult");
System.out.println(n);
if(n.equals("登录成功")){
String ms = "欢迎"+session.getAttribute("uname")+"登录!";
request.setAttribute("ms", ms);
//跳转到用户主页面
%>
<%}
else{ %>
<%=n %>
<%} %>
</body>
</html>
管理员登录
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="../denglu" method="post">
<table>
<tr><td>用户名:</td><td><input type="text" name="uname"></td></tr>
<tr><td>密码:</td><td><input type="text" name="password"></td></tr>
<tr><td colspan="2">
<input type="submit" value="提交">
<input type="reset" value="取消">
</table>
</form>
</body>
</html>
package denglu;
import java.io.IOException;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import javax.servlet.RequestDispatcher;
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 javabean.*;
/**
* Servlet implementation class Denglu
*/
@WebServlet("/denglu")
public class Denglu extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public Denglu() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
S_user ss = new S_user();
String uname = request.getParameter("uname");
String pass = request.getParameter("password");
String reult;
try {
reult = ss.s_guanli(uname, pass);
HttpSession session = request.getSession();
session.setAttribute("uname",uname);
request.setAttribute("reult", reult);
RequestDispatcher rd = request.getRequestDispatcher("denglu/show.jsp");
rd.forward(request, response);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
}
}
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
String n = (String)request.getAttribute("reult");
System.out.println(n);
if(n.equals("登录成功")){
String ms = "欢迎"+session.getAttribute("uname")+"登录!";
request.setAttribute("ms", ms);
//跳转到管理员主页面
%>
<%}
else{ %>
<%=n %>
<%} %>
</body>
</html>
DAO 实现查询user表的功能,在以上两个servlet里调用
package denglu;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import javabean.DB;
public class S_user {
private DB db = new DB();
private Connection conn = null;
@SuppressWarnings("unused")
private PreparedStatement pstmt = null;
public String s_guanli(String uname,String pass) throws Exception {
String mm = null;
conn = db.getConn();
String sql="select uname,password,info from user where uname='"+uname+"' and password='"+pass+"'";
PreparedStatement pstmt = conn.prepareStatement(sql);
/*
pstmt.setString(1, uname);
pstmt.setString(2, pass);
*/
ResultSet rs = pstmt.executeQuery();
rs.last();
if(rs.getRow()==1) {
if(rs.getString("info")==null) {
mm = "您不是管理员";
}
else
mm = "登录成功";
}
else
mm = "用户名或密码错误";
db.free(rs, pstmt, conn);
return mm;
}
public String s_yonghu(String uname,String pass) throws Exception {
String mm = null;
conn = db.getConn();
String sql="select uname,password,info from user where uname=? and password=?";
PreparedStatement pstmt = conn.prepareStatement(sql);
pstmt.setString(1, uname);
pstmt.setString(2, pass);
ResultSet rs = pstmt.executeQuery();
rs.last();
System.out.println(rs.getString("info"));
if(rs.getRow()==1) {
if(rs.getString("info")==null) {
mm = "登录成功";
}
else
mm = "管理员不可登录";
}
else
mm = "用户名或密码错误";
db.free(rs, pstmt, conn);
return mm;
}
}