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

article/2025/9/11 23:54:28

文章目录

  • 用户信息界面操作 ---- 用户信息修改
    • Ⅰ.修改userinfo.jsp 实现修改页面跳转
    • Ⅱ.创建 userUpdate.jsp 修改页面
    • Ⅲ.完善 dbHelper类,添加用户修改方法
    • Ⅳ.创建 upDataServlet,实现用户信息修改功能
    • Ⅴ.效果展示


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

Ⅰ.修改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: 35192Date: 2021/2/18Time: 21:43To 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);}
}

返回顶部


Ⅴ.效果展示

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

返回顶部


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


http://chatgpt.dhexx.cn/article/tMjCW3jm.shtml

相关文章

windows本地git账户信息修改

git账户发生变化&#xff0c;比如密码修改或者项目种账户进行替换本地账户如何修改和切换&#xff1f; 1、进入控制面板 2、点击 用户账户 3、点击管理“管理Windows凭据”&#xff0c;进入凭据管理界面 4、选择需要修改的git账户对应的地址&#xff0c;点击右侧的箭头&#x…

Android设备信息修改器,如何更改android手机的设备号信息

工具/原料 手机信息修改器 手机已root Xposed框架 方法/步骤 首先我们看在没使用手机信息修改器(琢石模拟器)的情况下&#xff0c;手机的串号是多少&#xff0c;可以看到这个机器的串号是空的。 打开手机信息修改器(琢石模拟器)&#xff0c;进入虚拟环境中&#xff0c;一键生成…

Git系列之修改历史提交信息

文章の目录 1、查看 git 提交记录2、修改最近两个或者两次上的commit信息3、扩展&#xff1a;修改上一次git commit 提交的信息参考写在最后 1、查看 git 提交记录 git log2、修改最近两个或者两次上的commit信息 比如我这里有三次提交 使用命令&#xff1a; git rebase -i…

ssh服务器banner信息,几种情况下的banner信息修改

一.telnet 当telnet建立连接時&#xff0c;修改主机会出现的提示信息 1.先编辑一個要显示的信息 # vi /etc/telnet.msg this is a telnet message! 2.在/etc/inetd.conf中的telentd后加上-b 选项&#xff0c;指定包含信息的文件 telnetd stream tcp nowait root /usr/lbin/teln…

如何更改计算机的用户信息,如何更改电脑的账户信息

电脑已经成为生活中必不可少的工具之一&#xff0c;电脑中存放重要的数据资料等&#xff0c;因此保护我们的系统安全是非常重要的事。设置电脑的账户信息可以提升电脑的安全性能&#xff0c;对帐号定期管理也是很有必要的。下面小编就教教大家怎么更改电脑的账户信息。 步骤如下…

修改计算机基本信息,windows10系统下怎样更改基本信息中的制造商型号

如果用户是使用GHOST版安装的windows10系统&#xff0c;那么计算机基本信息里的型号都会提供商的信息&#xff0c;型号也会一样。有些朋友觉得不爽&#xff0c;就想要如何修改WIN10里基本信息中的制造商型号。这该如何操作呢&#xff1f;接下来&#xff0c;就随小编看看具体操作…

计算机硬件信息被修改怎么还原,修改bios硬件信息方法

你们知道怎么BIOS的硬件信息怎么修改吗?下面是学习啦小编带来修改bios硬件信息方法的内容&#xff0c;欢迎阅读! 修改bios硬件信息方法&#xff1a; 按下主机箱上的开机键&#xff0c;在电脑出现第一屏幕信息时&#xff0c;屏幕会有进入CMOS按键提示信息(注&#xff1a;不同品…

使用SpringBoot配置信息修改服务器配置

SpringBoot &#x1f34c; 掌握基于SpringBoot框架的程序开发步骤 今日目标&#xff1a; 熟练使用SpringBoot配置信息修改服务器配置 1 配置文件 1.1 配置文件格式 我们现在启动服务器默认的端口号是 8080&#xff0c;访问路径可以书写为 http://localhost:8080/books/1在…

【Go实战 | 电商平台】(6) 用户信息修改

文章目录 写在前面1. 路由注册2. 函数编写2.1 service层2.2 api层 3. 服务编写4. 验证 写在前面 由于用户的登录涉及到了身份这一方面的认证&#xff0c;所以我们就可以通过JWT进行用户的鉴权&#xff0c;以确认用户的身份。 1. 路由注册 编写用户更新的请求路由 authed.PUT(…

github使用教程(二)【保姆级】{github desktop教程,github desktop的安装和配置}

下载github desktop 下载github desktop&#xff08;不选择Git&#xff0c;因为这个对于我这个初学者还有点复杂&#xff09; 官方下载地址&#xff1a;GitHub Desktop | Simple collaboration from your desktop github desktop setup 点击这个程序&#xff0c;登录你的gi…

使用github仓库

使用github仓库 一 创建仓库 1.注册github账户&#xff0c;登录后&#xff0c;点击"New respository " 2.在新页面中&#xff0c;输入项目的名称&#xff0c;勾选’readme.md’&#xff0c;点击’create repository’ 3.添加成功后&#xff0c;转到文件列表页面.…

GitHub使用指南——建立仓库、建立文件夹、上传图片详细教程

点击上方“小白学视觉”&#xff0c;选择加"星标"或“置顶” 重磅干货&#xff0c;第一时间送达 记录笔记&#xff0c;不能少了图片的解释&#xff0c;不知你是否是这样&#xff0c;反正我是比价喜欢有图片的说明&#xff0c;图片能够使得内容更加详细。 这篇博文就来…

gitHub使用记录

前言 之前一直用的都是Bitbucket&#xff0c;虽然gitHub很早就开通了&#xff0c;但是一直没有用它&#xff0c;今天算是第一次用吧。在配置上遇到了一些问题&#xff0c;在这里记录下来和大家一起分享。 什么是gitHub github是一个基于git的代码托管平台&#xff0c;付费用…

Linux使用GitHub

一、GitHub GitHub是一个面向开源及私有软件项目的托管平台&#xff0c;因为只支持git 作为唯一的版本库格式进行托管&#xff0c;故名GitHub 我们一直用GitHub作为免费的远程仓库&#xff0c;如果是个人的开源项目&#xff0c;放到GitHub上是完全没有问题的。其实GitHub还是…

MATLAB绘图颜色、线型设置

Matlab画图线型、符号及颜色汇总 Matlab基础之plot、plotyy的格式设置&#xff08;坐标&#xff0c;刻度&#xff0c;坐标值&#xff0c;不均匀的坐标轴显示&#xff09; Matlab画图常用的符号和颜色

Matlab plot画图线型、符号及颜色

一、画图线型、标记符、颜色的说明 来个简单的例子 figure,plot(Seg1,SS1_QJ1,k);hold on plot(Seg1,SS1_QJ1,ks) plot(Seg1,Q1*ones(length(Seg1)),r) xlabel(\bf{安装角}(),FontSize,10.508) %\bf是加粗的意思 %xlabel(\fontsize{10.508}\fontname{黑体}安装角\fontname{…

MATLAB 线型图

MATLAB 线型图 基本设置 线形 - Solid line (default) -- Dashed line : Dotted line -. Dash-dot line颜色 r Red g Green b Blue c Cyan m Magenta y Yellow k Black w White数据点的形状 Plus sign o Circle * Asterisk . Point x Cross s…

matlab画图(线条颜色以及线型)

类型表示含义颜色r红色y黄色k黑色w白色m品红c青蓝g绿色b蓝色线型-实线-.点划线--虚线:点线 例如&#xff1a; x0:pi/100:2*pi; ysin(x); plot(x,y) 运行结果如下图所示 &#xff1a; x0:pi/100:2*pi; y1sin(x); y2cos(x); figure; %%打开图窗命令 plot(x,y1,-.g);%%…

Matlab画图时的线型、标记以及颜色简记

文章目录 背景线型标记颜色例说 背景 使用Matlab画图的时候经常由于需要画图&#xff0c;但是总是忘了曲线颜色、线型以及标记&#xff0c;这里在这里记录下&#xff0c;方便查阅。 效果预览&#xff1a; LineSpec —线型&#xff0c;标记和颜色。 线型&#xff0c;标记和颜…

C语言中的递归

递归就是一个函数在它的函数体内调用它自身。执行递归函数将反复调用其自身&#xff0c;每调用一次就进入新的一层。直到某一条件跳出&#xff01; 例1、计算5的阶乘 例2、 #include <stdio.h> /* 定义获取单词数量的函数 */ int getWordNumber(int n) { if(n 1){r…