zoukankan      html  css  js  c++  java
  • servlet应用

    码云连接:https://gitee.com/ZeroLuo328/j2ee_course.git

    注意是servletdemo这项目文件

    1.建立数据库添加用户表

    数据库脚本如下:

     

    2.编写servlet进行用户名和密码校验,获取登录页面的用户名密码,并显示出来

    建立一个servlet,把路径设置成  /LoginServlet,我在这里直接用的是注解的方式配置路径,没用web.xml里配置的方式。

     登录页面采取表单提交提交满足要求的用户名和密码

     

     

    获取登录页面的用户名和密码

    输出

     

    加上从数据库读取数据验证身份做个简单的跳转,就简单用了个home.html作为系统主页

    dao层

    service层

    页面也能正常跳转

    再看一个密码错误的情况

    分享一个jdbc的工具类:

    public class DBUtil {
    private final static String URL = "jdbc:mysql://localhost:3306/java2ee";
    private final static String USERNAME = "root";
    private final static String PASSWORD = "47LfQlFq";

    static Connection connection = null;
    static PreparedStatement pstmt = null;
    static ResultSet rs = null;

    public static Connection getConnection() throws SQLException, ClassNotFoundException {
    Class.forName("com.mysql.jdbc.Driver");
    return DriverManager.getConnection(URL,USERNAME,PASSWORD);
    }

    public static PreparedStatement createPreparedStatement(String sql,Object[] params) throws ClassNotFoundException, SQLException {
    pstmt = getConnection().prepareStatement(sql);
    for(int i = 0;i < params.length; i++) {
    pstmt.setObject(i+1, params[i]);
    }
    return pstmt;
    }

    public static boolean executeUpdate(String sql,Object[] params) {
    try {
    pstmt = createPreparedStatement(sql, params);
    int count = pstmt.executeUpdate();
    if(count > 0) {
    return true;
    }
    else {
    return false;
    }
    } catch (ClassNotFoundException e) {
    e.printStackTrace();
    return false;
    }catch (SQLException e) {
    e.printStackTrace();
    return false;
    }catch (Exception e) {
    e.printStackTrace();
    return false;
    }
    }

    public static ResultSet executeQuery(String sql,Object[] params) {
    try {
    pstmt = createPreparedStatement(sql, params);
    rs = pstmt.executeQuery();
    return rs;
    } catch (ClassNotFoundException e) {
    e.printStackTrace();
    return null;
    }catch (SQLException e) {
    e.printStackTrace();
    return null;
    }catch (Exception e) {
    e.printStackTrace();
    return null;
    }
    }

    public static void close(ResultSet rs) {
    close(rs,pstmt,connection);
    }

    public static void close(ResultSet rs,Statement stmt,Connection connection) {
    try {
    if(rs != null) {
    rs.close();
    }
    if(pstmt != null) {
    stmt.close();
    }
    if(connection != null) {
    connection.close();
    }
    }catch (SQLException e) {
    e.printStackTrace();
    }catch (Exception e) {
    e.printStackTrace();
    }
    }
    }

    3.使用Cookie,如果用户在登录的时候选择保存登录信息,30天内,用户无需登录

    我这儿假设就是默认假设记住保存登录信息,让30天内无需登录

    密码正确把用户名和密码用cookie的形式返回给浏览器

    js

    可以看到登录成功在浏览器可以查到cookie

     自动填充成功

     加上这句自动登录

    4.使用session,显示计科院当前在线人数

    这里我用到了监听器

     

     在web.xml中配置监听器

    登录处理的servlet里边加代码

    谷歌登录第一个

    换火狐登录第二个

     

    5.使用过滤器解决乱码问题。

    我先在数据库里添加一条中文数据

     INSERT INTO USER VALUES('罗付强','201731062523');

     可以看出已经出现问题了

    添加过滤器

    再用中文用户名登录

    结果没问题

    码云连接:https://gitee.com/ZeroLuo328/j2ee_course.git

    注意是servletdemo这项目文件

  • 相关阅读:
    JS内容左右滑动
    JS返回上一页
    两栏 三栏的css
    舅舅去世
    .net学习开始
    以论坛管理的方式来处理公司资讯
    《尽管去做》摘
    网页视频播放器代码集
    火影忍者和海贼王
    古代风水文献
  • 原文地址:https://www.cnblogs.com/lfq4588/p/12970089.html
Copyright © 2011-2022 走看看