用servlet校验密码2

Posted june-6th

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用servlet校验密码2相关的知识,希望对你有一定的参考价值。

用servlet校验密码2

一.实验目的

查询资料,解决java如何访问mysql数据库,用Mysql 创建数据库,建立一张用户表,用servlet校验用户名密码,只有在用户表中存在的用户才能登录到系统主页

 

二.实验过程

①新建链接设置好用户名及密码,新建数据库,新建表并在表中插入数据如图:

技术图片

 

②代码,大部分代码没有变化见前一个实验,主要是在java类文件中重新修改代码,建立与数据库的链接,并且读出数据分析:

package com.loginservlet;

import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class LoginServlet extends HttpServlet{
    private static final long serialVersionUID = 1L;
    
    String sql = null;
    Connection con = null;
    Statement sta = null;
    ResultSet rs = null;
    boolean isLogin = false;

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        // TODO Auto-generated method stub    
            req.setCharacterEncoding("UTF-8");
            resp.setContentType("text/html;charset=utf-8");
            //获取参数
            String username = req.getParameter("un");
            String password = req.getParameter("pw");
            PrintWriter printWriter = resp.getWriter();
            
            //连接数据库检测用户名和密码
            try{
                //连接数据库
                Class.forName("com.mysql.jdbc.Driver");
                con = DriverManager.getConnection("jdbc:mysql://localhost:3306/workdb?user=root&password=root&serverTimezone=UTC");
                sta = con.createStatement();
                sql="select password from login where username=‘"+username+"‘";
                rs = sta.executeQuery(sql);
                
                if(rs.next()){
                    String passw = rs.getString("password");
                    if(passw.equals(password)){
                        isLogin = true;
                    }else{
                        isLogin = false;
                    }
                }else{
                    isLogin = false;
                }
            }catch (Exception e) {
                // TODO: handle exception
                e.printStackTrace();
            }finally {
                try {
                    if(rs!=null)
                        rs.close();
                    if(sta!=null)
                        sta.close();
                    if(con!=null)
                        con.close();
                } catch (Exception e2) {
                    // TODO: handle exception
                    e2.printStackTrace();
                }
            }
            
            if(isLogin){
                printWriter.write("用户名: "+username+"\\t\\n密码: "+password);
                printWriter.close();
            }
            else {
                printWriter.write("用户名或密码错误!");
            }
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        // TODO Auto-generated method stub
        doGet(req, resp);
    }

}

 

三.实验结果展示

①输入正确的数据库中的用户名密码:

输入用户名:lyk 密码:2016

技术图片

登陆跳转至:

技术图片

 

输入用户名:tom 密码:123

技术图片

登录跳转至:

技术图片

 

输入用户名:Luffy 密码:5

技术图片

登陆跳转至:

技术图片

 

②输入错误的数据库中没有的用户名或密码时:

技术图片

跳转至:

技术图片

 

四.遇到的问题

①在连接数据库时,我不清楚数据库的链接是怎么得到的

②我安装的tomcat7不知道怎么的又出问题了,我删除了server之后重安一个,点tomcat7却没有反应,然后我就只有把安装的文件夹删掉之后重新安装了一遍。

③在确认代码都没有问题之后,运行,输入正确的数据,却还是只能跳转到错误提示页面,所以应该是没有成功链接到数据库然后添加了一个jre文件就好了。

技术图片

 

百度云链接:

链接:https://pan.baidu.com/s/1Bd3PKExC56mneN_ekzozTA
提取码:gtyo

 

以上是关于用servlet校验密码2的主要内容,如果未能解决你的问题,请参考以下文章

用servlet校验密码2

用Servlet进行用户名和密码校验

用servlet进行用户名和密码校验

用servlet进行用户名和密码校验01

用servlet进行用户名和密码校验

用servlet校验密码2