大侠好:晓得做了个登录页面,登录后正常,也用了下面的语句进行了session的传值哈,
session.setAttribute("UserName", rs.getString("UserName"));
在登录后的页面中点击修改资料的页面出现如下错误啊,修改页面的程序如下:<%@page contentType="text/html" pageEncoding="UTF-8" import="java.sql.*"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd"><html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>修改用户资料……</title>
<script language="JavaScript">
function chkEmail(str)
{
return str.search(/[\w\-]{1,}@[\w\-]{1,}.[\w\-]{1,}/)==0?true:false;
}
function check_info()
{
if(form1.NickName.value==""){
alert("请输入昵称");
return false;
}
else if(form1.Email.value==""){
alert("请输入邮箱");
return false;
}
else if(!chkEmail(form1.Email.value)){
alert("请填写有效的邮箱");
return false;
}
else{
return true;
}
}
function check_password()
{
if(form2.OldUserPassword.value==""){
alert("请填写旧密码");
return false;
}
else if(form2.UserPassword.value==""){
alert("请填写新密码");
return false;
}
else if(form2.UserPassword.value!=form2.CUserPassword.value){
alert("新密码和确认密码不一致!");
return false;
}
else{
return true;
}
}
</script>
</head>
<body>
<%
String s_UserName = ""; //此处开始修改
try {
s_UserName = session.getAttribute(UserName);
} catch (NumberFormatException e) {
out.println(e.toString());
}
if (s_UserName!="") {
String user = "sa";
String password = "";
String url = "jdbc:odbc:ch3";
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection conn = DriverManager.getConnection(url, user, password);
Statement stmt = conn.createStatement();
String sql = "select * from [user] wherer UserName=" + s_UserName; //此处和书上的不一样
ResultSet rs = stmt.executeQuery(sql);
if (rs.next()) {
%>
<div align="center">
<h1 align="center">修改用户资料</h1>
<form name="form1" action="modify_info.jsp" method="post" target="_self" onSubmit="return check_info()">
<table width="80%" border="0">
<tr>
<td align="right" width="50%" height="25" bgcolor="#cccccc">用户名:</td>
<td align="left" width="50%" height="25"> <input type="text" name="UserName" readonly="true" value=<%=rs.getString("UserName")%>></td>
</tr>
<tr>
<td align="right" width="50%" height="25" bgcolor="#cccccc">昵 称:</td>
<td align="left" width="50%" height="25"> <input type="text" name="NickName" value=<%=rs.getString("NickName")%>></td>
</tr>
<tr>
<td align="right" width="50%" height="25" bgcolor="#cccccc">性 别:</td>
<td align="left" width="50%" height="25">
<input type="radio" name="Sex" <%if (rs.getInt("Sex") == 0) {
out.println("checked");
}%> value="0">男
<input type="radio" name="Sex" <%if (rs.getInt("Sex") == 1) {
out.println("checked");
}%> value="1">女</td>
</tr>
<tr>
<td align="right" width="50%" height="25" bgcolor="#cccccc">Email:</td>
<td align="left" width="50%" height="25"> <input type="text" name="Email" value=<%=rs.getString("Email")%>></td>
</tr>
<tr>
<td colspan="2" align="center" height="40"><input type="submit" name="sub1" value="修改">
<input type="reset" name="res1" value="重填">
</td>
</tr>
</table>
</form>
<hr width="80%">
<h1 align="center">修改密码</h1>
<form name="form2" action="modify_password.jsp" method="post" target="_self" onSubmit="return check_password()">
<table width="80%" border="0">
<tr>
<td align="right" width="50%" height="25" bgcolor="#cccccc">请输入旧密码:</td>
<td align="left" width="50%" height="25"> <input type="password" name="OldUserPassword"></td>
</tr>
<tr>
<td align="right" width="50%" height="25" bgcolor="#cccccc">请输入新密码:</td>
<td align="left" width="50%" height="25"> <input type="password" name="UserPassword"></td>
</tr>
<tr>
<td align="right" width="50%" height="25">请在输入新密码:</td>
<td align="left" width="50%" height="25"> <input type="password" name="CUserPassword"></td>
</tr>
<tr>
<td height="40" align="center" colspan="2><input type="submit" name="sub2" value="修改">
<input type="reset" name="res2" value="重填">
</tr>
</table>
</form>
</div>
<%
}
else{
out.println("<h1 align=center>改用户的信息不存在!!!</h1>");
out.println("<div align=center><input type=button name=bt1 value=返回 onClick='window.history.go(-1)'</div>");
}
}
else{
out.println("<h1 align=center>您还没有登录!!!</h1>");
out.println("<div align=center><input type=button name=bt2 value=登录 onClick=\"window.location='user_login.jsp'\"></div>");
}
%>
</body>
</html>
运行错误如下:
org.apache.jasper.JasperException: Unable to compile class for JSP: An error occurred at line: 62 in the jsp file: /user_info.jsp
UserName cannot be resolved
59: <%
60: String s_UserName = ""; //姝ゅ寮�淇敼
61: try {
62: s_UserName = session.getAttribute(UserName);
63: } catch (NumberFormatException e) {
64: out.println(e.toString());
65: }
麻烦大哥们说说那里出错了啊,小弟在次先谢过了
session.setAttribute("UserName", rs.getString("UserName"));
在登录后的页面中点击修改资料的页面出现如下错误啊,修改页面的程序如下:<%@page contentType="text/html" pageEncoding="UTF-8" import="java.sql.*"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd"><html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>修改用户资料……</title>
<script language="JavaScript">
function chkEmail(str)
{
return str.search(/[\w\-]{1,}@[\w\-]{1,}.[\w\-]{1,}/)==0?true:false;
}
function check_info()
{
if(form1.NickName.value==""){
alert("请输入昵称");
return false;
}
else if(form1.Email.value==""){
alert("请输入邮箱");
return false;
}
else if(!chkEmail(form1.Email.value)){
alert("请填写有效的邮箱");
return false;
}
else{
return true;
}
}
function check_password()
{
if(form2.OldUserPassword.value==""){
alert("请填写旧密码");
return false;
}
else if(form2.UserPassword.value==""){
alert("请填写新密码");
return false;
}
else if(form2.UserPassword.value!=form2.CUserPassword.value){
alert("新密码和确认密码不一致!");
return false;
}
else{
return true;
}
}
</script>
</head>
<body>
<%
String s_UserName = ""; //此处开始修改
try {
s_UserName = session.getAttribute(UserName);
} catch (NumberFormatException e) {
out.println(e.toString());
}
if (s_UserName!="") {
String user = "sa";
String password = "";
String url = "jdbc:odbc:ch3";
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection conn = DriverManager.getConnection(url, user, password);
Statement stmt = conn.createStatement();
String sql = "select * from [user] wherer UserName=" + s_UserName; //此处和书上的不一样
ResultSet rs = stmt.executeQuery(sql);
if (rs.next()) {
%>
<div align="center">
<h1 align="center">修改用户资料</h1>
<form name="form1" action="modify_info.jsp" method="post" target="_self" onSubmit="return check_info()">
<table width="80%" border="0">
<tr>
<td align="right" width="50%" height="25" bgcolor="#cccccc">用户名:</td>
<td align="left" width="50%" height="25"> <input type="text" name="UserName" readonly="true" value=<%=rs.getString("UserName")%>></td>
</tr>
<tr>
<td align="right" width="50%" height="25" bgcolor="#cccccc">昵 称:</td>
<td align="left" width="50%" height="25"> <input type="text" name="NickName" value=<%=rs.getString("NickName")%>></td>
</tr>
<tr>
<td align="right" width="50%" height="25" bgcolor="#cccccc">性 别:</td>
<td align="left" width="50%" height="25">
<input type="radio" name="Sex" <%if (rs.getInt("Sex") == 0) {
out.println("checked");
}%> value="0">男
<input type="radio" name="Sex" <%if (rs.getInt("Sex") == 1) {
out.println("checked");
}%> value="1">女</td>
</tr>
<tr>
<td align="right" width="50%" height="25" bgcolor="#cccccc">Email:</td>
<td align="left" width="50%" height="25"> <input type="text" name="Email" value=<%=rs.getString("Email")%>></td>
</tr>
<tr>
<td colspan="2" align="center" height="40"><input type="submit" name="sub1" value="修改">
<input type="reset" name="res1" value="重填">
</td>
</tr>
</table>
</form>
<hr width="80%">
<h1 align="center">修改密码</h1>
<form name="form2" action="modify_password.jsp" method="post" target="_self" onSubmit="return check_password()">
<table width="80%" border="0">
<tr>
<td align="right" width="50%" height="25" bgcolor="#cccccc">请输入旧密码:</td>
<td align="left" width="50%" height="25"> <input type="password" name="OldUserPassword"></td>
</tr>
<tr>
<td align="right" width="50%" height="25" bgcolor="#cccccc">请输入新密码:</td>
<td align="left" width="50%" height="25"> <input type="password" name="UserPassword"></td>
</tr>
<tr>
<td align="right" width="50%" height="25">请在输入新密码:</td>
<td align="left" width="50%" height="25"> <input type="password" name="CUserPassword"></td>
</tr>
<tr>
<td height="40" align="center" colspan="2><input type="submit" name="sub2" value="修改">
<input type="reset" name="res2" value="重填">
</tr>
</table>
</form>
</div>
<%
}
else{
out.println("<h1 align=center>改用户的信息不存在!!!</h1>");
out.println("<div align=center><input type=button name=bt1 value=返回 onClick='window.history.go(-1)'</div>");
}
}
else{
out.println("<h1 align=center>您还没有登录!!!</h1>");
out.println("<div align=center><input type=button name=bt2 value=登录 onClick=\"window.location='user_login.jsp'\"></div>");
}
%>
</body>
</html>
运行错误如下:
org.apache.jasper.JasperException: Unable to compile class for JSP: An error occurred at line: 62 in the jsp file: /user_info.jsp
UserName cannot be resolved
59: <%
60: String s_UserName = ""; //姝ゅ寮�淇敼
61: try {
62: s_UserName = session.getAttribute(UserName);
63: } catch (NumberFormatException e) {
64: out.println(e.toString());
65: }
麻烦大哥们说说那里出错了啊,小弟在次先谢过了
楼主【qunqun886】截止到2008-07-27 10:17:19的历史汇总数据(不包括此帖):
发帖的总数量:6 发帖的总分数:120 每贴平均分数:20
回帖的总数量:2 得分贴总数量:0 回帖的得分率:0%
结贴的总数量:6 结贴的总分数:120
无满意结贴数:0 无满意结贴分:0
未结的帖子数:0 未结的总分数:0
结贴的百分比:100.00% 结分的百分比:100.00%
无满意结贴率:0.00 % 无满意结分率:0.00 %
敬礼!
加上红色部分因为从session取出来 都是object 对象 所以需要cast
你这里会抛出 格式化异常吗改成 catch (Exception e) 会好一点
s_UserName = session.getAttribute("UserName");
忘记双引号了吧,
还有异常处理也不全
就在没有语法错误了啊,String sql = "select * from [user] wherer UserName = '"+s_UserName+"'"; 以上为sql语句啊,运行的时候又成了另外一个错啊,如下:
exception org.apache.jasper.JasperException: An exception occurred processing JSP page /user_info.jsp at line 7471: Connection conn = DriverManager.getConnection(url, user, password);
72: Statement stmt = conn.createStatement();
73: String sql = "select * from [user] wherer UserName = '"+s_UserName+"'"; //姝ゅ鍜屼功涓婄殑涓嶄竴鏍� ResultSet rs = stmt.executeQuery(sql);
74: if (rs.next()) {
75: %>
76: <div align="center">
77: <h1 align="center">淇敼鐢ㄦ埛璧勬枡</h1>
Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:505)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:398)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:337)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:390)
root cause javax.servlet.ServletException: java.sql.SQLException: [Microsoft][ODBC SQL Server Driver][SQL Server]第 1 行: 'UserName' 附近有语法错误。
org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:850)
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:779)
org.apache.jsp.user_005finfo_jsp._jspService(user_005finfo_jsp.java:215)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:337)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:390)
sql写完后在查询分析器里执行下
<input type="submit" name="sub2" value="修改"><input type="reset" name="res2" value="重填">colspan="2标签的双引号给忘记弄回来了;第二个错误是:
s_UserName = session.getAttribute(UserName);session.getAttribute返回的是 object 类型,所以需要强制转换;
再有session.getAttribute(UserName),里的参数应该是String类型个,因此应该是session.getAttribute("UserName")准确是应该是s_UserName = session.getAttribute("UserName");
<td align="right" width="50%" height="25" bgcolor="#cccccc">性 别:</td>
<td align="left" width="50%" height="25">
<input type="radio" name="Sex" <%if (rs.getInt("Sex") == 0) {
out.println("checked");
}%> value="0">男
<input type="radio" name="Sex" <%if (rs.getInt("Sex") == 1) {
out.println("checked");
}%> value="1">女</td>
</tr>
运行的时候说是
org.apache.jasper.JasperException: An exception occurred processing JSP page /user_info.jsp at line 9592: out.println("checked");
93: }%> value="0">鐢� <input type="radio" name="Sex" <%if (rs.getInt("Sex") == 1) {
94: out.println("checked");
95: }%> value="1">濂�/td>
96: </tr>
97: <tr>
98: <td align="right" width="50%" height="25" bgcolor="#cccccc">Email锛�/td>
Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:505)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:398)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:337)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:390)
root cause javax.servlet.ServletException: java.sql.SQLException: No data found
org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:850)
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:779)
org.apache.jsp.user_005finfo_jsp._jspService(user_005finfo_jsp.java:215)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:337)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:390)小弟把那段 代码去了运行正常啊,就是那要改性别,麻烦各位指教……