希望有大神能教教我这个小白怎么改能实现JavaWeb修改用户密码的操作。

这是JavaWeb实现用户注册和用户修改密码的四段代码(有连接数据库),前面两端的是放在action包的UserAction.java里的,后面两段是放在service包的Userservice.java文件里的。现在的问题是注册的代码可以实现,而修改密码的操作点击之后网页显示错误是500.希望有大神能教教我这个小白怎么改能实现用户修改密码的操作。
UserAction.java:

public String regist() {

        int registResult=us.regist(un, pwd, pwd2);

        //如果注册失败则退回注册页面
        switch (registResult) {
        case 0:
            //相当于HttpRequest
            getRequest().put("regist_name", un);
            return SUCCESS;
        case 1:
            return INPUT;
        case 2:
            return INPUT;

        default:
            return "ok";
        }

    }
    public String changePwd() {
        User loginUser = (User) this.getSession().get("login_user");
        int result = us.changePwd(loginUser, oldPass, pwd, pwd2);
        switch (result) {
        case 0:
            String success = this.logout();
            return success;
        case 1:
            return INPUT;
        case 2:
            return INPUT;
        case 3:
            return INPUT;

        default:
            return "ok";
        }
    }

Userservice.java:

public int regist(String username, String password, String password2) {
//      String result = "无法注册!";

        if (password.equals(password2)) {
            User u = ud.findByUsername(username);
            if (u != null) {
//              result = "用户名已存在";
                return 2;
            } else {
                User newUser = new User(username, password);
                ud.add(newUser);
//              result = username + "注册成功!";
                return 0;
            }
        } else {
//          result = "两次密码不一致";
            return 1;
        }

//      return result;
    }

    public int changePwd(User loginUser, String oldPass, String pwd, String pwd2) {
        /**
         * 原始密码不正确返回1
         * 两次密码不一致返回2
         * 原始密码和现在密码都一样返回3
         * 全部正确返回0
         */
        if (loginUser.getPassword().equals(oldPass)) {
            if (pwd.equals(pwd2)) {
                if (pwd.equals(oldPass)) {
                    return 3;
                } else {
                    loginUser.setPassword(pwd);
                    ud.edit(loginUser);
                    return 0;
                }
            } else {
                return 2;
            }
        } else {
            return 1;
        }
    }
}

2个回答

500显然是有异常丢出来了

你有执行到changePwd()这个里面没有,下断点调试

首先
User loginUser = (User) this.getSession().get("login_user");
这里有没有login_user
从逻辑上看,必须先登录,登录才有"login_user"这个session值,你的登录的代码在哪里。

qq_23126581
玄元复始道生初,守一无穷尽万物 回复昨日青空丶泪铭尘: 在登陆的时候将读取的信息set进session,然后你需要的时候直接在session里取,如果为null就是没登录或者登陆过期,不为null,代表登陆成功里。
3 个月之前 回复
weixin_43626591
昨日青空丶泪铭尘 大佬,问一下获取登录状态的代码怎么写啊?
3 个月之前 回复
qq_23126581
玄元复始道生初,守一无穷尽万物 是的,他没有将用户放进session,建议采纳本答案。谢谢
3 个月之前 回复

