欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

servlet+mysql实现简易的登录功能

程序员文章站 2022-07-10 20:57:35
建立项目骨架:编写数据库连接类:package com.kisstherain.util;import java.sql.*;public class DBUtil { public static Connection getConnection()throws ClassNotFoundException, SQLException { Class.forName("com.mysql.jdbc.Driver"); Connection conn......

本篇记录在idea中搭建web应用框架的过程,并用jsp+servlet+mysql实现简单的登录功能。

1、搭建web项目骨架

新建javaweb应用项目
servlet+mysql实现简易的登录功能
新建lib文件夹,放入要用到的依赖包。分别是数据库的驱动包和web工具包,添加后右键添加到项目的依赖库中。
servlet+mysql实现简易的登录功能
添加完毕之后,在项目设置中查看结构,确认依赖导入完毕。如果需要fix,直接点击fix进行修复。
servlet+mysql实现简易的登录功能
建立项目骨架,在src中新建五个包。代表web项目的各个功能层次。

  • dao层负责对数据库的相关操作,比如插入查询删改等。
  • model包存放在程序中的实体形式,包括一系列属性,与数据库中的字段对应。
  • service包存放业务逻辑中的服务,它根据不同情况,对dao层进行调用
  • servlet包存放各种页面请求处理。直接根据页面信息作出各种相应,对service层进行调用。
  • util存放各种工具类
    servlet+mysql实现简易的登录功能

2、编写数据库连接类和dao层:

此处参考上一篇数据库连接的博文,这里不再赘述:
https://editor.csdn.net/md/?articleId=107488124
这里的数据库结构比较简单,如下:
servlet+mysql实现简易的登录功能
测试数据:

servlet+mysql实现简易的登录功能

3、编写实体类:

这里的属性要和数据库中的字段对应。这里新建一个用户名和一个密码两个属性用于用户登录。

package com.kisstherain.model;

public class User {
    private int id;
    private String name;
    private String password;

    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 getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }


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

4、编写Service

这里逻辑比较简单,因为只有登录这一个比较简单的操作

package com.kisstherain.service;

import com.kisstherain.dao.UserDao;
import com.kisstherain.model.User;

public class UserService {
    UserDao userDao=new UserDao();
    public User selectByName(String name){
        return userDao.selectByName(name);
    }
}

5、编写Servlet:

servlet层继承HttpServlet类,主要是重写doPost方法,对发送的请求根据用户发送的表单进行处理,并进行适当的返回。这里根据用户在登录界面提交的用户名和密码表单,调用dao层的数据库交互方法,对相应用户名的密码进行匹配判断。如果相同返回带有success的相应界面;如果不同或者是其他情况导致密码不匹配,返回fail。
主要有两种请求处理方法 doPost doGet

doGet:处理GET请求
doPost:处理POST请求
当发出客户端请求的时候,调用service 方法并传递一个请求和响应对象。Servlet首先判断该请求是GET 操作还是POST 操作。然后它调用下面的一个方法:doGet 或 doPost。如果请求是GET就调用doGet方法,如果请求是POST就调用doPost方法。doGet和doPost都接受请求(HttpServletRequest)和响应(HttpServletResponse)。get和post这是http协议的两种方法,另外还有head, delete等
这两种方法有本质的区别,get只有一个流,参数附加在url后,大小个数有严格限制且只能是字符串。post的参数是通过另外的流传递的,不通过url,所以可以很大,也可以传递二进制数据,如文件的上传。
在servlet开发中,以doGet()和doPost()分别处理get和post方法。

package com.kisstherain.servlet;

import com.kisstherain.model.User;
import com.kisstherain.service.UserService;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

public class LoginServlet extends HttpServlet {

    UserService userService=new UserService();
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        String name=req.getParameter("name");
        String password=req.getParameter("password");

        User user=userService.selectByName(name);
        if(password.equals(user.getPassword())){
            resp.getWriter().write("success");
        }else{
            resp.getWriter().write("fail");
        }
    }
}

6、编写jsp界面:

主要是两个输入框,供用户输入密码和用户名。这里的action代表处理请求时用户所在的url

<%--
  Created by IntelliJ IDEA.
  User: 84265
  Date: 2020/7/21
  Time: 8:43
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
  <head>
    <title>$Title$</title>
  </head>
  <body>
  <h1>登录页面</h1>
  <form action="login" method="post">
    name:<input name="name" type="text">
    password:<input name="password" type="password">
    <input type="submit" value="确认">
  </form>
  </body>
</html>

7、建立servlet映射

最后要告诉web应用有哪些servlet,以及这些servlet与项目中的哪些类对应:

   <servlet>
        <servlet-name>loginServlet</servlet-name>
        <servlet-class>com.kisstherain.servlet.LoginServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>loginServlet</servlet-name>
        <url-pattern>/login</url-pattern>
    </servlet-mapping>

8、测试

servlet+mysql实现简易的登录功能
servlet+mysql实现简易的登录功能

本文地址:https://blog.csdn.net/weixin_42189888/article/details/107480350

相关标签: SSM