servlet的代码优化

servlet代码优化的逻辑
BaseServlet:用来替换HttpServlet,BrandServlet直接继承Baseservlet,在BaseServlet中重写service方法,
从根据请求方式匹配doGet或doPost变成根据请求路径的最后一段路径来完成方法的分发
brand-demo/brand/selectAll
/brand访问到了brandServlet
/selectAll访问到了selectAll方法

  1. 获取对应的路径 2个api

String methodName=uri.subString(index+1)的原因:

xx.substring()括号中带的参数不一样,效果就会有很大的区别,详细如下:

lastindexof:

lastindexof从0索引开始计算
int lastindexof : 报告指定 Unicode 字符或字符串在此实例中的最后一个匹配项的从零开始的索引的位置。
 如果未在此实例中找到该字符或字符串,则此方法返回 -1。
比如字符串String s="brand-demo/brand/add"  int a=s.lastIndexOf("/")的返回值就是a=3

subString:

xx.substring(0,2)表示取第一个和第二个字符(0,1,2表示第一、二、三个字符,含头不含尾的原则就只包含第一、二个字符),返回一个新的字符串(只包含指定的第一和第二个字符);

xx.substring(2)表示去掉前两个字符,返回一个新的字符串(只包含去掉前两个字符后剩下的字符

String s="brand-demo/brand/add"

String result= s.subString(a)

输出结果result为/add"

result带斜杠的原因就是subString方法是从1索引开始计算,而lastindexof从索引0开始计算


this代表谁 

谁调用我(this 所在的方法),我(this)就代表谁

理解HttpServlet中的service方法通过,请求方式完成方法的分发,子类继承他就默认调用了它的方法

同理BaseServlet通过最后一个路径完成方法的分发,子类也一定会调用这个方法,所以这个this代表了BaseServlet的所有子类
获取方法对象执行方法

反射:

获得带形式参数方法对象: Method method = clazz.getMethod("方法名", String.class);有几种类型参数就需要几个参数类型的class对象
获得方法对象后调用方法的方法:method.invoke(要调用该方法的对象,方法的实参 )

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值