注册第一个能登录,再次注册一个,就不行了
package com.my.servlet;
import java.io.IOException;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.my.domain.User;
/**
* 登录的servlet
*/
@WebServlet("/LoginServlet")
public class LoginServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
List<User> list=(List<User>)this.getServletContext().getAttribute("list");
System.out.println(list);
String username=req.getParameter("username");
String password=req.getParameter("password");
boolean flag=false;
for (User user : list) {
if(user.getUsername().equals(username)&&user.getPassword().equals(password)) {
flag=true;
req.setAttribute("username", username);
//req.getRequestDispatcher("/success.jsp").forward(req, resp);
}
if(flag) {
req.getRequestDispatcher("/success.jsp").forward(req, resp);
}else {
req.getRequestDispatcher("/fail.jsp").forward(req, resp);
}
}
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(req, resp);
}
}0
收起
正在回答
2回答
根据你的报错信息:
java.lang.IllegalStateException: Cannot forward after response has been committed
可以判断出,代码被转发或重定向后再次进行了转发或重定向提交,因为你把if(falg)放到了for循环中,
建议把if(falg)放在循环外。
如果我的回答解决了你的疑惑,请采纳!祝学习愉快!
摄影祖师爷
2018-08-17 14:49:43
报错信息:
八月 17, 2018 2:45:54 下午 org.apache.catalina.core.StandardWrapperValve invoke 严重: Servlet.service() for servlet [com.my.servlet.LoginServlet] in context with path [/reg_login] threw exception java.lang.IllegalStateException: Cannot forward after response has been committed
从网页搭建入门Java Web2018版
- 参与学习 人
- 提交作业 1088 份
- 解答问题 10204 个
如果你有Java语言基础,又想以后从事Java Web开发,那么本路径是你的不二选择!本路径从网页搭建开始入手,通过大量案例来学习Java Web基础。定能助你完成Java Web小白的蜕变!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星