你这个是登陆的时候没有将获取的user用户放进session,然后修改的时候又取了session。根本获取不到值。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
大神,教教我写这个程序
编写一个页面,不允许“”192“”开头的客户访问,如果访问,则给他回送一个信息:访问禁止rn[img=https://img-bbs.csdn.net/upload/201608/24/1471969128_548892.png][/img]rn一直超出范围,可能是我不会写,有会写的大神帮我弄一下。
能教教我With语句的写法吗?
为什么我用rnWith AdoTable1 dorn TableName := 'test';rn ...rnrn不行啊?
有人能教教我装ODI11g吗?
啊!真是把我给痛苦死了 装了好几次了都没装成功。每次到超级用户详细资料的时候就过不去。 rn也就是要输入ODI口令的时候,ODI用户名:SUPERVISOR ODI口令:SUNOPSISrn各位能给我找找原因吗? 谢谢喔。
求Swing项目,最好能教教我
求Swing项目,最好能教教我
希望大神能帮助我下
无标题文档 rn rnrnrnrn rnrnrn我的目的就是通过JS用prompt()的提示来弹出一个表格,可是这样做,弹不出来。我试过,这样可以调用出来,说明表格没有问题,于是我就费解了?难道因为Dreameaver版本问题??
大神们, 谁会的教教我~
var pid = Repository.Where(s => s.Name == first.ProductName).FirstOrDefault().Id;rnrnrnrn为了提高性能。需要一开始就把所有数据取出来,然后放入字典中。 怎么写呢?
大神,教教我这是为什么。
rn function select(txtid, ddlid)rnrn rnrn debugger;rnrn//本来这里的keyup事件始终没有弹出,原来是直接调用下面的myfunc()方法。rnrn//解决办法是在keyup(里把方法重写一遍) 如下rn//我本来的写法是 $("#<%=txtCompanyName.ClientID%>").keyup(myfunc());,结果这个方法没有启用。rn//最后改成下面这样,就可以使用了。虽然问题解决了 ,但是还是希望明白是为什么。rnrn $("#<%=txtCompanyName.ClientID%>").keyup(function () rnrn rnrn var data = $("#<%=txtCompanyName.ClientID%>").val();rnrnrnrn var ddllevel = document.getElementById('<%=this.ddlCompanyName.ClientID %>');rnrn for (var i = 0; i < ddllevel.options.length; i++) rnrnrnrn if (ddllevel.options[i].text.indexOf(data) != -1) rnrn ddllevel.options[i].selected = true;rnrnrnrn break;rnrn rnrn rnrn );rnrn rnrn function myfunc()rnrn rnrn rnrn //var data = document.getElementById("#<%=this.txtCompanyName.ClientID%>").value;rnrn var data = $("#<%=txtCompanyName.ClientID%>").val();rnrn rnrn var ddllevel = document.getElementById('<%=this.ddlCompanyName.ClientID %>');rnrn for (var i = 0; i < ddllevel.options.length; i++)rnrn rnrn rnrn if(ddllevel.options[i].text.indexOf(data)!=-1)rnrn rnrn ddllevel.options[i].selected = true;rnrn rnrn break;rnrn rnrn rnrn rnrn
怎么改这个,小白请教
[img=http://img.my.csdn.net/uploads/201212/24/1356319575_3850.png][/img]rnpackage news;rnimport java.io.*;rnimport java.io.IOException;rnimport javax.servlet.http.HttpSession;rnimport javax.servlet.http.HttpServlet;rnimport javax.servlet.http.HttpServletRequest;rnimport javax.servlet.http.HttpServletResponse;rnrnpublic class AdminAction extends HttpServletrn PrintWriter out;rnpublic void doPost(HttpServletRequest request,rn HttpServletResponse response)rn throws IOExceptionrnrn response.setContentType("text/html;charset=gb2312");rn out=response.getWriter();rn HttpSession session=request.getSession(false);rn int adminid=(Integer)session.getAttribute("adminid");rn int power=(Integer)session.getAttribute("power");rn StrEncode SE=new StrEncode();rn String nid=request.getParameter("nid");rn int nnid = Integer.parseInt(nid);rn String cid=request.getParameter("cid");rn String action=request.getParameter("action");rn DBConn conn=new DBConn();rn tryrn NewsAdmin NA=new NewsAdmin();rn if(action.equals("1"))rn if (NA.canAdmin(adminid, nnid) || power > 10) rn NA.DeleNews(nnid);rn response.sendRedirect("index.jsp");rn rn elsern out.print("你无权操作!");rn rn rn if(action.equals("2"))rn int ccid=Integer.parseInt(cid);rn if (power > 10) rn NA.DeleComm(ccid);rn response.sendRedirect("shownews.jsp?nid="+nid);rn rn elsern out.print("你无权操作!");rn rn rnrn rn catch(Exception e)rn out.print("发表评论写入数据库失败!"+e.toString());rn rnrn public void doGet(HttpServletRequest request,rn HttpServletResponse response)rn throws IOExceptionrn rn doPost(request, response);rn rnrnrn
各位大神,小白求教!!!能帮帮忙看下这个错误吗?
Servlet.service() for servlet [jsp] in context with path [/jspbylwxtwsjfw] threw exception [java.lang.NullPointerException] with root causernjava.lang.NullPointerExceptionrn at org.apache.jsp.mygo_jsp._jspService(mygo_jsp.java:143)rn at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)rn at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)rn at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:443)rn at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:386)rn at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:330)rn at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)rn at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)rn at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)rn at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)rn at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)rn at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)rn at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199)rn at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)rn at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)rn at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)rn at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:650)rn at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)rn at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)rn at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:803)rn at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)rn at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:790)rn at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1459)rn at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)rn at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)rn at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)rn at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)rn at java.lang.Thread.run(Thread.java:745)rn
SVN用户密码怎么改
eclipse里面SVN的用户密码怎么改
怎么改用户的密码??
用adduser userid增加一个用户userid,不知道怎么改它的密码.还有添加用户时可以直接带密码吗??谢谢
怎么修改代码能实现TXT文件的操作
package com.example.messagehiden; import java.io.File; import java.io.IOException; import android.graphics.Bitmap; import android.graphics.BitmapFactory; public class StegTool { File input;
能教我一下吗??
好象CSDN这样,点击左边的FRAME里的超链接,右边的FRAME则显示出页面,如何做??rn
希望有高手能帮帮忙!!
<%rnif request.form("submit")="开始搜索" thenrnwhatzip=request.form("name")rnSet rs=Server.CreateObject("ADODB.Recordset") '5rnsql="select * from [user]"rnrs.open sql,conn,3,3rn%>rn这是别人写的一段代码rn不怎么明白~希望有人能帮我解释一下!尽可能详细一点,因为我还个是初学者.rn先在这里谢谢了~~
教教我这个弱女子吧
这个程序段书上已经有了一部分,可是我老是不能完全实现,都怪平时零食吃多了rnrn程序要求当输入#时就取消#前的一个字符,当输入@时就取消@前的一行字符相当于一个文本编辑工具了。相信大家对于这个easy的冬冬应该不会有难度,可是帮帮我嘛rnrnrn#include rntypedef structrnrn char *base;rn char *top;rn int stacksize;rnsqstack;rnmain()rnrn void lineedit();rn char ch;rn printf("\n**************************************************************");rn printf("\nThis is a program of editing note producing by Yingying^_^.");rn printf("\nPress '#' to backspace,");rn printf("\nPress '@' to backline.");rn printf("\nPress '$' to end.");rn lineedit();rnrnvoid lineedit()rn sqstack s;rn char ch,c;rn initstack(sqstack s);rn ch=getchar();rn while(ch!='$')rn rn while(ch!='$'&&ch!='\n')rn rn switch(ch)rn rn case '#':pop(s,c);rn case '@':clearstack(s);rn default: push(s,ch);rn rn ch=getchar();rn rn clearstack(s);rn if(ch!='$')rn ch=getchar();rn rn destroystack();rnrnint initstack(sqstack s)rnrn s.base=(char *)malloc(100*sizeof(char));rn if(!s.base) exit(-1);rn s.top=s.base;rn s.stacksize=100;rn return(1);rnrnint pop(sqstack s,char e)rnrn if(s.top==s.base)rn return(0);rn e=*--s.top;rn return(1);rnrnint push(sqstack s,char e)rnrn if(s.top-s.base>=s.stacksize)rn rn s.base=(char *)realloc(s.base,s.stacksize+10)*sizeof(char));rn if(!s.base) exit(-1);rn s.top=s.base+s.stacksize;rn s.stacksize+=10;rn rn *s.top++=e;rn return(1);rnrnclearstack(sqstack s)rnrn while(s.top!=s.base)rn pop(s,char m);rn
求教大神,这个怎么改
在一个注册链接中有电话号码,例如:13738068872=MTM3MzgwNjg4NzI= rn如果我想改成13462288765,应该如何做?15537324402呢?
求助,这个函数怎么改能成功
求助,这个函数怎么改能成功
程序能怎么改吗?
DATA SEGMENTrnSU DW 1h,3h,0h,5h,8h,15h,81h,89hrnJG1 DW ?rnDATA ENDSrnSTACK SEGMENT PARA STACK 'STACK'rn DB 256 DUP(?)rnSTACK ENDSrnCODEG SEGMENTrn ASSUME CS:CODEG,DS:DATA,SS:STACKrnSTART PROC FARrn PUSH DSrn MOV AX,0rn PUSH AXrn MOV AX,DATArn MOV DS,AXrn MOV BX,OFFSET SUrn MOV CX,LENGTH SUrn MOV DX,0rnLOP1: MOV AX,[BX]rn CMP AX,0rn JGE GOrn INC DXrnGO: INC BXrn INC BXrn DEC CXrn JNZ LOP1rn MOV JG1,DXrn RETrnSTART ENDPrnCODEG ENDSrn END STARTrn上边的程序是能通过编译的rn但如果把rnSTACK SEGMENT PARA STACK 'STACK'rn DB 256 DUP(?)rnSTACK ENDSrn和ASSUME CS:CODEG,DS:DATA,SS:STACKrn中的SS:STACKrn改过的程序的仍然能通过rn不知这两个程序有什么的区别啊?rn第二种改法中堆楗的数据放在哪里了,我没有给它指定堆楗啊?rnrn
怎么改能编译通过?
10. public class SuperCaic rn11. protected static int multiply(int a, int b) return a * b; rn12. rnand: rn20. public class SubCalc extends SuperCalc rn21. public static int multiply(int a, int b) rn22. int c = super.multiply(a, b); rn23. return c; rn24. rn25. rnand: rn30. SubCalc sc = new SubCalc(); rn31. System.out.println(sc.multiply(3,4)); rn32. System.out.println(SubCalc.multiply(2,2)); rnWhat is the result? rnA. 12 rn 4 rnB. The code runs with no output. rnC. An exception is thrown at runtime. rnD. Compilation fails because of an error in line 21. rnE. Compilation fails because of an error in line 22. rnF. Compilation fails because of an error in line 31. rnAnswer: E
【求助】希望论坛的大神能帮助我这个新人
我以前从来没学过Java、JS、WEBrn一个c语言只考了74分的渣渣rn我是学机械的rn毕业设计居然让我做一个系统rn需要用到JS、Java、web 的开发rn我一万匹草泥马心头打滚啊rn[color=#008000]//以上为背景吧[/color]rn[color=#0000FF]rn[size=24px]现在我经过努力弄懂 了js、web大概是什么东西rn现在我遇到了困难rn希望论坛大神们来帮我指点指点rn[/size][/color]rn[b][color=#FF0000]这个是我现在的布局rn我要在这个布局里面添加一些东西rn如:输入框、一些信息的显示框、确认的点击钮rn我用的ext4.1的layout作为框架rn在这个基础上网上堆我的那些功能rn请问我接下来应该怎么做呢rn在线等回复rn谢谢众大侠了![/color][size=18px][/size][/b]rn[img=https://img-bbs.csdn.net/upload/201405/07/1399449308_921027.png][/img]
这个能实现吗?
有这种需求,定义一个父类P,其中有个字段name,在构造函数中输出name,但是name没有赋值,再定义个子类Sub继承自P,在Sub中为父类name赋值,以后只要new Sub()时自动输出name。rnrn用途就是在父类中定义变量和判断函数,在构造函数中运行判断函数,根据结果做相应操作,但是变量的赋值需要在子类中进行。rnrnusing System;rnusing System.Collections.Generic;rnusing System.Text;rnrnnamespace ConsoleApplication1rnrn public class Prn rn protected string s = "";rnrn public P()rn rn Console.Write(s);rn rn rnrn public class Sub : Prn rn public Sub()rn rn this.s = "abc";rn rn rnrn class Programrn rn static void Main(string[] args)rn rn Sub sub = new Sub();rn rn rnrnrn期望输出abc,但是输出确为空。rnrn
这个能实现吗
一个页面有很多按扭rn效果是 当鼠标放上去 按扭的背景色发生变化 当 鼠标移去 背景色恢复rn如就对一个按扭来说是这样的:rnrn rnrn如果有很多按扭 则每个按扭都要加上onMouseOver=javascript:this.style.backgroundColor='#ffffff'; onMouseOut=javascript:this.style.backgroundColor='#9CCFF7';rn能不能要样式来实现这个效果呀rn注意 :不用javascript:rn对于 页面上按扭就是 rn但是浏览的效果是有 颜色变化的效果了rn就是如何设计cssrn请指教
这个能实现不?
BS结构程序,在客户端调用服务器页面,在此页面中需要从客户端机器(和服务器不在统一机器)rn获取数据:例如从串口读取数据,然后提交给服务器rn用ACTIVE可以实现不?rn还有什么方法?
为了这个问题头疼了两天了,希望大神能帮我解决
com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: No operations allowed after connection closed.
这个能实现吗????
现在我有三个excel文件 现我要把它完完全全导入对应的三个access表中 三个access表是导入后自动建立的 rnrn这个能实现吗? 有源码的能贴出来是最好 在这里谢谢了
ndkd demo 希望大神们能共享
ndk 开发的一个demo,可以体验一下ndk 的强大之处。希望各位大侠们能分享一些有关ndk 的资料,网上该方面的教程太少了
这个能实现吗?
做个控件,里面有两个集合类,A,B,集合B是A中的一个小类,A定义成了控件的一个属性rn所以就有 set a.item().b.modlst=usercontrol.lstvrn对应就是 Set m_Group.Item().ListItems.ModLstv = LstV rn现在要把item()里所有的元素都定义成哪样 但个数未知 rnrn要实现的功能是想在使用集合B的Add方法时在userocntrol里的listview控件里添加内容,rn就想把他映射过去,但出错了,rn,这个怎么改啊,有其它方法吗?rnrn,帮帮忙,感谢了rnQQ :164421342rnlzw858@yahoo.com.cnrn
这个能实现么?
表A 的一个 字段S,rn里存放的值是"A1;A2;A3;A4"rn[color=#0000FF]※说明:这里分号风格的各个值的长度不定,不一定是2位的。但数据的构成,分号肯定是3个。[/color]rnrn想通过一个SQL语句,把字段S 分割成4份,给select 出来rn即得到,rnA1,A2,A3,A4 这样4个字段,类似于以分号来split的效果。rn[color=#0000FF]※说明:我这个其实是access数据库,所以不能用declare来定义变量,也不能用存储过程什么的。[/color]rnrnrnrn
新手问题,希望大神能帮忙解决
//我查询出来的例如是 123,234,456,565,3423,datatable怎么拆分为rn123rn234rn456rn565rn3423rn希望可以贴下代码。谢谢rn public static DataTable SelectCompetence1(string framesize)rn rn tryrn rn using (SqlConnection conn = new SqlConnection(DBHelp.conn))rn rn conn.Open();rn string sql = "select F1008_PARADESC from TB1008_PARAMETER where F1008_PARACODE='分段能力' and '" + framesize + "'=F1008_REMARK1";rn using (SqlCommand comm = new SqlCommand(sql, conn))rn rnrn SqlDataAdapter sda = new SqlDataAdapter(comm);rn DataTable dt = new DataTable();rn sda.Fill(dt);rn rn rn return dt;
javaweb用户密码的封装
问题?在我们用表单的时候时常会遇到封装一些用户密码之类的数据这一个问题。            这里就交给大家几个便捷方法。有常用的封装方法,也有利用开源框架BeanUtilse框架来封装方法的。 举个例子: 再举封装方法之前,我们先看看HttpServletRequest中的request对象有哪些方法 package com.dp.java.Rquest; import
求大神教我输出杨辉三角形,不知道怎么改
#includernint main()rnrn int a[10][10],i,j;rn a[0][0]=1rn for(i=2;i<10;i++)rn for(j=2;j
有没有人能告诉我,这个线程错误需要怎么改
我在一个winform里有一个侦听线程,在这个线程得到数据时,把值传给一个label里,这个label有一个textchang事件,在textchang事件里,执行一个过程。但是,在这个程执行的时候,就有问题了,侦听被停止,这个过程也没有全执行完。rn希望大家能帮我看看这个问题怎么解决?rn先谢谢了,最好谁有代码能给我一份。
希望有大神能帮我编写一个php源代码
希望能有大神帮我编写一个php小程序代码。rn具体功能是,我想用一个条形码扫描枪扫描退货生成的条形码,系统在读取到条形码后会自动打开退货申请单页面。
教教我
我想学Visual C++,看了很多这方面的书,可是总觉得还没入门,谁能教教我怎样快速入门??谢谢
教教我~
网络中的渗透应该怎么理解呢?谢谢
本人新手,希望高手教教我。
eclipse项目下的文件夹,如src,可以有几个?命名规范是啥?rnrn怎样导出项目??
教教我..
谁能告诉我把皇后问题?rn
教教我 。!
rn如果我要在DataGrid里面显示分别查询两个不同的数据库并显示出来,怎么办?rnrn比如:我要在C:中显示出来的文件中既有文件夹又有象WORD文档之类的文件,。但是我显示文件夹和WORD文档是从不同的两个数据库里查询出来的! 那么我要显示在同一个DataGrid中,怎么显示??rn各位高手帮帮忙!!!!!!!!! rnrnrn还有一个问题 ,就是在DataGrid中进行数据传递时,我用这样的语句!rnstring a= Request.QueryString["ID"].ToString();rn但是我传过来的字符怎么都少了最后一个字了,比如:当我在数据库的Name是:“我的爱”rn时,它只会显示“我的”,就少了一个“爱“字不会显示了,而我在定义Name是有20个字节的,已经够显示3个文字了。rn那是什么原因呢 /?? rn
教教我!!!!!!!!
我刚学VB!教程里要我编一个加减运算的程序,我不懂,请哪位高手指点指点!谢谢!
相关热词 c# 标准差 计算 c#siki第五季 c#入门推荐书 c# 解码海康数据流 c# xml的遍历循环 c# 取 查看源码没有的 c#解决高并发 委托 c#日期转化为字符串 c# 显示问号 c# 字典对象池