📄 loginfilter.java
字号:
package com.weihaixia.stumanage.filter;
import java.io.IOException;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Hashtable;
import java.util.Iterator;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import com.weihaixia.stumanage.bean.Administrator;
import com.weihaixia.stumanage.bean.Teacher;
import com.weihaixia.stumanage.control.Check_login_Servlet;
import com.weihaixia.stumanage.manage.AdministratorManage;
import com.weihaixia.stumanage.manage.TeacherManage;
public class LoginFilter implements Filter{
private Hashtable ht;
private ResultSet rs;
private String level = null;
private String name = null;
private String pwd = null;
public void destroy() {
// TODO Auto-generated method stub
}
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
HttpServletRequest req = (HttpServletRequest) request;
HttpServletResponse resp= (HttpServletResponse) response;
HttpSession session = req.getSession();
level = (String)session.getAttribute("level");
name = (String)session.getAttribute("uname");
pwd = (String)session.getAttribute("upwd");
forLogin();
Iterator it = ht.keySet().iterator();
if(it.hasNext()) {
if (ht.containsKey(name) == true
&& ht.containsValue(pwd) == true) {
System.out.println("登录成功");
chain.doFilter(request, response);
//break;
} else {
System.out.println("登录失败");
session.setAttribute("strMessage", "用户名或密码错误!");
resp.sendRedirect("../errorPage.jsp");
}
}
}
public void init(FilterConfig arg0) throws ServletException {
// TODO Auto-generated method stub
}
public void forLogin() {
if(level.equals("admin"))
{
ht = new Hashtable();
AdministratorManage adminManager = new AdministratorManage();
Administrator admin = new Administrator();
admin.setAName(name);
admin.setAPassword(pwd);
try {
rs = adminManager.check(admin);
} catch (SQLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
try {
while (rs.next()) {
name = rs.getString(2);
pwd = rs.getString(3);
ht.put(name, pwd);
}
} catch (SQLException e) {
// TODO 自动生成 catch 块
e.printStackTrace();
} finally {
try {
rs.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
else if(level.equals("teacher")){
ht = new Hashtable();
TeacherManage teacherManager = new TeacherManage();
Teacher teacher = new Teacher();
teacher.setTName(name);
teacher.setTPassword(pwd);
try {
rs = teacherManager.check(teacher);
} catch (SQLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
try {
while (rs.next()) {
name = rs.getString(2);
pwd = rs.getString(4);
ht.put(name,pwd);
}
} catch (SQLException e) {
// TODO 自动生成 catch 块
e.printStackTrace();
} finally {
try {
rs.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -