本文目录一览:
- 1、选择php框架的六大误区有哪些
- 2、java@length没校验
- 3、使用springboot怎么添加一个filter过滤器
- 4、spring mvc 注解怎么连接所有进入controler的请求并过滤其中的xss
- 5、孟浩然的诗
- 6、servlet filter和springMVC拦截器的区别
选择php框架的六大误区有哪些
误区之一:简单的就是好的。因为简单易学,所以,上手也快。
实际上,我们不能保证你整天做的都是个人网站。或者是只有几个页面的网站。一旦遇到大型应用,小的框架往往是无能为力的。比如,有人选择kiwiphp,说一个最明显的缺陷:该框架到目前仍存在跨站脚本攻击漏洞。
误区之二:流行的就是好的。
比如,现在流行ROR方式,注解行敏捷开发模式,但并不是所有的应用都适合这些模式,这些框架充其量最多只能适应中型的网站的开发。甚至有可能,为了适应开发的需求,核心类库都需要改写。象CAKE,是照抄ROR模式的典型。而CI,则是敏捷开发模式的典型。我们可以看一下CI的LOGGER,日志类,如果你的项目中有CRONS,那么,这个日志类就不够用了。因为,它的输出模式定死了,就需要改写。如果你的项目中存在象BOM核销,或其它复杂的企业应用模块,很可能你需要邮件日志,短信日志,它是不能提供的。
误区之三:不知框架能够适用于哪一类工程。
CI对于大型门户类网站,它就只能算是一个玩具。没想到,这话居然超出了倔们的想象。它们认为,CI就是一具优秀的框架,一个经典。
误区之四:相信一些网站中的评论,评分,或用户的评比。
实质上,这些也不是均可以相信的。全世界都有初学者,你无法了解参与评分的是哪些人。虽说,目前CI,CAKE评分相当的高。但并不能说明,它们就是最好的。
误区之五:初生之犊不怕虎,这些人虽然很少,但也不乏这样的典型。
对所有框架均不满意,而另行重写自己的。我们认为,你重写了自己用,还说得过去。如果重写了,直接开源,那么,很可能对初学者造成误导。比如,国内的kiwiphp,连基本的服务端器凋数据验证还没有加上,XSS攻击根本就无任何屏蔽,框架就发布了。这也就是说,根本不知框架中究竟要提供哪些东西。当然,我们并不反对任何人再开发一个PHP的开发框架,但是,前提是,开发之前,你确实弄通了一些经典的框架,并且,你确实组织开发,而不是参与开发过大型的网站。没有这样的积累,你是无法能够工发出优秀的PHP开发框架的
误区之六:获奖的就是好的。
PRADO获奖了,FLEA也获奖了。PRADO做企业业应用,效率如何?无人能知。FLEA中,HEX色彩转RGB这个函数问题,早在一年多之前,我就提出过,但至今未见更新。当然,代码的成熟度肯定是随版本的更新而提高的,但版本更新的速度,以及用户量的多少,均是相关因素。CI,FLEA均是团队开发,而这种团队开发,代码的把关,就是一个很大的问题。CI中有相当成熟的代码,但也有相当初学者级的代码,这里就不多讲了。
java@length没校验
重写注解验证方式。
当校验方式不存在或者项目前后台添加了防止XSS的攻击的转码后,在使用@Length注解验证长度的时候,在输入内容长度为临界值并且输入内容包含某些特殊字符导致不能够正常使用校验时,我们需要进行新建注解,然后创建验证类,最后在实体类里验证我们所重写的校验。
使用springboot怎么添加一个filter过滤器
在实际的web应用程序中,经常需要在请求(request)外面增加包装用于:记录调用日志、排除有XSS威胁的字符、执行权限验证等等。除了上述提到的之外,Spring Boot自动添加了OrderedCharacterEncodingFilter和HiddenHttpMethodFilter,并且我们在自己的项目中还可以增加别的过滤器。
Spring Boot、Spring Web和Spring MVC等其他框架,都提供了很多servlet 过滤器可使用,我们需要在配置文件中定义这些过滤器为bean对象。现在假设我们的应用程序运行在一台负载均衡代理服务器后方,因此需要将代理服务器发来的请求包含的IP地址转换成真正的用户IP。Tomcat 8 提供了对应的过滤器:RemoteIpFilter。通过将RemoteFilter这个过滤器加入过滤器调用链即可使用它。
How Do
一般在写简单的例子时,不需要单独定义配置文件,只需要将对应的bean对象定义在Application类中即可。正式的项目中一般会有单独的web配置文件,我们在项目的com.test.bookpub(与BookpubApplication.java同级)下建立WebConfiguration.java文件,并用@Configuration注解修饰。
package com.test.bookpub;
import org.apache.catalina.filters.RemoteIpFilter;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class WebApplication {
@Bean
public RemoteIpFilter remoteIpFilter() {
return new RemoteIpFilter();
}
}
通过mvn spring-boot:run启动项目,可以在终端中看到如下的输出信息,证明RemoteIPFilter已经添加成功。
RemoteIPFilter
分析
项目的主类——BookPubApplication,可以看到由@SpringBootApplication注解修饰,这包含了@ComponentScan、@Configuration和@EnableAutoConfiguration注解。在Spring Boot的自动配置、Command-line Runner一文中曾对这个三个注解做详细解释,@ComponentScan让Spring Boot扫描到WebConfiguration类并把它加入到程序上下文中,因此,我们在WebApplication中定义的Bean就跟在BookPubApplication中定义一样。
方法@Bean public RemoteIpFilter remoteIpFilter() { ... }返回一个RemoteIPFilter类的spring bean。当Spring Boot监测到有javax.servlet.Filter的bean时就会自动加入过滤器调用链。从上图中还可以看到,该Spring Boot项目一次加入了这几个过滤器:characterEncodingFilter(用于处理编码问题)、hiddenHttpMethodFilter(隐藏HTTP函数)、httpPutFormContentFilter、requestContextFilter(请求上下文),以及我们刚才自定义的RemoteIPFilter。
spring mvc 注解怎么连接所有进入controler的请求并过滤其中的xss
由于只需要对content-type=application/json;charset=UTF-8的json请求进行处理,所以需要重写MappingJacksonHttpMessageConverter部分方法。
注意:如果使用的是MappingJackson2HttpMessageConverter,需要重写MappingJackson2HttpMessageConverter部分方法。
孟浩然的诗
【标题】:宿建德江
【年代】:唐
【作者】:孟浩然
【体载】:五绝
【类别】:羁旅
【内容】:--------------------
移舟泊烟渚,日暮客愁新。
野旷天低树,江清月近人。
【赏析】:--------------------
【注解】:
1、建德江:在浙江省,新安江流径建德的一段。
2、移舟:靠岸。
3、烟渚:弥漫雾气的沙洲。
【韵译】:
我把船停泊在暮烟笼罩的小洲,
茫茫暮色给游子新添几分乡愁。
旷野无垠远处天空比树木还低,
江水清澈更觉月与人意合情投……
【评析】:
这是一首刻划秋江暮色的诗。先写羁旅夜泊,再叙日暮添愁;然后写到宇宙广袤宁静,明月伴人更亲。一隐一现,虚实相间,两相映衬,互为补充,构成一个特殊的意境。诗中虽不见“愁”字,然野旷江清,“秋色”历历在目。全诗淡而有味,含而不露;自然流出,风韵天成,颇有特色。
【标题】:春晓
【年代】:唐
【作者】:孟浩然
【体载】:五绝
【类别】:记时
【内容】:--------------------
春眠不觉晓,处处闻啼鸟。
夜来风雨声,花落知多少。
【赏析】:--------------------
注释:
1.春晓:春天的早晨。
2.闻:听。
赏析:
诗歌从春鸟的啼鸣、春风春雨的吹打、春花的谢落等声音,让读者通过听觉,然后运用想象的思维方法,转换到视觉,在眼前展开一夜风雨后的春天景色,构思非常独到。诗歌语言自然朴素,通俗易懂,却又耐人寻味:不知不觉的又来到了一个春天的早晨,不知不觉的又开始了一次花开花落。思想着这一年一度的春色,人生的感慨便会油然而起,或淡或浓地萦回心头。
【标题】:宿业师山房待丁大不至
【年代】:唐
【作者】:孟浩然
【体载】:五律
【内容】:--------------------
夕阳度西岭,群壑倏已螟。
松月生夜凉,风泉满清听。
樵人归欲尽,烟鸟栖初定。
之子期宿来,孤琴候萝径。
【赏析】:--------------------
【简析】:
孟浩然的诗,其特点是“遇景入咏,不拘奇挟异”。这首诗写极平凡的事,但却挥洒自如,诗中有画,盛富美感。
① 烟:一作“磴”。
② 孤琴:或作“孤宿”、“携琴”。
【注解】:
1、烟鸟:暮烟中的归鸟。
2、之子:这个人。
3、宿:隔夜。
【韵译】:
夕阳徐徐落入西边山岭,
千山万壑忽然昏昏暝暝。
松间明月增添夜的凉意,
风中泉声听来别有情味。
打柴的樵夫们将要归尽,
暮烟中的鸟儿刚刚栖定。
期望你能如约来此住宿,
我独抱琴等在萝蔓路径。
【评析】:
诗写在山间夜宿,期待友人不至。诗的前六句,尽写夜色;夕阳西下,万壑蒙烟,凉生松月,清听风泉,樵人归尽,暮鸟栖定。后两句写期待故人来宿而未至,于是抱琴等待。不心焦,不抱怨,足见诗人风度。境致清新幽静,语言委婉含蓄。“松月生夜凉,风泉满清听”两句亦是佳品。
【标题】:宿桐庐江寄广陵旧游
【年代】:唐
【作者】:孟浩然
【体载】:五律
【内容】:--------------------
山暝听猿愁,沧江急夜流。
风鸣两岸叶,月照一孤舟。
建德非吾土,维扬忆旧游。
还将两行泪,遥寄海西头。
【赏析】:--------------------
【注释】:
桐庐山:即桐江,流经浙江省桐庐县。建德:今浙江省建德县。海西头:指扬州。
【简析】:
写宿桐庐江的夜间景色的旅途的孤寂情怀,将忆旧与乡思寄给朋友。
【标题】:过故人庄
【年代】:唐
【作者】:孟浩然
【体载】:五律
【类别】:田园
【内容】:--------------------
故人具鸡黍,邀我至田家。
绿树村边合,青山郭外斜。
开筵面场圃,把酒话桑麻。
待到重阳日,还来就菊花。
【赏析】:--------------------
【注解】:
1、过:拜访。
2、具:准备。
3、场圃:农家的小院。
4、就:赴。这里指欣赏的意思。
【韵译】:
老友备好了黄米饭和烧鸡,
邀我做客到他朴实的田家。
村子外边是一圈绿树环抱,
郊外是苍翠的小山包平斜。
推开窗户迎面是田地场圃,
把酒对饮闲聊着耕作桑麻。
等到九月重阳节的那一天,
再一次来品尝菊花酒好啦!
【评析】:
这是一首田园诗,描写农家恬静闲适的生活情景,也写老朋友的情谊。诗由
“邀”到“至”到“望”又到“约”一径写去,自然流畅。语言朴实无华,意境清新
隽永。
【简析】:
这是一幅非常朴实的田园风景画。诚挚亲切的友情,典型农家生活场景,熔自然美、生活美、友情美于一炉,可以看出诗人的内心世界的和谐。
【标题】:留别王维
【年代】:唐
【作者】:孟浩然
【体载】:五律
【内容】:--------------------
寂寂竟何待,朝朝空自归。
欲寻芳草去,惜与故人违。
当路谁相假,知音世所稀。
只应守寂寞,还掩故园扉。
【赏析】:--------------------
【注解】:
1、违:分离。
2、当路:当权者;
3、假:宽假,优容的意思。
【韵译】:
这样寂寞无聊还有什么可待?
天天碌碌无为独自空手而归。
我想归隐山林去寻芳馨花卉,
但又珍惜友情不愿分手相违。
如今当权者们谁肯提携我辈,
世上要寻知音实在寥寥无几。
或许今生今世命合空守寂寞,
还是回家关闭我的故园门扉。
【评析】:
这首诗应是作者离长安时的作品,主诉怨悱。首联直接说出自归。颔联则写题意
“惜别”,颈联说明自归之故——乃是知音既少,当道不用,此时不走,更待何时。
以失意后的牢骚贯穿全诗。
语言平淡朴实,近于口语,不讲究对偶,顺其自然。
【简析】:
在京求仕不成, 诗中便充溢着对“当路谁相假”的愤懑,并用“独寻芳草去”自我解嘲。
【标题】:岁暮归南山
【年代】:唐
【作者】:孟浩然
【体载】:五律
【内容】:--------------------
北阙休上书,南山归敝庐。
不才明主弃,多病故人疏。
白发催年老,青阳逼岁除。
永怀愁不寐,松月夜窗虚。
【赏析】:--------------------
【注释】:
北阙:阙是宫门前的望楼,因宫殿都是坐北朝南的,北阙便泛指皇帝的宫殿。
【简析】:
据《新唐书》引《唐摭言》:有一日孟浩然到王维所在的内署去玩,突然玄宗驾到,只好躲到床下,玄宗发现后命他出来,并问他近来又写了什么诗,孟朗诵了这一首。当念到“不才明主弃”这一句时,玄宗说:“卿不求仕而朕未尝弃卿,奈何诬我。”因放还乡。从诗的内容来看,确实是在发怀才不遇的牢骚,但既经皇帝放还,也就无缘再出,只能象李白赠诗中所说的“白首卧松云”了。
【标题】:清明日宴梅道士房
【年代】:唐
【作者】:孟浩然
【体载】:五律
【内容】:--------------------
林卧愁春尽,开轩览物华。
忽逢青鸟使,邀入赤松家。
丹灶初开火,仙桃正发花。
童颜若可驻,何惜醉流霞!
【赏析】:--------------------
【注解】:
1、青鸟:神话中鸟名,西王母使者。这里指梅道士。
2、赤松:赤松子,传说中的仙人。这里也指梅道士。
3、金灶:道家炼丹的炉灶。
4、仙桃:传说西王母曾以仙桃赠汉武帝,称此桃三千年才结实。
5、童颜两句:意谓如果仙酒真能使容颜不老,那就不惜一醉。流霞:仙酒名。李商
隐《武夷山诗》:“只得流霞酒一杯。”这里也指醉颜。
【韵译】:
高卧林下正愁着春光将尽,
掀开帘幕观赏景物的光华。
忽然遇见传递信件的使者,
原是赤松子邀我访问他家。
炼丹的金炉灶刚刚生起火,
院苑中的仙桃也正好开花。
如果仙人真可以保住童颜,
何惜醉饮返老还童的流霞。
【评析】:
诗以隐士身分而宴于梅道士山房,因而借用了金灶、仙桃、驻颜、流霞等术语和运用青鸟、赤松子等典故,描述了道士山房的景物,赋予游仙韵味,流露了向道之意。
【标题】:宿业师山房待丁大不至
【年代】:唐
【作者】:孟浩然
【体载】:五律
【内容】:--------------------
夕阳度西岭,群壑倏已螟。
松月生夜凉,风泉满清听。
樵人归欲尽,烟鸟栖初定。
之子期宿来,孤琴候萝径。
【赏析】:--------------------
【简析】:
孟浩然的诗,其特点是“遇景入咏,不拘奇挟异”。这首诗写极平凡的事,但却挥洒自如,诗中有画,盛富美感。
① 烟:一作“磴”。
② 孤琴:或作“孤宿”、“携琴”。
【注解】:
1、烟鸟:暮烟中的归鸟。
2、之子:这个人。
3、宿:隔夜。
【韵译】:
夕阳徐徐落入西边山岭,
千山万壑忽然昏昏暝暝。
松间明月增添夜的凉意,
风中泉声听来别有情味。
打柴的樵夫们将要归尽,
暮烟中的鸟儿刚刚栖定。
期望你能如约来此住宿,
我独抱琴等在萝蔓路径。
【评析】:
诗写在山间夜宿,期待友人不至。诗的前六句,尽写夜色;夕阳西下,万壑蒙烟,凉生松月,清听风泉,樵人归尽,暮鸟栖定。后两句写期待故人来宿而未至,于是抱琴等待。不心焦,不抱怨,足见诗人风度。境致清新幽静,语言委婉含蓄。“松月生夜凉,风泉满清听”两句亦是佳品。
【标题】:夏日南亭怀辛大
【年代】:唐
【作者】:孟浩然
【体载】:五古
【内容】:--------------------
山光忽西落,池月渐东上。
散发乘夜凉,开轩卧闲敞。
荷风送香气,竹露滴消响。
欲取鸣琴弹,慨无知音赏。
感此怀故人,终霄劳梦想。
【赏析】:--------------------
【简析】:
这首诗充满怀念故人的情绪,写出闲适自得的情趣,表达出无知音的感慨。文字行如流水,层递自然,极富韵味。
① :诗题一无“夏日”。
② 夕:一作“夜”。
【注解】:
1、山光:山上的日光。
2、池月:即池边月色。
3、轩:窗。
【韵译】:
夕阳忽然间落下了西山,
东边池角明月渐渐东上。
披散头发今夕恰好乘凉,
开窗闲卧多么清静舒畅。
清风徐徐送来荷花幽香,
竹叶轻轻滴下露珠清响。
心想取来鸣琴轻弹一曲,
只恨眼前没有知音欣赏。
感此良宵不免怀念故友,
只能在夜半里梦想一场。
【评析】:
此诗写夏夜水亭纳凉清爽闲适和对友人的怀念。
诗的开头写夕阳西下与素月东升,为纳凉设景。三、四句写沐后纳凉,表现闲情适意。五、六句由嗅觉继续写纳凉的真实感受。七、八句写由境界清幽想到弹琴,想到“知音”、从纳凉过渡到怀人。最后写希望友人能在身边共度良宵而生梦。
全诗感情细腻,语言流畅,层次分明,富于韵味。“荷风送香气,竹露滴清响”句,纳凉消暑之佳句。
【标题】:临洞庭上张丞相
【年代】:唐
【作者】:孟浩然
【体载】:五律
【内容】:--------------------
八月湖水平,涵虚混太清。
气蒸云梦泽,波撼岳阳城。
欲济无舟楫,端居耻圣明。
坐观垂钓者,徒有羡鱼情。
【赏析】:--------------------
【注解】:
1、张丞相:指张九龄。
2、涵虚:包含天空,指天倒映在水中。
3、混太清:与天混成一体。
4、云梦泽:古时云泽和梦泽指湖北南部,湖南北部一代低洼地区。
5、济:渡。
6、端居:安居。
【韵译】:
八月洞庭湖水盛涨浩渺无边,
水天含混迷迷��接连太空。
云梦二泽水气蒸腾白白茫茫,
波涛汹涌似乎把岳阳城撼动。
我想渡水苦于找不到船与桨,
圣明时代闲居委实羞愧难容。
闲坐观看别人辛勤临河垂钓,
只能白白羡慕别人得鱼成功。
【评析】:
这是一首“干禄”诗。所谓“干禄”,即是向达官贵人呈献诗文,以求引荐录用。玄宗开元二十一年(733),张九龄为丞相,作者西游长安,以此诗献之,以求录用。诗前半泛写洞庭波澜壮阔,景色宏大,象征开元的清明政治。后半即景生情,抒发个人进身无路,闲居无聊的苦衷,表达了急于用世的决心。全诗颂对方,而不过分;乞录用,而不自贬,不亢不卑,十分得体。
【标题】:与诸子登岘山
【年代】:唐
【作者】:孟浩然
【体载】:五律
【内容】:--------------------
人事有代谢,往来成古今。
江山留胜迹,我辈复登临。
水落鱼梁浅,天寒梦泽深。
羊公碑尚在,读罢泪沾襟。
【赏析】:--------------------
【注解】:
1、代谢:交替,轮换。
2、胜迹:指上述堕泪碑。
3、鱼梁:鱼梁洲,其地也在襄阳。
【韵译】:
人间世事不停地交替变换,
一代接一代永远今来古往。
江山保留着历代有名胜迹,
而今我们又重新登临观赏。
冬末水位降低了渔塘很浅,
天寒云梦泽更加深湛浩荡。
羊祜堕泪碑依然巍峨矗立,
读罢碑文泪沾襟无限感伤。
【评析】:
诗意在吊古感今,开首二句揭题。第三句的“江山胜迹”照应“人事代谢”;第四句的“我辈登临”照应“往来古今”极为粘合;五、六两句写登临所见;最后二句扣实,真有“千里来龙,到此结穴”之妙。
诗的前半具有一定的哲理性,后半描写景物,富有形象,充满激情。语言通俗易懂,感情真挚动人。
servlet filter和springMVC拦截器的区别
在struts2中用过filter过滤器,在springmvc中还有拦截器,它们都能过滤请求,但是到底有什么区别呢?
一、定义
拦截器 :是在面向切面编程的就是在你的service或者一个方法,前调用一个方法,或者在方法后调用一个方法比如动态代理就是拦截器的简单实现,在你调用方法前打印出字符串(或者做其它业务逻辑的操作),也可以在你调用方法后打印出字符串,甚至在你抛出异常的时候做业务逻辑的操作。
过滤器:是在javaweb中,你传入的request、response提前过滤掉一些信息,或者提前设置一些参数,然后再传入servlet或者struts的action进行业务逻辑,比如过滤掉非法url(不是login.do的地址请求,如果用户没有登陆都过滤掉),或者在传入servlet或者 struts的action前统一设置字符集,或者去除掉一些非法字符.。
二、xml文件配置
1.filter
该过滤器的方法是创建一个类XXXFilter实现此接口,并在该类中的doFilter方法中声明过滤规则,然后在配置文件web.xml中声明他所过滤的路径
filter
filter-nameXXXFilter/filter-name
filter-class
com.web.util.XXXFilter
/filter-class
/filter
filter-mapping
filter-nameXXXFilter/filter-name
url-pattern*.action/url-pattern
/filter-mapping
filter
filter-nameXXXFilter/filter-name
filter-class
com.web.util.XXXFilter
/filter-class
/filter
filter-mapping
filter-nameXXXFilter/filter-name
url-pattern*.action/url-pattern
/filter-mapping
2.Interceptor
它也要实现HandlerInterceptor 接口,这里只介绍方法注解配置
!-- 拦截器 --
mvc:interceptors
!-- 多个拦截器,顺序执行 --
mvc:interceptor
mvc:mapping path="/entryOrJsonController/*" /!-- 如果不配置或/*,将拦截所有的Controller --
bean class="com.wy.interceptor.CommonInterceptor"/bean
/mvc:interceptor
/mvc:interceptors
!-- 拦截器 --
mvc:interceptors
!-- 多个拦截器,顺序执行 --
mvc:interceptor
mvc:mapping path="/entryOrJsonController/*" /!-- 如果不配置或/*,将拦截所有的Controller --
bean class="com.wy.interceptor.CommonInterceptor"/bean
/mvc:interceptor
/mvc:interceptors
三、具体区别
filter
Interceptor
多个的执行顺序
根据filter mapping配置的先后顺序
按照配置的顺序,但是可以通过order控制顺序
规范
在Servlet规范中定义的,是Servlet容器支持的
Spring容器内的,是Spring框架支持的。
使用范围
只能用于Web程序中
既可以用于Web程序,也可以用于Application、Swing程序中。
深度
Filter在只在Servlet前后起作用
拦截器能够深入到方法前后、异常抛出前后等
四、总结
两者的本质区别:拦截器是基于java的反射机制的,而过滤器是基于函数回调。从灵活性上说拦截器功能更强大些,Filter能做的事情,他都能做,而且可以在请求前,请求后执行,比较灵活。Filter主要是针对URL地址做一个编码的事情、过滤掉没用的参数、安全校验(比较泛的,比如登录不登录之类),太细的话,还是建议用interceptor。不过还是根据不同情况选择合适的。