如何用mysql建立登录界面_手把手教你用jsp+servlet+mysql完成用户登录功能-Fun言

  • Post author:
  • Post category:mysql


在刚学网站开发的时候,我做的第一个功能就是登录功能,虽然现在看来很简单,但是对于当时的我来说是很棘手的,因为这涉及到一系列的请求响应的过程,无从下手,所以今天就详细的讲解一下利用jsp+servlet+mysql如何做一个简单的登录功能

7c291c12544eb22d90c6b58dd401a6fc.png

开发需求

用户在登录页填写用户名和密码,点击登录会把数据传到servlet里然后跟数据库进行验证,如果验证成功就转到登录成功界面,用户名或密码错误就跳转到登录失败界面并提示用户名或密码错误。

开发过程

一、数据库建表

打开navicat等mysql工具,建一个数据库,名称随意,然后点击查询,复制以下内容点击运行,完成建表CREATE TABLE `user` (

`id` int(11) NOT NULL AUTO_INCREMENT,

`username` varchar(16) DEFAULT NULL,

`password` varchar(16) DEFAULT NULL,

PRIMARY KEY (`id`)

) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

这里我们有三个字段:id(主键),username(用户名),password(密码)

二、Jsp页面

所有的jsp页面都要放在WebRoot下

1、登录页面:login.jsp

登录

这里有两个文本输入框,分别用来输入用户名和密码,我们用Form表单来提交数据,所以action里就要填写进行数据处理的servlet的名字,然后我们用post的方式进行提交,点击登录数据就会上传到名字为Login的servlet

2、登录成功页面:success.jsp

3、登录失败页面:error.jsp

三、后台处理的servlet

1、在myeclipse里右键src–>new–>package,建立一个包名:servlet(可以自定义)

2、右键新建的包名servlet–>new–>servlet,建立一个sevlet类,名字就叫Login,然后点击Finish

3、打开WebRoot下面的web-inf下面的web.xml,填入下面内容

Login

servlet.Login

Login

/Login

4、打开刚才建的Login.java,开始进行数据的处理,打开servlet我们可以看到两个方法,一个是doget,一个是dopost,这里我们doget不用,因为form表单用的是post,还有更多post和get 的区别大家可以自行百度,然后我们直接在doget里调用dopost,以防出错,然后就在dopost进行开发。public void doGet(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

doPost(request, response);

}

public void doPost(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

//获取用户填写的用户名,request.getParameter(“username”);括号里的Username必须和输入框的name属性一致

String username=request.getParameter(“username”);

//获取密码

String password=request.getParameter(“password”);

//实例化数据库类Loginyan,里面存放数据库查询的方法,这个我们下面再写

Loginyan login=new Loginyan();

//调用方法验证

//不为空则登陆成功

if(login.logintrue(username, password)>0){

//如果返回值大于0,说明查询成功,数据库里有这个人的信息,那么我们就跳转到登陆成功界面

response.sendRedirect(request.getContextPath()+”/success.jsp”);

}else{

//如果返回值不大于0,说明查询失败,数据库里没有这个人的信息,那么我们就跳转到登陆失败界面

response.sendRedirect(request.getContextPath()+”/error.jsp”);

}

}

5、书写数据库查询类

(1)在myeclipse里右键src–>new–>package,建立一个包名:jdbc(可以自定义)

(2)右键新建的包名jdbc–>new–>class,建立一个类,名字就叫Loginyan,然后点击Finish

(3)在WebRoot下的lib包下加入mysql连接的jar包,如果没有的话可以在这下载:mysql连接jar包

(4)打开Loginyan,填入下面内容package jdbc;

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.ResultSet;

import java.sql.SQLException;

import java.sql.Statement;

//用于登陆以及个人信息获取的数据库类

public class Loginyan {

//登陆验证是否正确

public int logintrue(String a,String b) {

//加载驱动

try {

Class.forName(“com.mysql.jdbc.Driver”);

//建立连接

Connection conn=DriverManager.getConnection(“jdbc:mysql://localhost:3306/demo?characterEncoding=UTF-8″,”root”,”123456″);

//建立SQL语句的执行器

Statement stat=conn.createStatement();

//ִ执行SQl语句得到结果集

ResultSet result=stat.executeQuery(“select count(*) from user where username='”+a+”‘and password='”+b+”‘”);

//处理结果集

while(result.next()){

//如果数据库查询到了

return 1;

}

conn.close();

} catch (ClassNotFoundException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

//否则返回空

return 0;

}

}

在这里我们可以看到数据库连接的几步走

1、加载驱动

2、建立连接

3、建立SQL语句的执行器

4、执行SQl语句得到结果集

5、处理结果集

总结

这样一个完整的利用jsp+servlet+mysql的登录功能就完成了,我写这篇文章的目的不仅仅是教大家做一个简单的登录功能,而是希望大家能明白其中的原理,这所有的步骤其实就是一个“请求–>处理–>响应”的过程,原理明白了,其他的功能也是如此,当然还是要动手敲代码的,熟能生巧,希望大家能够爱上java,爱上编程。

你还没有登录,请先使用 QQ登录 或 注册!

文章评论

发表评论



版权声明:本文为weixin_39627144原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。