【JSP】用户信息界面操作 ---- 用户信息修改



用户信息界面操作 ---- 用户信息修改

Ⅰ.修改userinfo.jsp 实现修改页面跳转

  • 之前在设计userinfo.jsp中的操作内容时,并没有具体的实现。今天来实现一个简单的用户修改功能。
  • href="userUpdate.jsp?username=<%=resultSet.getString(2)%>"" 这里使用超链接的方式将当前界面的要修改的用户的姓名传入新的页面userUpdate.js进行处理。
<td>
    <%--问号右边表示要传递的内容--%>
    <a href="DeleteServlet?username=<%=resultSet.getString(2)%>" style="color: red">删除</a>
    |
    <a href="userUpdate.jsp?username=<%=resultSet.getString(2)%>" style="color:blue">修改</a>
    |
    <a href="#" style="color:blue">修改头像</a>
</td>

返回顶部


Ⅱ.创建 userUpdate.jsp 修改页面

这里主要包含以下几个部分:

  • 首先在进入修改界面的时候,会显示出原有的用户信息,所以整个页面的构架和注册时候的基本一致。
  • 在展现之前的用户信息时需要从数据库导出对应的信息(用户名、密码、性别、年龄、爱好等),基于页面操作,这里采用javascript(将获取的值放入value属性中实现展示)。
  • 其中还有一个难点,就是让具有的爱好在对应的复选框上进行勾选。由于爱好是以字符串的形式传输的,所以还是采用分割数组的方式处理,并且在checkHobby()方法中进行复选框勾选处理。获取当前用户的爱好数组、以及复选框具有的爱好数组,双重循环匹配对应,进行勾选checked
<%@ page import="java.sql.ResultSet" %>
<%@ page import="com.zte.dbHelper" %><%--
  Created by IntelliJ IDEA.
  User: 35192
  Date: 2021/2/18
  Time: 21:43
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>userUpdate</title>
</head>

<!--  调用checkHobby()方法实现爱好复选框勾选 -->
<body onload="checkHobby()">

<!--  利用javascript获取要修改的用户信息 -->
<%
    request.setCharacterEncoding("UTF-8");
    String username = request.getParameter("username");
    dbHelper db = new dbHelper();
    ResultSet rs = db.updataShow(username);
    String id =" ";
    String sex =" ";
    String age =" ";
    String hobby =" ";
    String pwd =" ";
    String phone = " ";
    if(rs.next()) {
        id = String.valueOf(rs.getInt(1));
        age= String.valueOf(rs.getInt(4));
        pwd = rs.getString(3);
        sex= rs.getString(5);
        hobby= rs.getString(6);
    }

    // 定义数组,将hobby分割为数组
    String newhobby[] = new String[4];
    newhobby = hobby.split(",");
%>

<div align="center">
    <h1>用 户 修 改</h1>
    <form action="/upDateServlet" method="post">
        <table>
            <tr>
                <td>序号</td>
                <td><%=id%></td>
            </tr>
            <tr>
                <td>用户名:</td>
                <td><input type="text" name="username" readonly value="<%=username%>"></td>
            </tr>
            <tr>
                <td>密码:</td>
                <td><input type="password" name="pwd" placeholder="请输入密码" value="<%=pwd%>"></td>
            </tr>
            <tr>
                <td>手机号</td>
                <td>
                    <input type="text" name="phone" placeholder="请输入手机号" maxlength="11" value="<%=phone%> ">
                </td>
            </tr>
            <tr>
                <td>性别:</td>
                <td>
                    <%if (sex.equals("男")){%>
                    <input type="radio" name="sex" value="男" checked><input type="radio" name="sex" value="女"><%}else{%>
                    <input type="radio" name="sex" value="男"><input type="radio" name="sex" value="女"checked><%}%>
                </td>
            </tr>
            <tr>
                <td>年龄</td>
                <td><input type="text" name="age" placeholder="请输入年龄" maxlength="2" value="<%=age%>"></td>
            </tr>
            <tr>
                <td>爱好:</td>
                <td>
                    <input type="checkbox" name="hobby" value="打游戏">电子竞技
                    <input type="checkbox" name="hobby" value="吃饭">美食鉴赏
                    <br>
                    <input type="checkbox" name="hobby" value="发呆">思考人生
                    <input type="checkbox" name="hobby" value="睡觉">养精蓄锐
                </td>
            </tr>
            <tr align="center">
                <td colspan="2">
                    <input type="submit" value="修改"/>
                    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
                    <input type="reset" value="重填"/>
                </td>
            </tr>
        </table>
        <input type="text" value="<%=hobby%>" id = "oldhobby">
    </form>
