gpt4 book ai didi

java - 当我在 doPost 中更改 servlet 内容时,没有任何反应

转载 作者:行者123 更新时间:2023-11-28 22:03:17 27 4
gpt4 key购买 nike

这是我的 HTML 代码中的一段:

<form action="LoginServlet" method="post">
Username: <input type="text" name="username"><br>
Password: <input type="password" name="password">
<input type="submit" value="Log In">
</form>

这是 servletContextListener:

public class DataListener implements ServletContextListener {
private AccountManager accs;
ServletContext context;
/**
* Default constructor.
*/
public DataListener() {
// TODO Auto-generated constructor stub
}

/**
* @see ServletContextListener#contextInitialized(ServletContextEvent)
*/
public void contextInitialized(ServletContextEvent e) {
accs = new AccountManager();
context = e.getServletContext();
context.setAttribute("accounts", accs);
}

/**
* @see ServletContextListener#contextDestroyed(ServletContextEvent)
*/
public void contextDestroyed(ServletContextEvent e) {
context = e.getServletContext();
}

这是我的 servlet doPost :

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//ServletContext context = getServletContext();
//AccountManager manager = (AccountManager) context.getAttribute("accounts");


/*if (manager.isValid(request.getParameter("username"),request.getParameter("password"))){
RequestDispatcher dispatch = request.getRequestDispatcher("welcome.jsp");
dispatch.forward(request, response);
} else{ */
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<?xml version=\"1.0\" encoding=\"ISO-8859-1\" ?>");
out.println("<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\""
+ " \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">");
out.println("<html xmlns='http://www.w3.org/1999/xhtml'>");
out.println("<head>");
out.println("<title>Information Incorrect</title>");
out.println("</head>");
out.println("<body>");
out.print("<h1>Please Try Again </h1>");
out.print("<br />");
out.print("Either Your username or password is incorrect. Please try again.");
out.print("<br />");
out.print("<br />");
request.getRequestDispatcher("/LoginForm.html").include(request, response);
out.println("</body>");
out.println("</html>");
// }

问题是,当我运行 welcome.html 并按下登录按钮时,旧代码仍然起作用。我的意思是我已经评论了这部分:

/*if (manager.isValid(request.getParameter("username"),request.getParameter("password"))){
RequestDispatcher dispatch = request.getRequestDispatcher("welcome.jsp");
dispatch.forward(request, response);
} else{ */

但是,当我按下按钮时,这个注释 block 执行...所以我不能在那里改变任何东西..任何人都可以解释我如何重新启动我的 servlet 类?或者有什么问题?提前谢谢你


我做了 Project->clean 并且成功了:)

最佳答案

Giorgi,这应该可以通过 Build > Clean 轻松解决。如果它仍然顽固,请注意在 Eclipse 中,生成的类被写入到 Java Build Path 实用程序中指定的目录中:

enter image description here

您可以手动删除此处创建的类文件。该目录将隐藏在 Eclipse 包资源管理器中。无需更改默认的 Eclipse View 过滤器,您可以直接在文件系统中执行此操作。

然后重建。它应该可以解决您的问题。

关于java - 当我在 doPost 中更改 servlet 内容时,没有任何反应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16374474/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com