• 一步一步用Jsp+Javabean+Servlet实现登录功能


    jsp+javabean+servlet实现简单的登录功能。

    首先打开MySQL数据库

     

    新建如下的用于登录数据库表user

     

    打开Eclipse,新建web工程:

     

     

    src文件夹中新建四个包。bean包、db包、servlet包和dao包。下面是bean包的创建过程。其他三个包同样。

     

     

     

    建完四个包后分别在每个包下新建类。

     

    建完之后打开Userbean.java 添加如下代码:

    package bean;

    public class Userbean {

    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;

    }

    private String username;

    private String password;

    }

    保存。打开DBUtil.java 添加如下代码:

    package db;

    import java.sql.Connection;

    import java.sql.DriverManager;

    import java.sql.ResultSet;

    import java.sql.SQLException;

    import java.sql.Statement;

    public class DBUtil

    {

    public static String db_url="jdbc:mysql://localhost:3306/test?uerUnicode=true&characterEncoding=UTF-8";

    public static String db_user="root";//数据库的用户名

    public static String db_password="144214";//数据库的密码

    public static Connection getConn()

    {

    Connection conn=null;

    try

    {

    Class.forName("com.mysql.jdbc.Driver");

    conn=DriverManager.getConnection(db_url,db_user,db_password);

    }

    catch(Exception e)

    {

    e.printStackTrace();

    }

    return conn;

    }

    public static void close(Statement state,Connection conn)//关闭函数

    {

    if(state!=null)//只有状态和连接时,先关闭状态

    {

    try

    {

    state.close();

    }

    catch(SQLException e)

    {

    e.printStackTrace();

    }

    }

    if(conn!=null)

    {

    try

    {

    conn.close();

    }

    catch(SQLException e)

    {

     e.printStackTrace();

    }

    }

    }

    public static void close(ResultSet rs,Statement state,Connection conn)

    {

    if(rs!=null)//有结果集,状态和连接时,先关闭结果集,在关闭状态,在关闭连接

    {

    try

    {

    rs.close();

    }

    catch(SQLException e)

    {

    e.printStackTrace();

    }

    }

    if(state!=null)

    {

    try

    {

    state.close();

    }

    catch(SQLException e)

    {

    e.printStackTrace();

    }

    }

    if(conn!=null)

    {

    try

    {

    conn.close();

    }

    catch(SQLException e)

    {

    e.printStackTrace();

    }

    }

    }

    }

    保存。打开Userdao.java 添加如下代码:

    public int login(String username,String password)

    {

    Connection conn = DBUtil.getConn();

    Statement state =null;

    ResultSet rs = null;

    int flag=0;

    try

    {

    String sql = "select * from user where username = '"+username+"'";

    state = conn.createStatement();

    rs=state.executeQuery(sql);

    if(rs.next())

    {

    if(rs.getString("password").equals(password))

    {

    flag=1;

    }

    }

    }

    catch(Exception e)

    {

    e.printStackTrace();

    }

    finally

    {

    DBUtil.close(rs, state, conn);

    }

    return flag;

    }

    保存。在Userservlet.java添加如下代码:

    package servlet; 

    import java.io.IOException;

    import javax.servlet.ServletException;

    import javax.servlet.http.HttpServlet;

    import javax.servlet.http.HttpServletRequest;

    import javax.servlet.http.HttpServletResponse;

    import dao.Userdao;

    public class Userservlet extends HttpServlet{

    //service方法是必须的!在Servlet先执行这个方法

    protected void service(HttpServletRequest req,HttpServletResponse resp)throws ServletException,IOException

    {

    req.setCharacterEncoding("utf-8");//设置字符集

    String method = req.getParameter("method");//获取jsp界面的method参数来判断执行什么方法

    if(method.equals("login"))

    {

    login(req,resp);//登录方法

    }

    }

    protected void login(HttpServletRequest req,HttpServletResponse resp)throws ServletException,IOException

    {

    req.setCharacterEncoding("utf-8");

    String username = req.getParameter("username1");

    String password = req.getParameter("password1");//获取用户名密码

    Userdao userdao = new Userdao();

    int flag = userdao.login(username, password);//执行Userdao里面的login方法判断登录的用户名密码是否正确

    if(flag==1)

    {

    System.out.println("登录成功!");

    resp.sendRedirect(req.getContextPath()+"/index.jsp");//登录成功跳转到主界面

    }

    else

    {

    System.out.println("登录失败!");

    resp.sendRedirect(req.getContextPath()+"/login.jsp");

    }

    }

    }

    然后在WEB-INF文件夹下新建web.xml文件:

     

     

     

    打开刚刚创建的web.xml文件,添加如下代码:

    <web-app>

    <servlet>

    <servlet-name>Userservlet</servlet-name>

    <servlet-class>servlet.Userservlet</servlet-class>

    </servlet>

    <servlet-mapping>

    <servlet-name>Userservlet</servlet-name>

    <url-pattern>/servlet/Userservlet</url-pattern>

    </servlet-mapping>

    </web-app>

     然后新建一个login.jsp界面,添加如下代码:

    <%@ page language="java" contentType="text/html; charset=utf-8"

        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>Insert title here</title>

    </head>

    <body>

    <form action="${pageContext.request.contextPath}/servlet/Userservlet?method=login" method="post">

    <h1>登录 界面</h1>

    <div>

    <input type="text" placeholder="登录名" required="" id="username" name="username1"/>

    </div>

    <div>

    <input type="password" placeholder="密码" required="" id="password" name="password1" />

    </div>

    <div>

    <input type="submit" value="登 录" />

    </div>

    </form>

    </body>

    </html>

    保存。再新建一个index.jsp界面,用来登录成功后跳转的界面,并在里面添加代码:

    <%@ page language="java" contentType="text/html; charset=utf-8"

        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>Insert title here</title>

    </head>

    <body>

    这是主页,你已成功登录!

    </body>

    </html>

    保存运行!

     

     

    恭喜你完成了!

  • 相关阅读:
    Centos7 keepalived 修改日志路径
    mysql 双主复制 centos7
    CentOs 7 安装mysql5.7.18(二进制版本)
    oracle、mysql新增字段,字段存在则不处理
    mysql+ibatis 批量插入
    oracle+ibatis 批量插入-支持序列自增
    oracle 批量插入-支持序列自增
    sftp上传
    java
    mysql
  • 原文地址:https://www.cnblogs.com/huyangyang/p/7930476.html
Copyright © 2020-2023  润新知