服务器登陆验证

import java.io.IOException;
import java.rmi.RemoteException;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Servlet implementation class xxxxx
 */
@WebServlet(asyncSupported = true, urlPatterns = { "/xxxxx" })
public class xxxxx extends HttpServlet {
    private static final long serialVersionUID = 1L;

    /**
     * @see HttpServlet#HttpServlet()
     */
    public xxxxx() {
        super();
        // TODO Auto-generated constructor stub
    }

    /**
     * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse
     *      response)
     */
    private HttpServletRequest request;
    private HttpServletResponse response;

    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        response.setCharacterEncoding("GBK");
        String name = request.getParameter("name");
        String pwd = request.getParameter("pwd");

        try {
            if (checkname2(name, getMd5(pwd)) == true) {
                request.getSession().setAttribute("b", "true");
                request.getSession().setAttribute("name", name);
                // 传值给start_search.jsp
                response.sendRedirect("start_search.jsp");
            } else {
                request.getSession().setAttribute("b", "false");
                request.getSession().setAttribute("ckeck_result", "!用户名或密码错误!3秒后返回用户验证页面......");
                // 传值给result.jsp
                response.sendRedirect("checkuser.jsp");
            }
        } catch (RemoteException e) {
            e.printStackTrace();
        }

    }

    /**
     * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse
     *      response)
     */
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        // TODO Auto-generated method stub
        doGet(request, response);
    }

    // 查询并返回结果
    public static Float leave_days, sum;
    public static String sqr_name, sqr_dept, leave_type, start_date, end_date, procces_status, procces_url;
    private static String url = "jdbc:sqlserver://IP:1433;DatabaseName=DBName";
    private static String un = "DBUserName"; // 登录数据库的用户名
    private static String pw = "DBPassWord"; // 登录数据库的密码
    private static Connection conn = null;
    public static String[] hz;

    // 验证登陆名和密码
    public static String login_name;
    public static String password;

    public static Boolean checkname2(String login_name, String password) throws RemoteException {

        try {
            Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
            conn = DriverManager.getConnection(url, un, pw);
            Statement st = conn.createStatement();
            String sql_login = "SELECT login_name,password from TABLE " + "where fd_login_name='"
                    + login_name + "' and fd_password = '" + password + "'";
            ResultSet rs = st.executeQuery(sql_login);
            if (rs.next() == false) {
                System.out.println("用户名或密码错误!");
                rs.close();
                conn.close();
                return false;
            } else {
                System.out.println("用户名或密码正确!");
                rs.close();
                conn.close();
                return true;
            }
        } catch (ClassNotFoundException e1) {
            // TODO Auto-generated catch block
            e1.printStackTrace();
            System.out.println("数据库连接失败! \t" + e1.getMessage());
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } finally {
            try {
                if (conn != null) {
                    conn.close();
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
        return null;
    }

    // 静态方法,便于作为工具类
    public static String getMd5(String loginname) {
        try {
            MessageDigest md = MessageDigest.getInstance("MD5");
            md.update(loginname.getBytes());
            byte b[] = md.digest();

            int i;

            StringBuffer buf = new StringBuffer("");
            for (int offset = 0; offset < b.length; offset++) {
                i = b[offset];
                if (i < 0)
                    i += 256;
                if (i < 16)
                    buf.append("0");
                buf.append(Integer.toHexString(i));
            }
            // 32位加密
            return buf.toString();
            // 16位的加密
            // return buf.toString().substring(8, 24);
        } catch (NoSuchAlgorithmException e) {
            e.printStackTrace();
            return null;
        }

    }

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值