×

substring index 函数 or

oracle 函数里有像mysql数据库中的SUBSTRING_INDEX这个函数一样的功能函数吗?什么时候用filter,什么时候用interceptor

admin admin 发表于2022-07-05 01:06:39 浏览106 评论0

抢沙发发表评论

oracle 函数里有像mysql数据库中的SUBSTRING_INDEX这个函数一样的功能函数吗


oracle 函数里有像mysql数据库中的SUBSTRING_INDEX函数

它是 MYSQL的字符串函数SUBSTRING_INDEX,

SUBSTRING_INDEX(str,delim,count)
SUBSTRING_INDEX函数返回字符串str以参数delim作为分隔符后,从开始到第count个分隔符处的字符串.如果count是负数,则是从右边开始数.

比如:
1、SUBSTRING_INDEX(str,#,2),
当输入下面的字符串(str):
1234#1214124#124141421#)
后,它就会从开始到第“2”计数个分隔符“#”处的字符串加以选择和显示:
1234#1214124
后面的数据、字符串就不再显示!
第2个例子,同理。

什么时候用filter,什么时候用interceptor


谈下我的看法。

你说的filter应该是指实现了javax.servlet.Filter的类,所以如这个接口所示,但凡跟servlet有关——参数url-pattern指定的目标,都可以用filter。

至于interceptor,通常的场景是利用反射来管理某个类的方法。比如但凡Service的save.*和delete.*的方法都必须开启事务处理,所有Dao方法抛出异常时统一处理等。

但是Action/controller比较特殊,因为它既是类的方法,又是映射到某个url上,容易让人困惑。
filter基于回调函数,我们需要实现的filter接口中doFilter方法就是回调函数

filter是依赖于servlet容器的,即只能在servlet容器中执行,很显然没有servlet容器就无法来回调doFilter方法。而interceptor与servlet容器无关。
Filter的过滤范围比Interceptor大,Filter除了过滤请求外通过通配符可以保护页面,图片,文件等等,而Interceptor只能过滤请求。
filter-》DispatchFilter(interceptor)-》result(jsp)
Filter的过滤例外一般是在加载的时候在init方法声明,而Interceptor可以通过在xml声明是guest请求还是user请求来辨别是否过滤。
1、比如我在大多数时候可能使用 Filter 因为这种是最通用的 比如做一个底层的用户包 需要部署N台 可能有的用struts2 有的用spring 那么我就用Filter 还有必须在某些拦截器之前执行的 可以用这个 也就是在没有很好的用Interceptor的理由的情况下 用Filter

2、如果你的拦截器只在本项目中使用 且需要注入资源等 可以用拦截器

还有一种比较细节的场景 如你要在Filter中获取parameter 但此次处理是文件上传 如果不自己去转换Request则是得不到参数的 此时可以考虑用拦截器(因为进入拦截器时已经把request转了 可以拿参数了)

如果需要在Filter注入东西 但就想用Filter 可以使用org.springframework.web.filter.DelegatingFilterProxy

《filter》
《filter-name》syncOnlineSessionFilter《/filter-name》
《filter-class》org.springframework.web.filter.DelegatingFilterProxy《/filter-class》
《init-param》
《param-name》targetFilterLifecycle《/param-name》
《param-value》true《/param-value》
《/init-param》
《/filter》

它会自动到spring容器中找syncOnlineSessionFilter(Filter类型)的bean 使用

“python import”和 “from XX import * ”的区别是什么


import
socket的话要用socket.AF_INET,因为AF_INET这个值在socket的名称空间下。
from
socket
import*是把socket下的所有名字引入当前名称空间。
Python具有丰富和强大的库。它常被昵称为胶水语言,能够把用其他语言制作的各种模块(尤其是C/C++)很轻松地联结在一起。常见的一种应用情形是,使用Python快速生成程序的原型(有时甚至是程序的最终界面),然后对其中有特别要求的部分,用更合适的语言改写。
由于Python语言的简洁性、易读性以及可扩展性,在国外用Python做科学计算的研究机构日益增多,一些知名大学已经采用Python来教授程序设计课程。例如卡耐基梅隆大学的编程基础、麻省理工学院的计算机科学及编程导论就使用Python语言讲授。众多开源的科学计算软件包都提供了Python的调用接口。
Python的设计哲学是“优雅”、“明确”、“简单”。因此,Perl语言中“总是有多种方法来做同一件事”的理念在Python开发者中通常是难以忍受的。Python开发者的哲学是“用一种方法,最好是只有一种方法来做一件事”。在设计Python语言时,如果面临多种选择,Python开发者一般会拒绝花俏的语法,而选择明确的没有或者很少有歧义的语法。
-函数