protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
resp.setContentType("text/html;charset=gb2312");
PrintWriter out = resp.getWriter();
out.println("<html><head><title>");
out.println("登录页面");
out.println("</title></head><body>");
String name = req.getParameter("username");
String pwd = req.getParameter("password");
if("1234".equals(name) && "1234".equals(pwd)) {
ServletContext context = getServletContext();
RequestDispatcher rd = context.getRequestDispatcher("/welcome");
rd.forward(req, resp);
} else {
RequestDispatcher rd = req.getRequestDispatcher("login2");
rd.include(req, resp);
}
out.println("</body></html>");
out.close();
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doGet(req, resp);
}
已经重写了doGet和doPost方法了,表单是post提交
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
resp.setContentType("text/html;charset=gb2312");
PrintWriter out = resp.getWriter();
out.println("<form method=post action=portal>");
out.println("<table>");
out.println("<tr>");
out.println("<td>请输入用户名</td>");
out.println("<td><input type=text name=username></td>");
out.println("</tr>");
out.println("<tr>");
out.println("<td>请输入密码</td>");
out.println("<td><input type=password name=password></td>");
out.println("</tr>");
out.println("<tr>");
out.println("<td><input type=reset value=重填></td>");
out.println("<td><input type=submit value=登录></td>");
out.println("</tr>");
out.println("</table>");
out.println("</form>");
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doGet(req, resp);
}
下面是提交表单后的浏览器上面显示的信息:
<form method=post action=portal>
所以

上面的login应该是对应action的portal。
对比下是不是配置的注解路径有问题。