jsp+servlet+jdbc实现简单的登陆验证

知识点:1:@webServlet 此标签作用,可以不需要我们在web.xml中配置servlet
2:通过转发,使页面跳转到WEB-INF中的jsp(简单展示了转发与重定向的区别)
3:获取配置在项目中的config.properties配置文件
此Demo使用的是表单提交method=”post” action=”/login”

@WebServlet(urlPatterns="/login")//这是请求路径
public class loginServlet extends HttpServlet{
   public void checkLogin(HttpServletReqest req,HttpServletResponse resp) throws ServletException,IoException{
    String userName=req.getParameter("userName");
        String password=req.getParameter("password");
        //若表单没有设置验证用户账号密码为空则这里需要使用验证
        if(StringUtils.isNotBlank(userName)&&StringUtils.isNotBlank(password)){
            //state表示验证成功了
            Boolean state=DbUtils.check(userName,password);
            if(state){
                //此处使用转发 因为redirect相当于重新发送请求,而不是内部跳转
                //页面不会跳转到WEB-INF下的页面 
                req.getRequestDispatcher("/WEB-INF/view/commons/success.jsp").forward(req, resp);
                return;
            }
            req.getRequestDispatcher("/WEB-INF/view/commons/nameOrPwdMismatch.jsp").forward(req, resp);
            return;
        }
        resp.sendRedirect("nameOrPwdIsBlank.jsp");

   }

}

DbUtils中


    private Boolean state = null;

    public Boolean check(String name, String pwd) {
        Connection conn = null;
        PreparedStatement ps = null;
        ResultSet rs = null;
        try {
            // 加载驱动
            Class.forName("此处在配置文件中");
            // 创建连接 //一般我们都是将db信息放到配置文件中,此处说明怎么加载我们在resources中的config.properties
            Properties p=new Properties();
            InputStream IS=LoginController.class.getClassLoader().getResourceAsStream("config.properties");
            p.load(IS);
            conn = DriverManager.getConnection(p.getProperty("jdbc.url"),p.getProperty("jdbc.userName"),p.getProperty("jdbc.password"));
            conn.prepareStatement("select name,password from T_USER where name=? and password=?");
            ps.setString(1, name);
            ps.setString(2, pwd);
            rs = ps.executeQuery();
            while (rs.next()) {
                if (rs.getString("name").equals(name)
                        && rs.getString("password").equals(pwd)) {
                    state = true;
                } else
                    state = false;
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            try {
                if (conn != null) {
                    conn.close();
                }
                if(ps!=null){
                    ps.close();
                }
                if(rs!=null){
                    rs.close();
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
        return state;
    }
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值