</div>
<script type="text/javascript">
    function checkHobby() {
        var hobby = document.getElementById("oldhobby").value; # 利用爱好输入框进行过度
        var newHobby = hobby.split(",");
        var checkHobby = document.getElementsByName("hobby")
        for (var i=0;i<newHobby.length;i++){
            for (var j=0;j<checkHobby.length;j++){
                if (newHobby[i] == checkHobby[j].value){
                    checkHobby[j].checked = "checked";
                }
            }
        }
    }
</script>
</body>
</html>

Ⅲ.完善 dbHelper类,添加用户修改方法

这里包含了三部分:

  • 在进入修改界面的时候,会展示出修改之前的用户信息
  • 实现用户修改功能的方法
  • 在进行用户信息修改的时候我们对其添加了限制 --- 手机号的前三位,并且保证修改信息中号码一栏为数字
/**
* userinfo.jsp页面操作之修改用户信息
* @param username
* @return
*/
public ResultSet updataShow(String username){
    try{
        getConnection();
        String sql = "select*from userinfo_copy1 where username=?";
        preparedStatement = connection.prepareStatement(sql);
        preparedStatement.setString(1,username);
        resultSet = preparedStatement.executeQuery();

    }catch (Exception e){
        e.printStackTrace();
    }
    return resultSet;
}
/**
 *  修改用户信息
 * @param username
 * @param pwd
 * @param age
 * @param sex
 * @param hobby
 * @param phone
 * @return
 */
public  int upData(String username,String pwd,int age,String sex,String hobby,String phone){

    try {
        if(isNumeric(phone) & ( phone.startsWith("132") | phone.startsWith("188") | phone.startsWith("158") ) & phone.length()==11 ){
            getConnection();
            String sql = "update userinfo_copy1 set pwd=?,age=?,sex=?,hobby=?,phone=? where username=?";
            preparedStatement = connection.prepareStatement(sql);
            preparedStatement.setString(1,pwd);
            preparedStatement.setInt(2,age);
            preparedStatement.setString(3,sex);
            preparedStatement.setString(4,hobby);
            preparedStatement.setString(5,phone);
            preparedStatement.setString(6,username);
            int num =preparedStatement.executeUpdate();
            if (num>0){
                return 1;
            }else {
                return 2;
            }
        }else {
            return 3;
        }
    }catch (Exception e){
        e.printStackTrace();
        return 0;
    }
}
    
// 判断字符串是否为数字
public static boolean isNumeric(String str) {
   Pattern pattern = Pattern.compile("^(\\-|\\+)?\\d+(\\.\\d+)?$");
   Matcher isNum = pattern.matcher(str);
   if (!isNum.matches()) {
       return false;
   }
   return true;
}

返回顶部


Ⅳ.创建 upDataServlet,实现用户信息修改功能

  • 这一部分的操作就相当于是创建新的用户。
import com.zte.dbHelper;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;

