大侠好:晓得做了个登录页面,登录后正常,也用了下面的语句进行了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">&nbsp;<input type="text" name="UserName" readonly="true" value=<%=rs.getString("UserName")%>></td>
                    </tr>
                    <tr>
                        <td align="right" width="50%" height="25" bgcolor="#cccccc">昵&nbsp;&nbsp;称:</td>
                        <td align="left" width="50%" height="25">&nbsp;<input type="text" name="NickName" value=<%=rs.getString("NickName")%>></td>
                    </tr>
                    <tr>
                        <td align="right" width="50%" height="25" bgcolor="#cccccc">性&nbsp;&nbsp;别:</td>
                        <td align="left" width="50%" height="25">&nbsp;
                            <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">&nbsp;<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="修改">&nbsp;&nbsp;&nbsp;
                            <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">&nbsp;<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">&nbsp;<input type="password" name="UserPassword"></td>
                    </tr>
                    <tr>
                        <td align="right" width="50%" height="25">请在输入新密码:</td>
                        <td align="left" width="50%" height="25">&nbsp;<input type="password" name="CUserPassword"></td>
                    </tr>
                    <tr>
                        <td height="40" align="center" colspan="2><input type="submit" name="sub2" value="修改">&nbsp;&nbsp;&nbsp;&nbsp;
                            <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:             }
麻烦大哥们说说那里出错了啊,小弟在次先谢过了

解决方案 »

  1.   

    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主【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  %                  
    敬礼!
      

  2.   

    s_UserName =  (String)session.getAttribute(UserName); 
    加上红色部分因为从session取出来 都是object 对象 所以需要cast 
      

  3.   

    s_UserName =  session.getAttribute("UserName"); 
      

  4.   

    catch (NumberFormatException e) { 
    你这里会抛出 格式化异常吗改成 catch (Exception e) 会好一点
      

  5.   

    你需要类型转换一下或toString()
      

  6.   

    三楼正解
    s_UserName =  session.getAttribute("UserName"); 
    忘记双引号了吧,
    还有异常处理也不全
      

  7.   

    现在改了啊,改成三楼的时候会出现说是语法错误;改成了s_UserName =(String)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)
      

  8.   

    wherer写错了 where
    sql写完后在查询分析器里执行下
      

  9.   

    刚才调下你的程序,有几处错误;第一个是,一个html标签的错误;   <td height="40" align="center" colspan="2
                            <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");
      

  10.   

    "select * from [user] wherer UserName = '"+s_UserName+" '"拜托...双引号...你怎么总是少打双引号
      

  11.   

    最后一个小错误哈,<tr>
                            <td align="right" width="50%" height="25" bgcolor="#cccccc">性&nbsp;&nbsp;别:</td>
                            <td align="left" width="50%" height="25">&nbsp;
                                <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)小弟把那段 代码去了运行正常啊,就是那要改性别,麻烦各位指教……