我想添加一个激活账号的程序,在servlet文件里加了一些代码,却出现了500错误是怎么回事?

这个是错误

图片说明

红色框中的是添加的代码

图片说明

然后是数据库

图片说明

2个回答

你这个"Acticated" 明明就是你上面那个SQL语句,根本还没有执行呢,怎么能够拿来转成Integer类型呢?
正确代码如下,添加:
String i=stmt.executeQuery(Acticated);
int useractivated=Integer.parseInt(i);

望采纳,谢谢!

Emiry
半夏莲城 回复张笑笑9527: 哦哦,谢谢!♪(・ω・)ノ
10 个月之前 回复
qq_38941937
张笑笑9527 回复半夏莲城: Can not call getNString() when field's charset isn't UTF-8 servlets,数据库编码问题;
10 个月之前 回复
Emiry
半夏莲城 回复张笑笑9527: 请问这个又是什么错误啊?
10 个月之前 回复
Emiry
半夏莲城 回复张笑笑9527: type Exception report message description The server encountered an internal error () that prevented it from fulfilling this request. exception javax.servlet.ServletException: java.sql.SQLException: Can not call getNString() when field's charset isn't UTF-8 servlets.UserLoginServlet1.doPost(UserLoginServlet1.java:139) javax.servlet.http.HttpServlet.service(HttpServlet.java:710) javax.servlet.http.HttpServlet.service(HttpServlet.java:803) root cause java.sql.SQLException: Can not call getNString() when field's charset isn't UTF-8 com.mysql.jdbc.JDBC4ResultSet.getNString(JDBC4ResultSet.java:220) com.mysql.jdbc.JDBC4ResultSet.getNString(JDBC4ResultSet.java:241) servlets.UserLoginServlet1.doPost(UserLoginServlet1.java:114) javax.servlet.http.HttpServlet.service(HttpServlet.java:710) javax.servlet.http.HttpServlet.service(HttpServlet.java:803) note The full stack trace of the root cause is available in the Apache Tomcat/6.0.13 logs.
10 个月之前 回复
qq_38941937
张笑笑9527 回复半夏莲城: 基本上对的,具体细节运行测试下再调整就行了
10 个月之前 回复
Emiry
半夏莲城 回复张笑笑9527:你看看这样子对吗? String SQL="select userActivated from user1 where userID='"+userid1+"'"; ResultSet RS=null; RS=stmt.executeQuery(SQL); String Activated=RS.getNString("userActivated"); int useractivated=Integer.parseInt(Activated);
10 个月之前 回复
Emiry
半夏莲城 回复张笑笑9527:String SQL="select userActivated from user1 where userID='"+userid1+"'";
10 个月之前 回复
Emiry
半夏莲城 回复张笑笑9527: 是的,我要把数据库中userActivated字段中的值跟0比较,如果等于0,就是账号没激活,然后要进行账号激活,把userActivated的值改成1,账号成功激活
10 个月之前 回复
qq_38941937
张笑笑9527 回复半夏莲城: ResultSet对象有getString()方法,百度一下ResultSet的get方法
10 个月之前 回复
qq_38941937
张笑笑9527 回复半夏莲城: 你的意思是说executeQuery()返回的是ResultSet对象,你只想得到ResultSet对象中的一个String值是吗?
10 个月之前 回复
Emiry
半夏莲城 回复张笑笑9527: 这个我知道,所以才问ResultSet跟String之间要怎么转换, executeQuery()要求是ResultSet,Integer.parseInt()要求是String。
10 个月之前 回复
qq_38941937
张笑笑9527 回复半夏莲城: ResultSet 对象是用来接受executeQuery(SQL)查询出来的结果,这里的SQL就是你得sql语句,如下:ResultSet rs = Statement.excuteQuery(sqlStr); 你上面不是用过吗,相同用法
10 个月之前 回复
Emiry
半夏莲城 executeQuery()里要求是ResultSet,不能是String,这两种参数类型要用什么转换啊?
10 个月之前 回复

http 500内部服务器,错误说明IIS服务器无法解析ASP代码,访问一个静态页面试试是否也出现这个问题,如果访问静态页面没问题

Emiry
半夏莲城 我JSP页面之间的跳转都没问题的,就是servlet加了代码之后出了问题,没加之前也是OK的
10 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问