@WebServlet(name = "upDateServlet",urlPatterns = "upDateServlet")
public class upDateServlet extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");
        response.setCharacterEncoding("UTF-8");
        request.setCharacterEncoding("UTF-8");

        PrintWriter out = response.getWriter();

        String username = request.getParameter("username");
        String pwd = request.getParameter("pwd");
        String sex = request.getParameter("sex");
        int age = Integer.parseInt(request.getParameter("age"));
        String hobby[] = request.getParameterValues("hobby");
        String newHobby = "";
        String phone = request.getParameter("phone");

        // 将爱好数组转为字符串
        for(int i=0;i<hobby.length;i++){
            if(i==hobby.length-1){
                newHobby += hobby[i];
            }else{
                newHobby += hobby[i] + ",";
            }
        }

        dbHelper db = new dbHelper();
        switch (db.upData(username,pwd,age,sex,newHobby,phone)){
            case 0:
                out.println("<script>");
                out.println("alert('系统错误');");
                out.println("window.location='userUpdata.jsp';");
                out.println("</script>");
                break;
            case 1:
                out.println("<script>");
                out.println("alert('修改成功');");
                out.println("window.location='userinfo.jsp';");
                out.println("</script>");
                break;
            case 2:
                out.println("<script>");
                out.println("alert('修改失败');");
                out.println("window.location='userUpdata.jsp';");
                out.println("</script>");
                break;
            case 3:
                out.println("<script>");
                out.println("alert('手机号码格式不正确!');");
                out.println("window.location='userinfo.jsp';");
                out.println("</script>");
                break;
        }

        // 刷新关闭
        out.flush();
        out.close();
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doPost(request,response);
    }
}

返回顶部


Ⅴ.效果展示

修改前:
在这里插入图片描述
在这里插入图片描述
修改后:
在这里插入图片描述
在这里插入图片描述

返回顶部


