import java.io.IOException
import java.io.PrintWriter
import java.util.ArrayList
import java.util.List
import javax.servlet.ServletException
import javax.servlet.http.HttpServlet
import javax.servlet.http.HttpServletRequest
import javax.servlet.http.HttpServletResponse
public class LoginServlet extends HttpServlet {
/**
* @category 使用Session处理用户登陆
* @author Bird
*/
private static final long serialVersionUID = 1L
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setCharacterEncoding("UTF-8")
response.setContentType("text/htmlcharset=UTF-8")
PrintWriter out = response.getWriter()
String username = request.getParameter("username")
String password = request.getParameter("password")
List<User>list = Db.getAll()
for(User u: list){
if(u.getUsername().equals(username) &&u.getPassword().equals(password)){
request.getSession().setAttribute("user", u)//登录成功,将用户数据放入到Session中
response.sendRedirect("/Web/index.jsp")
return//进行重定向,并且下面的代码不再执行
}
}
out.write("您的应户名或密码错误")
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request,response)
}
}
class Db{
public static List<User>list = new ArrayList<User>()
static{
list.add(new User("aaa","123"))
list.add(new User("bbb","123"))
list.add(new User("ccc","123"))
}
public static List<User>getAll(){
return list
}
}
那要看你是所有注册过的用户是怎么存的?是有文件存的,还是没有文件,直接用的链表?如果直接用的链表的话,就直接把链表中的节点删掉就行,
如果是文件存的,可以先把文件里的所有用户信息读取到链表里,然后按照上面的方法将用户从链表删除,然后将链表里的数据重新写回到文件覆盖原来的文件。
done