servlet写登录页面

servlet写登录页面

代码:(类按照逻辑顺序一次展示,使用原生jdbc连接数据库,可考虑用连接池等)

LoginServlet类

package com.feizhuwebthree;

import java.io.IOException;

import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.junit.Test;

import com.feichu.domain.User;
import com.feizhuweb_service.UserService;

public class LoginServlet extends HttpServlet {
    
      @Override
      //初始化登录次数
    public void init() throws ServletException {
      //获取全局管理者
          ServletContext context=getServletContext();
      //初始化次数  
          context.setAttribute("count", 0);
          System.out.println("初始化次数成功");
    }
      @Override
      @Test
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //设置编码
          resp.setContentType("text/html;charset=utf-8");
        //接受用户名和密码
          String username=req.getParameter("username");
          String password=req.getParameter("password");
          
        //调用userservice里的login(username,password)  返回:User  user
          
          User user = null;//初始化
        try {
            user = new UserService().login(username,password);
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
            throw new RuntimeException("网络超时");
        }
          
        //判断user是否为空
          if(user==null) {
            //若为空 “用户名与密码不匹配”
              resp.getWriter().print("用户名密码不匹配.3秒之后页面返回");
              //定时跳转
              resp.setHeader("refresh", "3,url=/webthre/form.html");
          }else {
            //若不为空"xxx:欢迎登录"
              resp.getWriter().print(user.getUsername()+"欢迎登录");
              
             //获取全局管理者
              ServletContext context=this.getServletContext();
             //获取次数
             Integer  cishu =(Integer) context.getAttribute("count");
             //将次数+1
              cishu++;
             //将次数再次放入域对象种
              context.setAttribute("count", cishu);
          }
    }
}

UserService 类

package com.feizhuweb_service;

import com.feichu.domain.User;
import com.feizhu_dao.UserDao;

public class UserService {
    /**
     * 用户登录
     * @param username  用户名
     * @param password  密码
     * @return     返回一个 user用户
     * @throws Exception
     */
    public User login(String username, String password) throws Exception {
        //调用dao
        UserDao  dao=new UserDao();
        return dao.getUserByUsernameAndPwd(username,password);
    }

}
 

 UserDao 类

package com.feizhu_dao;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;

import org.junit.Test;

import com.feichu.domain.User;

public class UserDao {

    /**
     * 登录
     *
     * @param username
     *            用户名
     * @param password
     *            密码
     * @return 返回用户
     */
    // @Test
    public User getUserByUsernameAndPwd(String username, String password) throws Exception {

        User user = null;
        // 加载驱动
        Class.forName("com.mysql.jdbc.Driver");
        // 获取连接
        Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/web?characterEncoding=utf8&useSSL=false", "root", "root");
        // 编写sql
        String sql = "select * from user where username=? and password=?";
        // 创建语句执行者
        PreparedStatement st = conn.prepareStatement(sql);
        // 设置参数
        st.setString(1, username);
        st.setString(2, password);
        // 执行语句
        ResultSet rs = st.executeQuery();
        if (rs.next()) {
               user=new User();
               user.setUsername(rs.getString("username"));
               user.setPassword(rs.getString("password"));
        }
        // 释放资源
        rs.close();
        st.close();
        conn.close();
        return user;
    }

}

User 类

package com.feichu.domain;

public class User {

    private  int id;
    private  String username;
    private  String password;
    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    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;
    }
    
    
}
 

效果展示

 

备注:由于个人原因,本博客暂停更新。如有问题可联系本人,本人提供技术指导、学习方向、学习路线。本人微信wlp1156107728(添加注明来意)   QQ1156107728(添加注明来意)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值