上一篇:用户信息界面操作 ---- 删除

  • 15
    点赞
  • 108
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
(一)可行性分析 1. 系统开发的目标 1. 能够实现商品的浏览、显示商品的基本信息,且通过点击商品链接显示出手机的详细信息。 2.购买手机,一次能够买多部,对未付款的订单能进行退订。 3.用户基本信息的查询。管理员对用户、商品、订单的管理。 4.通过反馈、实现网站的互动。 5.通过表与表之间的关系,实现级联更新,触发器的建立,在用户购买、删除、修改手机数量时,能实现商品信息表的更新。 2 . 技术可行性分析 Web技术的迅猛发展正推动Internet上信息服务类的进步,WWW服务的基础是HTML语言,这个系统模块中用到的JSP技术是在HTML语言的基础上使用脚本语言对网页的对象模型进行编程,JSP全称Java Server Pages,它是由Sun Microsystems公司提出、许多公司参与建立的一种动态网页技术标准,它诞生在1999年6月1日,目前国内外已经在广泛地使用JSP,随着JAVA语言得到普及,越来越多的公司开始关注JSP的前景。 1)作为Java平台的一部分,JSP拥有Java编程语言“一次编写,各处运行”的特点,一次写入之后,可以运行在任何具有符合Java语法结构的环境,取代之过去单一平台开发。 2)从开发人员的角度来看JSP技术提供的组件都是基于Javabean技术或JSP标签库。3)JSP标签可扩充性。JSP技术能够使用开发者扩展JSP标签,JSP开发者能定制标签库,减少对脚本语言的依赖。 3)易于维护性。 基于JSP技术的应用程序比基于ASP的应用程序易于维护和管理,JSP突出的组件技术使修改内容而不影响逻辑或修改逻辑而不影响内容变得很容易实现。 JSP技术编写的程序运用要更加灵活,可扩展性更强,在现有技术条件下,能够完成功能目的。 (二)需求分析 本小组同组人:黄成志,刘霞梅,胡娟,陈茜 随着信息时代的发展,越来越多的人开始喜欢上网上购物,网上购物将成为人们购物的主流。一个好的购物网站更能吸引人们的眼球。 网上购物主要是实现网上查询商品、购买商品、生成相应的订单等功能的系统。一个典型的网上购物系统一般需要有商品信息的动态展示、购物车管理、用户注册登录管理、订单处置、管理用户信息等模块。 本系统需要完成的具体任务如下: 一,前台管理。 1.用户注册:当用户需要购买商品时,首先就需要先注册一个会员,会员需要有详细的信息,这样才能方便管理员下发订单。 2.用户登录:每一个会员都需要登录到自己的主界面,方才能实现订单,购物。 3.商品查询:当用户进入购物网站首先就是要查询相关的商品信息,如:按照不同的手机的品牌查看,同时还应该提供按照商品名称和商品型号等关键字快速查询所需的商品信息的功能。 4.购物车管理:当用户选择购买某种商品时,应该能够将对应的商品信息记录到购物车里面,并允许用户返回到其他商品信息查询页面,继续选择其他商品。同时用户还应该可以在购物车中执行删除商品、添加商品及清除购物车等操作。但对应的购物车的订单生成后,购物车的信息自动清除。 5.订单处理:在用户选择去收银台之后,提示用户选择送货方式及付款方式,最终生成对应的订单记录,以便于网站配送人员依据订单信息进行后续的出货、送货的处理,同时用户也可以随时进入订单管理页面,查询与自己相关的订单信息,并可以随时取消订单 6.会员信息管理:为了能够实现商品的购买,会员需要注册并正确登陆,由此产生用户相关信息,如联系方式、供货地点等需要有系统进行管理。同时也应该允许用户修改自己的相关资料。 7.用户退出。 二,后台管理。 1.商品分类管理:通过该模块,网站管理人员可以根据需要增加新的商品类别也可以对已有的商品分类进行修改、删除等操作。 2. 商品信息管理:为了确保网上商城种商品信息的实效性,管理人员可以借助该模块随时增加新的商品信息,同时亦可以对原有的商品进行修改及删除等操作。 3.注册用户管理:管理人员可以通过该模块查询对应的用户信息,并可以冻结、解冻用户。 4.后台订单处理:后台人员可以借助该模块查询订单信息、审核订单信息和修改订单信息,以便与网站配货人员依据订单信息进行后续的出货、送货的处理。对于已经处理过的订单,也应该保留历史记录,以便于管理人员进行查询。 5.管理员的管理:主管理员可以通过该模块添加、删除和修改管理员资料。 6.管理员资料管理:管理员可以通过该模块查询、修改和删除自己的相关信息,例如:修改密码,用户名等。 7.管理员的登录与退出:管理员可以通过该模块登录和退出系统。 (三)系统 1. 系统概述 运行环境:Tomact+JDK 编程模式:JSP+JavaBean+JavaServlet 后台数据库:SQL 2005 系统主要完成的功能如下: 客户部份 .客户登录 客户注册 .手机选购(可按分类方式查询手机品牌,或通过关键字查询) .购物车功能 .查看手机品牌详细情况 .查看用户的订单情况 .修改用户个人信息 管理部分 .现有手机管理(增、修、删、查) .用户管理(修、删、查) .订单管理(查看订单清单、更新订单付款、出货状况、删除订单) .添加手机分类 .发布手机品牌信息 2. 系统特点 .页面模块化 .三层结构设计 程序逻辑结构分用户界面、业务逻辑处理和数据存储 .面向对象设计 .人性化设计
JspRun!- 最棒的免费的开源Java社区软件系统 JspRun!论坛软件系统简介 论坛软件系统亦称电子公告板(BBS)系统,它伴随社区BBS的流行而成为互联网最重要的应用之一,也逐渐成为网站核心竞争力的标志性体现。2006年7月 CNNIC 发布的最新统计表明,43.2% 的中国网民经常使用论坛/BBS/讨论组,论坛社区应用首次超过即时通讯 IM ,成为仅次于收发Email的互联网基本应用。 JspRun!是飞速创想(北京)科技有限公司推出的一套通用的社区论坛软件系统,用户可以在不需要任何编程的基础上,通过简单的设置和安装,在互联网上搭建起具备完善功能、很强负载能力和可高度定制的论坛服务。JspRun! 的基础架构采用世界上最先进流行的 web 编程组合 JAVA MySQL 实现,是一个经过完善设计,适用于各种服务器环境的高效论坛系统解决方案。系统采用struts、hibernate框架及中间件的结合既实现了业务逻辑与控制逻辑的有效分离,提高了层次结构的清晰度,提高了复用的粒度降低了开发代价和维护代价,同时保证了软件的质量使其更具有鲁棒性和可维护性。 JspRun! 开发组具有丰富的 web 应用程序设计经验,尤其在论坛产品及相关领域,经过长期创新性开发,掌握了一整套从算法,数据结构到产品安全性方面的领先技术。使得 JspRun! 无论在稳定性,负载能力,安全保障等方面都居于国内外同类产品领先地位。 2009年4月23日更新内容部分列表 修复功能 1、修复了非法请求资源 2、修复了jsp脚本在一些特殊条件下会产生一个以上的实例,造成脚本执行不同步 3、修复了jsp脚本下次执行时间错误 4、修复了上传附件数组越界,附件来路检查无效,附件下载付费功能无效,下载附件扣除积分错误 5、修复了上传附件的存放路径动态获取 6、修复了清空帖子回收站的时没有删除远程附件 7、修复了查看短消息空指针异常及关键字搜索短消息无效 8、修复了生存缓存文件截取修改时间异常 9、修复了禁止浏览器缓冲功能 10、修复了生成验证码的访问路径 11、修复了主题操作在某些条件下会出错 12、修复了个人空间显示效果,包括文集、昵称、收藏版块、主题图标等 13、修复了上传图片时如果图片是动画为该图片生成缩略图和水印图片 14、修复了在gbk项目下无法保存ftp密码的问题 15、修复了合并用户时合并短消息异常 16、修复了主题自动关闭后仍可以回复的问题 17、修复了编辑主题时缺少主题分类选项,显示信息类别的效果及不能预览远程附件服务器上的图片 18、修复了Archiver 功能在 URL 非静态化的条件下无法正常访问 19、修复了论坛会员个人设置时区无效 20、修复了jspruncode的html解析错乱,如table表格,img图片标签 21、修复了版主超版部分后台权限 22、修复了主题付费、附件付费无效的问题 23、修复了积分交易功能无效的问题 24、修复了Wap设置时的页面错误、wap查看回帖时的分页信息、wap发帖回帖乱码的问题 25、修复了新用户注册无法保存个性签名等若干bug 26、修复了三元运算符以兼容更多的web服务器(如jboss、resin等) 27、修复了广告数量不能整除时无法显示广告的问题 28、修复了“系统错误记录”无法写入的问题 29、修复了后台操作中如果 session 过期重新登陆后出现循环跳转 30、修复了恶意访问后台权限判断,个人签名过滤恶意html代码的问题 31、修复了全文检索不精确 32、修复了如果域名中多一个"/"符,后台表情搜索失效 33、修复了注册时生日输入特殊字符出错的问题 34、修复了删除会员组后计算会员组错误 35、修复了插件版权信息设置错误的问题 36、修复了用户设置界面风格后,第一次访问时界面设置无效问题 37、修复了wap发帖回帖成功后今日发帖数不变的问题以及主题浏览无分页问题 38、修复了浏览帖子时以及查看短消息内容时解析特殊字符$出错的问题 39、更多细节问题的修复 优化功能 1、优化了页面缓存类及页面缓存生成方式 2、优化减少过滤器中的sql查询语句 3、优化减少版块帖子列表sql查询语句 4、优化个人空间 5、优化验证问答 6、优化快速编辑帖子的提交方式和帖子附件下载次数 7、优化搜索的排序方式 8、升级优化序列化类 9、优化统计功能 10、优化所有页面分页功能 11、优化首页,帖子列表,帖子浏览页面,大大减少页面大小,增加浏览速度,减少服务器访问流量 12、优化thread页面解析特殊代码,避免出现死循环, 13、更多细节方面的优化 新增功能 1、增加了远程附件服务器附件下载功能,可以最大限度减轻论坛服务器负担 2、增加了注册页面可添加广告 3、增加了更改访问端口号功能 4、增加了论坛插件功能 5、增加了商品发布功能(包括财付通功能、积分充值功能及相关的论坛交易功能) 6、增加了注册时用户名中如含有'号则屏蔽该用户名

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

骑着蜗牛ひ追导弹'

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值