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;
}
}
}