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

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

环境准备:

开发工具eclipse

jdk-1.8.0_72

tomcat-9.0.5

cedb222e1dbea32e4246ec9639c291e7.png

前端部分:

1.自己手写了一套样式

2.使用ajax交互

目录结构:

java目录:

75c15196e9696befb80b7064c9e6cce3.png

前端目录

4e9a1d0f6771d7784859fad007ef0555.png

需求分析:

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

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

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

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

7799341d916e4d7df4b202f86761d610.png

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

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

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

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

32168e0ee44b43e2883473a6b6de870a.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类

48240aceeb9e539e2325e2c4bdb6eb1f.png

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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值