javaEE008.03 优化Servlet(提取UserServlet,BaseServlet)、隐藏域、get请求地址栏传值、反射动态获取方法名、项目第三阶段 3
系列文章目录文章目录系列文章目录前言一、优化Servlet隐藏域get请求地址栏传值实现登录和注册总结前言接上一篇一、优化Servlet优化servlet 就要就是针对 数据bean这里插播一条广告数据bean 和 业务bean数据bean 是跟数据库相关,用来传数据业务bean:业务bean 不会有数据库表(数据bean有)后面详细会说到换句话说之前为什么不这样写,因为会冲突如果之前就都请求Us
系列文章目录
前言
接上一篇
一、优化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 只需要关注 业务就可以了
比如只关注注册
更多推荐
所有评论(0)