HTTP Status 500 - Cannot call sendRedirect() after the response has been committ

wo__666 wo__666 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
package package1;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.*;
import javax.servlet.ServletConfig;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
* Servlet implementation class RegisterProcessAction
*/
public class RegisterProcessAction extends HttpServlet {
private static final long serialVersionUID = 1L;
private Connection cn = null;
private String drivername = null;
private String url = null;
private String user = null;
private String password = null;
public void init(ServletConfig config) throws ServletException
{
super.init(config);
drivername = config.getInitParameter("drivername");
url = config.getInitParameter("url");
try{
Class.forName(drivername);
cn = DriverManager.getConnection(url,user,password);
}catch(Exception e){
System.out.println("取得数据库连接错误:"+e.getMessage());
}
}


protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String userid = request.getParameter("userid");
String password = request.getParameter("password");
String repassword = request.getParameter("repassword");
String name = request.getParameter("name");
if(userid==null||userid.trim().length()==0){
response.sendRedirect("register.jsp");
}
if(password==null||password.trim().length()==0){
response.sendRedirect("register.jsp");
}
if(repassword==null||repassword.trim().length()==0){
response.sendRedirect("register.jsp");
}
if(!password.equals(repassword)){
response.sendRedirect("register.jsp");
}
if(name!=null&&name.trim().length()>0){
name = new String(name.getBytes("UTF-8"));
}
String sql = "insert into register(userid,name,password)values(?,?,?)";
try{
PreparedStatement ps = cn.prepareStatement(sql);
ps.setString(1, userid);
ps.setString(2, name);
ps.setString(3, password);
ps.executeUpdate();
ps.close();
response.sendRedirect("success.jsp");
}catch(Exception e){
System.out.println("错误:"+e.getMessage());
response.sendRedirect("register.jsp");
}
}

/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request,response);
}
public void destroy(){
super.destroy();
try{
cn.close();
}catch(Exception e){
System.out.println("关闭数据库错误:"+e.getMessage());
}
}

}

运行之后老是出现HTTP Status 500 - Cannot call sendRedirect() after the response has been committed

--------------------------------------------------------------------------------

type Exception report

message Cannot call sendRedirect() after the response has been committed

description The server encountered an internal error (Cannot call sendRedirect() after the response has been committed) that prevented it from fulfilling this request.

exception

java.lang.IllegalStateException: Cannot call sendRedirect() after the response has been committed
org.apache.catalina.connector.ResponseFacade.sendRedirect(ResponseFacade.java:483)
package1.RegisterProcessAction.doGet(RegisterProcessAction.java:45)
javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)


note The full stack trace of the root cause is available in the Apache Tomcat/7.0.29 logs.

求高手解答!

...全文

相关推荐

Tomcat报错:HTTP Status 500 (Wrapper cannot find servlet class)解决办法

主要介绍了Tomcat报错:HTTP Status 500 (Wrapper cannot find servlet class)解决办法的相关资料,需要的朋友可以参考下

weixin_38746574

request.setAttribute 语句前总显示红色感叹号解决办法 HTTP Status 500 -

HTTP Status 500 - type Exception report message description The server encountered an internal error () that prevented it from fulfilling this request. exception javax.servlet.ServletException: Servlet execution threw an exception root cause java.lang.Error: Unresolved compilation problem: The method setAttribute(String, Object) in the type ServletRequest is not applicable for the arguments (String, double) y2ssh.sg.chp1.action.AddAction.execute(AddAction.java:18) y2ssh.sg.chp1.framework.Controller.doGet(Controller.java:25) y2ssh.sg.chp1.framework.Controller.doPost(Controller.java:33) javax.servlet.http.HttpServlet.service(HttpServlet.java:637) javax.servlet.http.HttpServlet.service(HttpServlet.java:717)解决办法:

zhp258

java中response对象用法实例分析

主要介绍了java中response对象用法,结合实例形式分析了Java中response对象的功能及具体使用技巧,需要的朋友可以参考下

weixin_38720009

Tomcat 5.5.26 Administration Tool HTTP Status 500 临时解决

用于解决使用 Tomcat 5.5.26 Administration Tool 的 Delete Existing Hosts 功能时发生 HTTP Status 500 错误,详见 http://blog.csdn.net/LaoBai_2006/archive/2008/08/28/2844042.aspx。 md5: f8ad905990a96f0016682ffd28014701

LaoBai_2006

HTTP 500 服务器内部错误的解决方法

IIS500错误,是因为微软的一个BUG所造成的。下面是解决办法: 主要是由于IWAM账号(在我的计算机即是IWAM_MYSERVER账号)的密码错误造成了HTTP 500内部错误。 在详细分析HTTP500内部错误产生的 ...

lijini77
评论 11
收藏 已收藏
分享
返回顶部
wo__666
Java EE 67,535 成员 225,843 内容