Servlet与JDBC编程的使用

1.数据库的连接

package Database;
import javax.xml.transform.Result;
import java.sql.*;
public class DbManager {
    private Connection conn=null;
    private Statement state=null;
    private ResultSet rs=null;
    private String username="root";
    private String password="wzp961208";
    private String driver="com.mysql.jdbc.Driver";
    private String url="jdbc:mysql://localhost:3306/tt";
    public Connection getConnection(){
        try {
            Class.forName ( driver );
            System.out.println ("数据库加载成功" );
            conn=DriverManager.getConnection ( url,username,password );
            System.out.println ("数据库连接成功" );
        } catch (Exception e) {
            e.printStackTrace ( );
        }
       return conn;
    }
     public int updataNethod(String strsql) {
        int flag=0;
         try {
             conn = this.getConnection ( );
             state = conn.createStatement ( );
             System.out.println ("数据库的更新" );
             flag=state.executeUpdate ( strsql );

         }catch (Exception e){
             e.printStackTrace ();
         }
         return flag;
     }
     public  ResultSet queryMethod(String strsql){
         try {
             conn = this.getConnection ( );
             state = conn.createStatement ( );
             System.out.println ("数据库的更新" );
              rs=state.executeQuery ( strsql );
             return rs;
         }catch (Exception e){
             e.printStackTrace ();
         }
         return rs;
     }
     public void closeDB(){
            try {
                if(rs!=null) {
                    rs.close ( );
                }
                if(conn!=null){
                    conn.close ();
                }
                if(state!=null){
                    state.close ();
                }
            } catch (SQLException e) {
                e.printStackTrace ( );
            }
        }
     }

二、页面跳转控制部分

package Servlet;
import VO.UserInfo;
import shujukufangwenceng.UserInforDAO;
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 java.io.IOException;
import java.io.PrintWriter;
@WebServlet( "/LoginServlet")
public class LoginServlet extends HttpServlet {
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
           this.doPost ( request,response );
    }
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
          response.setContentType ( "text/html;charset=UTF-8" );
        PrintWriter out=response.getWriter ();
        String username=request.getParameter ( "username" );
        String password=request.getParameter ( "password" );
        UserInfo userInfo=new UserInfo ();
        userInfo.setName ( "username" );
        userInfo.setPass ( "password" );
        UserInforDAO userInforDAO=new UserInforDAO ();
        int flag=userInforDAO.checkUserInfo ( userInfo );
        if(flag==1){
            request.setAttribute ( "userinfo",userInfo );
            request.getRequestDispatcher ( "success.jsp" ).forward ( request,response );
        }else{
            request.getRequestDispatcher ( "failure.jsp" ).forward ( request,response );
        }
    }
}

三、Java模拟数据库部分 

package VO;
public class UserInfo {
    private  int id;
    private  String name;
    private  String pass;
    public UserInfo(){}
    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getPass() {
        return pass;
    }

    public void setPass(String pass) {
        this.pass = pass;
    }

    @Override
    public String toString() {
        return "UserInfo{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", pass='" + pass + '\'' +
                '}';
    }
}

四、Java代码与数据库之间的关系

package shujukufangwenceng;
//检查用户名和密码是否一致
import Database.DbManager;
import VO.UserInfo;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class UserInforDAO {
    public int checkUserInfo(UserInfo userInfo){
        int flag=0;
       String strsql="Select name,pass from t_user where name='"+userInfo.getName ()+"'and pass='"+userInfo.getPass (  )+"'";
        try {
        DbManager dbManager=new DbManager ();
        ResultSet resultSet= dbManager.queryMethod ( strsql );
        String name=null;
        String pass=null;
        while (resultSet.next ()){
          name= resultSet.getString ( "name" );
          pass= resultSet.getString ( "pass" );
          if(name.equals (userInfo.getName ()  )&&pass.equals ( userInfo.getPass () )){
             flag=1;
          }else{
             flag=0;
          }
          return flag;
        }
        } catch (Exception e) {
            e.printStackTrace ( );
        }
        return flag;
    }
}

五、Jsp页面

1.login.jsp;

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<form action="LoginServlet" method="post">
    username:<input type="text" name="username" ></br>
    password:<input type="password" name="password"> </br>
    <input type="submit" value="Submit">
    <input type="reset" value="Reset">
</form>
</body>
</html>

2.success.jsp;

<%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<font color="red" size="100px">success!</font> ${userinfo.username}
</body>
</html>

3.failure.jsp; 

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<font color="red" size="100px">failure!</font>
</body>
</html>
发布了129 篇原创文章 · 获赞 4 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/beststudent_/article/details/98397235