系列文章目录

前言

接上一篇

一、优化Servlet

优化servlet 就要就是针对 数据bean
在这里插入图片描述
这里插播一条“广告”
数据bean 和 业务bean

数据bean 是跟数据库相关,用来传数据
业务bean:业务bean 不会有数据库表(数据bean有)后面详细会说到
在这里插入图片描述
换句话说
在这里插入图片描述
之前为什么不这样写,因为会冲突
如果之前就都请求UserServlet,那么UserServlet到底应该处理登录还是注册呢,傻傻分不清楚
在这里插入图片描述
所以现在我们要做的就是 怎么区分它到底是执行注册还是登录
那怎么做呢?
提交请求的时候,携带一个参数
在这里插入图片描述
这样的话,也行,但是不是最好的方式,我们看它有啥弊端

因为是文本框,我们的页面没有给它预留位置,如果这样写页面就会变形
在这里插入图片描述
很明显这样是不行的

隐藏域

还记得隐藏域吗?
hidden
在这里插入图片描述
数据是在的,只是实体是隐藏的
在这里插入图片描述
在这里插入图片描述
值在,但是不显示出来
在这里插入图片描述
在这里插入图片描述
然后就简单了,复制粘贴就行了

我们再说一种思路
不使用隐藏域,因为隐藏域给表单增加了负担,我们要做到极致

get请求地址栏传值

用get请求 地址栏的方式
get请求地址栏是可以传一些值的

在这里插入图片描述
注册
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
实际开发中确实也是用post,因为账号密码是需要保密的,post相对安全一些
测试一下

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

实现登录和注册

之后把之前的代码 复制粘贴好,优化成功
在这里插入图片描述
在这里插入图片描述
封装一下
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
下一个问题
现在我们都是用if - else 去做登录注册的判断,如果业务真的非常多,我们用 if-else 真的好吗?
在这里插入图片描述
这块能不能优化呢?
方法名就是这个方法
在这里插入图片描述
我们要用到反射的原理或者叫做方法的对象

在这里插入图片描述

反射动态获取方法名

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
这样就把大量的 if else 改成了 两句代码
这样以后只要加一个方法就行了,不用关注底层的业务了
持续优化
这一套在BookServlet里面是不是也要写这么一套呢,那我们怎么优化它?
在这里插入图片描述
优化
在这里插入图片描述
其它的servlet 都继承它就行了

servlet 里面 做一个BaseServlet

为什么要这样做,因为我们要把doGet doPost统一化
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
最终都是继承了 HttpServlet 只是间接而已,所以 UserServlet 还是 Servlet,这是铁打不动的

那么 UserServlet 里面我们还可以写 doGet 和 doPost 吗?
可以吗?
虽然支持但是不可以写,因为一旦你写了,那么就跟你所继承的BaseServlet冲突了,即把父类的覆盖掉了,重写了
所以 userServlet 只需要关注 业务就可以了
比如只关注注册
在这里插入图片描述

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