• jsp+javabean+servlet实现简单的登录


    登录功能

    注释:过程中的错误看567(DBUtil类中,用户名密码填写自己的用户名和密码)

    1、首先进行Mysql数据库的建立

    mysql数据库中建立test数据库,新建表user,表中两个列,分别为nameuserpassword。·如下图

     

    2、之后打开eclipse新建Demoweb应用。如下图

     

    3、DemoJava Resources的文件夹下新建4个包,包名分别为beandaodbservlet

    bean包中新建Userbean类,内容如下:

    package bean;

    import java.util.Date;

    public class Userbean

    {

    private String username;

    private String userpassword;

    public String getUsername() {

    return username;

    }

    public void setUsername(String username) {

    this.username = username;

    }

    public String getUserpassword() {

    return userpassword;

    }

    public void setUserpassword(String userpassword) {

    this.userpassword = userpassword;

    }

    public Userbean() {

    }

    public Userbean(String username,String userpassword) {

    super();

    this.username = username;

    this.userpassword = userpassword;

    }

    }

    dao中新建Admindao类,内容如下:

    package dao;

    import java.sql.Connection;

    import java.sql.ResultSet;

    import java.sql.SQLException;

    import java.sql.Statement;

    import java.text.SimpleDateFormat;

    import java.util.ArrayList;

    import java.util.Date;

    import java.util.List;

    import db.DBUtil;

    import bean.Userbean;

    public class Admindao

    {

    public Userbean checkLogin(String username, String password)//检测登录

    {

    Connection conn=DBUtil.getConn();//连接

    Userbean userbean=null;

    Statement state=null;

    ResultSet rs=null;

    try

    {

    state=conn.createStatement();

    rs=state.executeQuery("select * from user where name='"+username+"'");//查询

    if(rs.next())

    {//查询成功

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

    {

    userbean = new Userbean();

    userbean.setUsername(rs.getString("name"));

    userbean.setUserpassword(rs.getString("userpassword"));

    }

    }

    }

    catch (Exception e)

    {

    e.printStackTrace();

    }

    finally

    {

    DBUtil.close(rs, state, conn);

    }

    return userbean;//返回值

    }

    }

    db中新建DBUtil类,内容如下->注:用户名密码填写自己的用户名和密码):

    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";//test是连接的数据库名

    public static String db_user="root";//连接mysql的用户名,填写你自己的

    public static String db_password="root";//连接mysql的密码,填写你自己的

    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();

    }

    }

    }

    }

    servlet包中新建Adminservlet类,内容如下:(出错误看后面的5须要加tomcat服务)

    package servlet;

    import java.io.IOException;

    import java.io.UnsupportedEncodingException;

    import java.sql.SQLException;

    import java.util.ArrayList;

    import java.util.List;

    import javax.servlet.ServletException;

    import javax.servlet.http.HttpServlet;

    import javax.servlet.http.HttpServletRequest;

    import javax.servlet.http.HttpServletResponse;

    import bean.Userbean;

    import dao.Admindao;

    @SuppressWarnings("serial")

    public class Adminservlet extends HttpServlet

    {

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

    {

    // TODO Auto-generated method stub

    req.setCharacterEncoding("utf-8");

    String method = req.getParameter("method");

    if ("login".equals(method))

    {

    try {

    login(req, resp);

    } catch (ClassNotFoundException e) {

    // TODO 自动生成的 catch

    e.printStackTrace();

    } catch (SQLException e) {

    // TODO 自动生成的 catch

    e.printStackTrace();

    }

    }

    }

    private void login(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException, ClassNotFoundException, SQLException

    {

    req.setCharacterEncoding("utf-8");

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

    String password = req.getParameter("password");

    Admindao adminDao = new Admindao();

    Userbean userbean = adminDao.checkLogin(username, password);

    if(userbean==null)

    {

    System.out.println("0");

    req.getRequestDispatcher("/fail.jsp").forward(req, resp);

    }

    else

    {

    System.out.println("1");

    req.getRequestDispatcher("/success.jsp").forward(req, resp);

    }

    }

    }

     

    3、WebContent文件夹中新建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>登录</title>

    <script language="javascript">

    function checkinfo(){

    var username = document.getElementById('username');

    var password = document.getElementById('password');

    if(username.value ==""&&password.value =="")

    {

    document.getElementById('username').focus();//给用户名获取焦点

    alert('请输入用户名和密码!!!');

    }

    else if(username.value =="")

    {

    document.getElementById('username').focus();//给用户名获取焦点

    alert('请输入用户名!!!');

    }

    else if(password.value =="")

    {

    document.getElementById('password').focus();//密码获取焦点

    alert('请输入密码!!!');

    }

    else

    {

    document.getElementById("form").submit();

    }

    }

    </script>

    </head>

    <body onload= "javascript:document.getElementById('username').focus();">

    <form id="form" action="${pageContext.request.contextPath}/admin/adminServlet?method=login" method="post" >

    <table width="252" border="1" align="center">

      <tr>

        <td width="72"><strong>用户名:</strong></td>

        <td width="164"><input id="username" name="username" type="text" /></td>

      </tr>

      <tr>

        <td><strong>密码:</strong></td>

        <td><input id="password" name="password" type="password" /></td>

      </tr>

      <tr>

        <td> </td>

        <td><button type="button" name="login" onclick="checkinfo()"  >登录</button>

        </td>

      </tr>

    </table>

    </form>

    </body>

    </html>

    新建success.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>success</title>

    </head>

    <body>

    登录成功!!!

    <input type="submit" value="退出" onclick="javascript:window.location.href='${pageContext.request.contextPath}/login.jsp';" >

    </body>

    </html>

     

    新建fail.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>fail</title>

    <script language="javascript">

    function fanhui(){

    alert('用户名或密码不正确!');

    document.getElementById("form").submit();

    }

    </script>

    </head>

    <body onload= "fanhui();">

    <form id="form" action="${pageContext.request.contextPath}/login.jsp" >

    </form>

    </body>

    </html>

    4、WebContent文件夹的WEB-INF文件夹中,右击新建其他,新建web.xml文件,或者选择新建文件,在名字后加上.xml(名字别乱起,文件位置必须是此路径),内容如下:

    <?xml version="1.0" encoding="UTF-8"?>

    <web-app version="2.4" >

    <servlet>

    <servlet-name>Adminservlet</servlet-name>

    <servlet-class>servlet.Adminservlet</servlet-class>

    </servlet>

    <servlet-mapping>

    <servlet-name>Adminservlet</servlet-name>

    <url-pattern>/admin/adminServlet</url-pattern>

    </servlet-mapping>

    </web-app>

    5、错误修改,错误如下

     

    还有

     

    此错误是因为tomcat服务没有加载,解决方法:

    (1)右击Demo项目,选择构建路径,点击配置构建路径,显示如下图:

     

    (2)点击Add Library 之后,点击下一步,选择Server Runtime,之后选择自己的tomcat服务,点击完成,如下图:

     

    之后点击确定,

    6、还有一个是Mysqljar须要加进去,须要连接Mysql数据库

    (方法1)可以在WebContent文件夹的WEB-INF中的lib文件夹中加入mysqljar,如下图:

     

    2)右击Demo项目,选择构建路径,点击配置构建路径,之后点击添加外部JAR,选择自己路径下的Mysqljar,选择后点击确定,最后一步如下图:

     

    7Mysql的服务必须启动,将cmd(命令提示符)用管理员身份运行,之后输入 net start mysql 点击回车(mysql是我的mysql服务的名字,请输入你自己的mysql服务的名字)。联系QQ1906608931。欢迎提出问题!

  • 相关阅读:
    opencv图片右转函数
    多项式相加实验代码和报告
    C++下实现同接口下多个类作为参数的调用和传参
    Betsy Ross Problem
    matlab绘制实用日历实例代码
    node-sass 安装卡在 node scripts/install.js 解决办法
    如何管理自己?
    Webstorm 11 注册/破解方法
    解决play-1.4.0在linux或mac下提示No such file or directory的问题
    PlayFramework 1.2.x 在Controller 中识别JSON提交
  • 原文地址:https://www.cnblogs.com/lhj1017/p/7942415.html
Copyright © 2020-2023  润新知