JAVA原生mvc实现用户信息的增删查改
笔者最近学完jsp和servlet,于是心血来潮的打算写个简单的用户案例
环境准备:
开发工具eclipse
jdk-1.8.0_72
tomcat-9.0.5

前端部分:
1.自己手写了一套样式
2.使用ajax交互
目录结构:
java目录:

前端目录

需求分析:
1.能够实现用户的登录和注册
2.能够实现对用户信息的增删查改
3.登录过一次的用户保存登录记录,也就是记录session
由于笔者不是很擅长写界面,所以后台界面部分不是写的很好看,这里就先预览一遍

由于代码量太多了,我就把这个项目放到了github上 https://github.com/chenCmengmengda/javaweb_user
接下来我把最最最核心的部分贴出来
首先我们都知道HttpServlet这个类中已经帮我们实现了doGet和doPost,可是如果请求的后台url一多,不可能每个都单独写成一个类,所以这两个方法根本不可取,我们要的是一个类中的多个方法都能被我们以url传参的形式访问。
例如:http://localhost:8080/demo1/xxx?method=login
于是我在资料中翻到了这么一段话。

注意蓝色字体,HttpServlet的实现关键在于覆盖了service方法,因此我们只要自己写一个类覆盖HttpServlet中的service方法就OK了
其实很多代码只要照搬HttpServlet就OK了,想要实现我们的功能,那么就加上反射的思路进去就OK了
1 public class BaseServlet extends HttpServlet {
2 /*
3 * 它会根据请求中的m,来决定调用本类的哪个方法
4 */
5 protected void service(HttpServletRequest req, HttpServletResponse res)
6 throws ServletException, 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 new ServletException(e);
31 }
32 }
33 }
有了这个类之后,我们自己就可以创建一个controller的包
里面的类继承上面的BaseServlet类

OK,本次案例到此结束,更多的细节请去看github中的源代码
如果有幸这篇随笔能被某位路人朋友看到,笔者此谢谢观看啦
JAVA原生mvc实现用户信息的增删查改的更多相关文章
- Java连接MySQL数据库及简单的增删查改操作
主要摘自 https://www.cnblogs.com/town123/p/8336244.html https://www.runoob.com/java/java-mysql-connect.h ...
- 基于SpringMVC+SpringJDBC的用户管理系统(增删查改)
鉴于MyBatis暂时不会用,所以用刚学的SpringJDBC代替,也很简洁.以下贴出几个重要的代码. 1.UserDaoImpl数据库操作实现类 package com.wxy.dao.impl; ...
- java操作ElasticSearch(es)进行增删查改操作
有时间是要了解一下ES这个东西的~ ---------------------------------------------------------------------------------- ...
- 6.在MVC中使用泛型仓储模式和依赖注入实现增删查改
原文链接:http://www.c-sharpcorner.com/UploadFile/3d39b4/crud-operations-using-the-generic-repository-pat ...
- java实现简单的数据库的增删查改,并布局交互界面
一.系统简介 1.1.简介 本系统提供了学生信息管理中常见的基本功能,主要包括管理员.管理员的主要功能有对学生信息进行增加.删除.修改.查找等操作,对信息进行管理,对信息进行修改.查找等操作 ...
- 在MVC中使用泛型仓储模式和依赖注入实现增删查改
标签: 原文链接:http://www.c-sharpcorner.com/UploadFile/3d39b4/crud-operations-using-the-generic-repository ...
- java:Hibernate框架1(环境搭建,Hibernate.cfg.xml中属性含义,Hibernate常用API对象,HibernteUitl,对象生命周期图,数据对象的三种状态,增删查改)
1.环境搭建: 三个准备+7个步骤 准备1:新建项目并添加hibernate依赖的jar文件 准备2:在classpath下(src目录下)新建hibernate的配置文件:hibernate.cf ...
- 后端Spring Boot+前端Android交互+MySQL增删查改(Java+Kotlin实现)
1 前言&概述 这篇文章是基于这篇文章的更新,主要是更新了一些技术栈以及开发工具的版本,还有修复了一些Bug. 本文是SpringBoot+Android+MySQL的增删查改的简单实现,用到 ...
- 4.在MVC中使用仓储模式进行增删查改
原文链接:http://www.c-sharpcorner.com/UploadFile/3d39b4/crud-using-the-repository-pattern-in-mvc/ 系列目录: ...
随机推荐
- 团队作业5_测试与发布(Alpha版本)
Alpha版本测试报告 1.测试找出的bug(N个): (1)修复的Bug:很多个,主要是一些疏忽造成的,比如请求url写错导致数据加载不了.比较有意义的bug是因为使用redux,但是用户刷新后数据 ...
- Oracle 迁移数据库到 mysql
一. oracle导出.sql文件(Navicat Premiu 11.0.8 无法实现oracle到mysql的数据传输亲测有效) exp username/pass@数据局地址ip:1521/ ...
- java试用静态图片制作gif
参考博客:https://www.cnblogs.com/dreammyle/p/4843365.html 代码中需要的依赖: <!-- gif --> <dependency> ...
- web前端常用js插件
第一款:截图插件html2Canvas.js html2是一款强大的截图插件,只需引入js文件,依照官方给定的截图方法,就能截取对应DOM区域的内容.对于有些截图出现模糊偏移的问题,网上也有一堆解决方 ...
- DHCP spooping非法获取地址设置原理
一.DHCP概述 DHCP(动态主机配置协议)是一个局域网的网络协议.指的是由服务器控制一段IP地址范围,客户机登录服务器时就 可以自动获得服务器分配的IP地址和子网掩码.默认情况下,DHCP作为Wi ...
- IDEA中flink程序报错找不到类
Idea中运行flink程序,报错找不到类,其中pom文件中一项依赖为: <dependency> <groupId>org.apache.flink</groupId& ...
- jmeter处理加密接口
jmeter处理加密接口 普及知识点: 我们常见的加密方式有:(RSA .AES.MD5.secret) 如下四种情况: 1.请求加密.响应加密 2.请求不加密.响应加密 4.请求加密.响应不加密 5 ...
- 如何在Ubuntu Server 18.04 LTS中配置静态IP地址
安装Ubuntu Server 18.04后需要分配一个的静态IP地址.先前的LTS版本Ubuntu 16.04使用/etc/network/interfaces文件配置静态IP地址,但是Ubuntu ...
- IIS本地部署局域网可随时访问的项目
原理 在本机的IIS下创建一个网站,文件目录直接指向Web项目文件夹 步骤 1.项目的启动项目为web 2.在iis中创建一个新的网站(Work_TK_EIS) 文件目录为web项目的目录(D:\Gi ...
- .net mvc 微信公众号 验证微信签名
官方文档:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421135319&token=&lang=zh_CN ...