用struts作WEB工程的总控制器

时间:2022-07-24 19:36:20

学习struts的时候,好多人都说,一般都把struts的filter设为/*,即接收客户端传来的所有请求。但是如果使用了FckEditor和它的上传功能,就会出现问题:上传无法完成,提示request里面没有东西。网上有人说原因是struts对request进行了封装,导致FckEditor无法正常读取里面的内容。具体原因没搞清楚,网上也有些解决办法:

  1. 把struts的filter设置改掉,不要让它过滤所有的请求
  2. 自己动手实现上传功能,放弃FckEditor内置的。
  3. 自己写一个Filter,通过判断是否是FckEditor的请求,从而决定是否调用Struts的Filter处理
  4. 更有甚的,自己写了一个Fckeditor插件的上传插件,代价有点儿太高。。

我所知道的就只有这个插件跟struts整合会有问题,但是我已经放弃使用FckEditor了,不仅是因为官方都不再更新它了,更主要的是它加载速度太慢了,样子也不是很好看,虽然功能很强大,但是同样也有其它更为小巧的编辑插件,跟它的功能也不相上下。还有一点儿,很多时间,那么多的功能并用不上。

使用Struts来作为web工程的总控制器,用它来接收所有请求,并使用相应的Action来决定返回给客户端的视图。这种方法的好处有很多的:

  1. 安全性提高了,全站只有一个入口,SQL等等的数据注入问题也解决了。
  2. 很多时候都是把jsp文件放到web-inf文件夹里,以实现隐藏jsp源代码的目的,这样当然就需要通过struts来实现调用
  3. 无论是对后续开发的支持,还是以后系统维护、扩展,都提供了更好的解决办法。
  4. 对jsp文件统一调用,开发起来思路更清晰,修改也更方便。

这样子来说,就需要打破以前的习惯了,以前是:jsp-action-….,现在应该是:action-jsp-action…….