您的位置:首页 > Web前端 > JavaScript

Jsp+Dao+Jdbc+Servelet 用户完整登录

2016-11-25 22:25 387 查看
用户填写好用户名和密码后发出登录请求给servlet(tomcat启动要加载web.xml文件,web.xml会根据index的action找到web.xml中的servlet,然后由servlet控制分发请求调用登录方法,

Index.jsp–web.xml—servlet.Java—dao—–servlet–success.jsp

1。 login.java (JavaBean)

import java.util.List;
public class login {

private int id;
private String username;
private String password;

private List errors;

public boolean invalidate(){

boolean flag=true;
/**
* 1.先验证输入不为空,在验证合法的输入格式。
* 如果输入不为空,那么进行下一项合法的格式的验证
*/

System.out.println("这是验证合法的格式前    得到的用户名********:"+this.username);

if(this.username==null||"".equals(this.username)){
flag=false;
errors.add("用户名不能为空!");
}
//合法格式的验证
else{
if(this.username.length()<3||this.username.length()>10)
{
flag=false;
errors.add("您应该输入合法的用户名,长度在3~10之间!");
}
}
if(this.password==null||"".equals(this.password)){
flag=false;
errors.add("密码不能为空!");
}
else{
if(this.password.length()<3||this.password.length()>10){
flag=false;
errors.add("您应该输入合法的密码,的长度在3~10之间!");
}
}

return flag;

}

public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public List getErrors() {
return errors;
}
public void setErrors(List errors) {
this.errors = errors;
}
}


2。 loginDao.java

import java.sql.PreparedStatement;
import java.sql.ResultSet;

public class loginDao {
public static boolean isLogin(login lg) {
boolean flag = false;
PreparedStatement pstm = null;
ResultSet rs = null;
String sql = null;
MysqlConnection mc = new MysqlConnection();
sql = "select username,password from login where username=? and password=?";
try {

System.out.println("这是要用到的sql………………:" + sql);

pstm = mc.getConnection().prepareStatement(sql);

System.out.println("@@@@@@@@要查询的用户名:"+lg.getUsername());
/*给?号占位符 赋值*/
pstm.setString(1, lg.getUsername());
pstm.setString(2, lg.getPassword());
rs = pstm.executeQuery();

if (rs.next()) {
//              flag = true;
//              lg.setUsername(rs.getString("username"));
//              lg.setPassword(rs.getString("password"));

System.out.println("从mysql中取出的数据:::::name=="+rs.getString("username")+"----password=="+rs.getString("password"));
if (lg.getUsername().equals(rs.getString("username")) && lg.getPassword().equals(rs.getString("password"))) {
flag = true;
}
}

} catch (Exception ex) {
ex.printStackTrace();
}
return flag;
}
}


3。 loginServlet.java

import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.RequestDispatcher;
public class loginServlet extends HttpServlet {

public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
this.doPost(request, response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {

List errors = new ArrayList() ;
String path = "../index.jsp" ;
String name=request.getParameter("username");
System.out.println("这是页面上的用户名:"+name);
String pwd=request.getParameter("password");
System.out.println("这是页面上的密码:"+pwd);

login lg=new login();
lg.setUsername(name);
lg.setPassword(pwd);
lg.setErrors(errors);
boolean b=lg.invalidate();
System.out.println("判断输入格式的真假"+b);
//下面的判断为 如果输入的格式合法,那么我们进行数据库端得验证
if(b){
if(loginDao.isLogin(lg)){
System.out.println("进行数据库端得判断***********");
path="../success.jsp";
}else{
errors.add("错误的用户名和密码!");
}
}
request.setAttribute("Error", errors);
request.setAttribute("Lg", lg);
//request.getRequestDispatcher(path)
request.getRequestDispatcher(path).forward(request, response);

}
}


4。 MysqlConnection.java

import java.sql.* ;
public class MysqlConnection
{
// 属性
// 定义数据库操作的常量、对象
// 数据库驱动程序
private final String DBDRIVER   = "com.mysql.jdbc.Driver" ;
// 数据库连接地址
private final String DBURL      = "jdbc:mysql://localhost:3306/login_db" ;
// 数据库用户名
private final String DBUSER     = "root" ;
// 数据库连接密码
private final String DBPASSWORD = "123456" ;
// 声明一个数据库连接对象
private Connection conn         = null ;
// 在构造方法之中连接数据库
public MysqlConnection()
{
try
{
// 加载驱动程序
Class.forName(DBDRIVER) ;
// 连接数据库
conn = DriverManager.getConnection(DBURL,DBUSER,DBPASSWORD) ;
}
catch (Exception e)
{
System.out.println(e) ;
}
}
// 返回一个数据库连接
public Connection getConnection()
{
/// 返回连接对象
return this.conn ;
}
// 关闭数据库连接
public void close()
{
try
{
this.conn.close() ;
}
catch (Exception e)
{
}
}
}


5。index.jsp

<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%>
<%@page import="java.util.*"%>
<html>
<head>
<title>用户登录</title>
</head>

<body>
<%
if(request.getAttribute("Error")!=null)
{
// 有错误,要进行打印输出
List all = (List)request.getAttribute("Error") ;
Iterator iter = all.iterator() ;
while(iter.hasNext())
{
%>
<li><%=iter.next()%>
<%
}
}
%>
<form action="servlet/loginServlet" method="Post">
<table align="CENTER">
<tr><td colspan="2" align="CENTER"><h3><font color="#0000ff"><strong>用户登录</strong></font></h3></td></tr>
<tr>
<td align="right">用户名:</td>
<td><input type="text" name="username"/></td>
</tr>
<tr>
<td>密  码:</td>
<td><input type="password" name="password"/></td>
</tr>
<tr>
<td align="center"><input type="Submit" name="submit" value="提交"/></td>
<td align="center"><input type="Reset" name="reset" value="重置"/></td>
</tr>
</table>
</form>
</body>
</html>


6。success.jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
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>success</title>
</head>
<body>
<h1>success !!!!!!!!</h1>
</body>
</html>


7。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>Login</display-name>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<servlet>
<servlet-name>Servlet</servlet-name>
<servlet-class>loginServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Servlet</servlet-name>
<url-pattern>/servlet/loginServlet</url-pattern>
</servlet-mapping>
</web-app>






完整代码:http://download.csdn.net/detail/chuang504321176/9694016
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: