JavaWeb课程设计:用户和商品管理系统(1),简单聊聊2024年Python开发的现状和思考

document.getElementById(“email-input”).style = “border:0px;”

}

emailEnable = flag;

}else{

emailEmpty = true;

}

}

$(document).ready(function () {

$(“#name-input”).focus();

//全局检查并判断是否可以提交

$(“#Submit”).click(function () {

if(nameEmpty){

document.getElementById(“name-input”).style = “border:2px solid red;”

alert(“请输入用户名!”);

return;

}else if(pwd1Empty){

document.getElementById(“pwd-input1”).style = “border:2px solid red;”

alert(“请输入密码!”);

return;

}else if(pwd2Empty){

document.getElementById(“pwd-input2”).style = “border:2px solid red;”

alert(“请再次输入密码!”);

return;

}else if(telEmpty){

document.getElementById(“tel-input”).style = “border:2px solid red;”

alert(“请输入电话号码!”);

return;

}else if(emailEmpty){

document.getElementById(“email-input”).style = “border:2px solid red;”

alert(“请输入邮箱!”);

return;

}else if(!nameEnable){

return;

}else if(!pwdEnable){

return;

}else if(!telEnable){

return;

}else if(!emailEnable){

return;

}

$(“#Form”).submit();

});

});

三、提交数据库


从注册页面获得参数,并提交数据到数据库。这是JavaWeb的基础,就不详细解释了。

登录界面

===============================================================

一、表单


HTML的form表单。和注册页面的类似,从数据库查找数据并验证密码。

二、密码检查


  • 验证成功,使用Session传递用户User类型变量

  • 验证失败,返回登录界面并保留输入的用户名

public class Login extends HttpServlet {

public void service(HttpServletRequest request, HttpServletResponse response)

throws IOException {

//获取登陆的用户名和密码

String loName = request.getParameter(“Name”);

String loPwd = request.getParameter(“Pwd”);

String userName;

String res; //返回的信息,若登陆成功则返回空字符串,若登陆失败返回错误信息

try {

//获取用户账号列表

List userList = User_dataList.get();

//遍历

for (User userItem : userList) {

//用于登录失败后用户名不消失

if (userItem.getName().equals(loName)) {

if(userItem.getPwd().equals(loPwd)){

//匹配成功

//创建Session并携带用户信息的参数loginUser

HttpSession session = request.getSession();

session.setAttribute(“loginUser”, userItem);

//跳转至个人信息界面,

request.getRequestDispatcher(“Main.jsp”).forward(request, response);

}else{

//匹配失败,密码错误

userName = userItem.getName();

res = “账号或密码错误,请检查!”;

request.setAttribute(“res”,res);

request.setAttribute(“userName”,userName);

request.getRequestDispatcher(“LoginPage.jsp”).forward(request ,response);

}

}

}

//匹配失败,返回错误信息

} catch (Exception e) {

e.printStackTrace();

}

}

}

主界面

==============================================================

导航栏与菜单

将MySQL数据库的数据渲染到LayUI数据表格中

数据表格

LayUI数据表格中的删除和修改操作事件对应的js代码为

table.on(‘tool(test)’, function(obj){

//tool 是工具的事件名,test 是 table 原始容器的属性 lay-filter=“对应的值”

if(obj.event === ‘del’){

//修改操作

//obj为点击的数据对象,包含name,tel等属性

}

else if(obj.event === ‘edit’){

//修改操作

}

(1)删除操作

if(obj.event === ‘del’){

var delName = obj.data.name;

//在执行obj.del()执行前将要删除的用户名存储 并用于URL参数

//因为不确定执行obj.del()后是否会被释放而导致找不到数据

layer.confirm(‘删除成功’, function(index){

obj.del();

layer.close(index);

});

window.location.href= ‘delUser?delName=’ + delName;

//window.location.href = ‘url’ JS跳转页面的方法之一

//delUser为Servlet的url , delName为要删除的用户的用户名

}

(2)修改操作

首先读清楚LayUI官方文档中关于弹窗layer.prompt(option ,yes)的使用

  • title:弹窗的标题

  • value:输入框的值,可以设定初始值

  • form:输入框类型

  • yes:回调函数function(value , index ,elem){} 获取输入框的value值执行操作

由于修改数据需要修改的字段名和修改的值两个数据,layer.prompt()弹出层又无法设定两个输入框。所以我在第一个弹窗的回调函数中再增加一个弹窗,以获取两个数据。

if(obj.event === ‘edit’){

layer.prompt({

//输入字段名的弹窗

formType: 0,

value: ‘’,

title:‘请输入修改字段名’

}, function(value, index ,elem){

var field = value; //中文字段名

var fieldName = value;

var oldValue = ‘’; //原值

//通过输入的中文字段名判断是数据库中的哪个字段,并在obj对象中获取该字段的原值

if(field === ‘用户名’) { field = ‘name’; oldValue = obj.data.name;}

else if(field === ‘电话’){ field = ‘tel’; oldValue = obj.data.tel;}

else if(field === ‘邮箱’){ field = ‘email’; oldValue = obj.data.email;}

else if(field === ‘昵称’){ field = ‘nickName’; oldValue = obj.data.nickName;}

else if(field === ‘住址’){ field = ‘address’; oldValue = obj.data.address;}

//修改字段的值弹窗

layer.prompt({

formType: 0,

value: oldValue, //将默认值设置为原来的值

title: ‘将’+fieldName+‘修改为’

},function (value, index, elem){

window.location.href=

‘updateUser?updateField=’+field //字段名

+‘&updateValue=’+value //修改的值

+‘&updateId=’ +obj.data.id.toString();

// 跳转到Servlet服务器进行修改,数据表中id作为主键,修改数据需要id值

// 这里最将int类型的obj.data.id转换成字符串类型

layer.close(index);

})

console.log(value,index,elem);

layer.close(index);

});

}

将左侧菜单与主题内容对应

1、通过jQuery和JS函数实现:定义一个对象类型的变量menusStatus,表示每个菜单内容是否显示

var menusStatus = {

//初始状态

indexShow : true, //首页

userTableShow : false, //用户表格

page2Show : false,

page3Show : false

}

2、定义一个函数FreshMenusStatus(),根据menusStatus对象各个内容的状态来判断是否需要显示,若有内容增加需要在该函数中多加一组if-else判断。

function FreshMenusStatus(){

//根据menusStatus对象中的值来判断元素是否显示

if(menusStatus.indexShow){ $(“#indexPage”).show();}

else { $(“#indexPage”).hide();}

if(menusStatus.userTableShow){ $(“#userTable-div”).show();}

else{ $(“#userTable-div”).hide();}

if(menusStatus.page2Show){ $(“#page2”).show();}

else { $(“#page2”).hide();}

}

3、这里需要再定义一个函数setStatusAllHide()(后面会用到),作用是将menusStatus中的状态(值)全部置为false。

function setStatusAllHide(){ //设置所有元素状态隐藏 for (var key in menusStatus){ menusStatus[key] = false; }}

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Python工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Python开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
img
img



既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Python开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以添加V获取:vip1024c (备注Python)
img

最后

Python崛起并且风靡,因为优点多、应用领域广、被大牛们认可。学习 Python 门槛很低,但它的晋级路线很多,通过它你能进入机器学习、数据挖掘、大数据,CS等更加高级的领域。Python可以做网络应用,可以做科学计算,数据分析,可以做网络爬虫,可以做机器学习、自然语言处理、可以写游戏、可以做桌面应用…Python可以做的很多,你需要学好基础,再选择明确的方向。这里给大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

👉Python所有方向的学习路线👈

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。

👉Python必备开发工具👈

工欲善其事必先利其器。学习Python常用的开发软件都在这里了,给大家节省了很多时间。

👉Python全套学习视频👈

我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。

👉实战案例👈

学python就与学数学一样,是不能只看书不做题的,直接看步骤和答案会让人误以为自己全都掌握了,但是碰到生题的时候还是会一筹莫展。

因此在学习python的过程中一定要记得多动手写代码,教程只需要看一两遍即可。

👉大厂面试真题👈

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

g)

👉Python全套学习视频👈

我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。

👉实战案例👈

学python就与学数学一样,是不能只看书不做题的,直接看步骤和答案会让人误以为自己全都掌握了,但是碰到生题的时候还是会一筹莫展。

因此在学习python的过程中一定要记得多动手写代码,教程只需要看一两遍即可。

👉大厂面试真题👈

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

  • 10
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值