java中增加用户信息_JAVA原生mvc实现用户信息的增删查改

本文介绍了使用JAVA原生方式实现用户信息管理的MVC模式,包括用户登录、注册及增删查改功能。通过自定义BaseServlet类,覆盖service方法并结合反射技术,实现了动态调用不同方法处理HTTP请求。文章提供了核心代码示例,并建议读者查看GitHub上的完整源代码。
摘要由CSDN通过智能技术生成

笔者最近学完jsp和servlet,于是心血来潮的打算写个简单的用户案例

环境准备:

开发工具eclipse

jdk-1.8.0_72

tomcat-9.0.5

01a022aa596d9bae4034229da207195f.png

前端部分:

1.自己手写了一套样式

2.使用ajax交互

目录结构:

java目录:

ec5489ff8b66caa3b80e9144072436c7.png

前端目录

1a61072c5a6c8c9a2130dd963fa14f0b.png

需求分析:

1.能够实现用户的登录和注册

2.能够实现对用户信息的增删查改

3.登录过一次的用户保存登录记录,也就是记录session

由于笔者不是很擅长写界面,所以后台界面部分不是写的很好看,这里就先预览一遍

7799341d916e4d7df4b202f86761d610.png

接下来我把最最最核心的部分贴出来

首先我们都知道HttpServlet这个类中已经帮我们实现了doGet和doPost,可是如果请求的后台url一多,不可能每个都单独写成一个类,所以这两个方法根本不可取,我们要的是一个类中的多个方法都能被我们以url传参的形式访问。

例如:http://localhost:8080/demo1/xxx?method=login

于是我在资料中翻到了这么一段话。

e0786c082f923e11b7769b37a0d13e4d.png

注意蓝色字体,HttpServlet的实现关键在于覆盖了service方法,因此我们只要自己写一个类覆盖HttpServlet中的service方法就OK了

其实很多代码只要照搬HttpServlet就OK了,想要实现我们的功能,那么就加上反射的思路进去就OK了

1 public class BaseServlet extendsHttpServlet {2 /*

3 * 它会根据请求中的m,来决定调用本类的哪个方法4 */

5 protected voidservice(HttpServletRequest req, HttpServletResponse res)6 throwsServletException, IOException {7 req.setCharacterEncoding("UTF-8");8 res.setContentType("text/html;charset=utf-8");9

10 //例如:http://localhost:8080/demo1/xxx?method=login

11 String methodName = req.getParameter("method");//它是一个方法名称12 //System.out.println(methodName);13

14 //当没用指定要调用的方法时,那么默认请求的是execute()方法。

15 if(methodName == null ||methodName.isEmpty()) {16 methodName = "execute";17 }18 Class c = this.getClass();19 try{20 //通过方法名称获取方法的反射对象

21 Method m = c.getMethod(methodName, HttpServletRequest.class,22 HttpServletResponse.class);23 //反射方法目标方法,也就是说,如果methodName为add,那么就调用add方法。

24 String result = (String) m.invoke(this, req, res);25 //通过返回值完成请求转发

26 if(result != null && !result.isEmpty()) {27 req.getRequestDispatcher(result).forward(req, res);28 }29 } catch(Exception e) {30 throw newServletException(e);31 }32 }33 }

有了这个类之后,我们自己就可以创建一个controller的包

里面的类继承上面的BaseServlet类

8d50505f871f2cb551eaac2593e4b65e.png

OK,本次案例到此结束,更多的细节请去看github中的源代码

如果有幸这篇随笔能被某位路人朋友看到,笔者此谢谢观看啦

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值