<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<html>
<head>
<title>request1</title>
</head>
<body>
<form action="MyServlet">username:<input type="text" name="username">
<input type="submit" value="提交"></form></body>
</html>---------------------------
import java.io.IOException;import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;public class MyServlet extends HttpServlet { @Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
// TODO Auto-generated method stub
super.doGet(req, resp);
this.process(req, resp);
} @Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
// TODO Auto-generated method stub
super.doPost(req, resp);
this.process(req, resp);
}
protected void process(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
String username = req.getParameter("username");
if("123".equals(username)) {
req.getRequestDispatcher("success.jsp").forward(req, resp);
}else {
req.getRequestDispatcher("fail.jsp").forward(req, resp);
}
}
}请问:当在request1.jsp页面中提交时,为什么总是报下面这个错误
java.lang.IllegalStateException: Cannot forward after response has been committed
com.tangjun.register.MyServlet.process(MyServlet.java:40)
com.tangjun.register.MyServlet.doGet(MyServlet.java:19)
javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)当我试着把super.doGet(req, resp);这句删了,转发成功。请问这是为什么啊
后,请求已经发送出去了,所以就不会实现页面转发了。
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
/ / TODO Auto-generated method stub
super.doGet(req, resp);
this.process(req, resp);
}直接this.process(req,resp),你这里加个super.doGet()作用是啥?可以去掉的