用户个人信息一般包括账号和个人基础信息两方面,已注册账号不允许修改,但可以修改密码,个人基础信息如登录名、真实姓名、性别、出生日期等。
在“用户中心”点击账号(邮箱)显示当前用户个人信息,并提供修改操作。
1、为账号(邮箱)添加操作链接
<a href="#" ><i class="fa fa-user fa-fw"></i> </a>
2、定义响应函数,加载用户数据,提供操作入口
function getUser(){ $.ajax({ type:'GET', async:true, url:'/user', dataType:'jsonp', success:function(result){ if(null==result.obj) window.location="/user/login.html"; else{ $('#subject').html(result.obj.realName); var htm='<a onclick="chgName()">修改名称</a> <a onclick="chgPswd()">修改密码</a>'; $('#secondSubject').html(htm); $('#content').html(''); } }, }); }
3、响应修改
function chgName(){ $.ajax({ type:'GET', async:true, url:'/user', dataType:'jsonp', success:function(result){ if(null==result.obj) window.location="/user/login.html"; else{ var htm='<div class="form-group input-group col-md-4">'; htm+='<span class="input-group-addon" style="width:80px">登 录 名</span>'; htm+='<input type="text" id="loginName" class="form-control" placeholder="登录名" value="'+result.obj.loginName+'">'; htm+='</div>'; htm+='<div class="form-group input-group col-md-4">'; htm+='<span class="input-group-addon" style="width:80px">真实姓名</span>'; htm+='<input type="text" id="realName" class="form-control" placeholder="真实姓名" value="'+result.obj.realName+'">'; htm+='</div>'; htm+='<button type="submit" class="btn btn-default" onclick="doChgName()">确认提交</button>' $('#content').html(htm); } }, }); }
4、执行修改
function doChgName(){ var loginName=$('#loginName').val(); var realName=$('#realName').val(); $.post("/user",{loginName:loginName,realName:realName},function(result){ var msg='操作成功'; if(result!=1) msg='操作失败'; easyDialog.open({ container : { content : msg }, autoClose : 2000 }); }); getUser(); }
5、Servlet代码
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String loginName=request.getParameter("loginName"); String realName=request.getParameter("realName"); Connection con=null; PreparedStatement pstmt=null; try{ Class.forName("com.mysql.jdbc.Driver"); String url="jdbc:mysql://localhost:3306/my_db?useUnicode=true"; url+="&characterEncoding=utf-8&serverTimezone=Asia/Shanghai"; con=DriverManager.getConnection(url,"root",""); pstmt=con.prepareStatement("update user set loginName=?,realName=? where email=?"); pstmt.setString(1,loginName); pstmt.setString(2,realName); pstmt.setString(3,(String)request.getSession().getAttribute("USERINSESSION")); int n=pstmt.executeUpdate(); response.setCharacterEncoding("UTF-8"); PrintWriter writer = response.getWriter(); writer.write(String.valueOf(n)); writer.close(); }catch(Exception e){ }finally{ if(pstmt!=null) try { pstmt.close(); } catch (SQLExc