sdjfhk
sdjfhk
2009-09-11 10:05

struts 控制对action的访问权限

已采纳

struts1中是否有这样的功能:比如说webapp下文件夹a和文件夹b.是不是可以通过配置一些参数来达到让a下面的jsp文件能能请求action,而b下面的jsp则不能。谢谢各位大大指教!
[b]问题补充:[/b]
谢谢两位的提醒。可能我问题说的不是很清楚。其实这是我在一个项目中发现的问题。就像上面所说的,在a和b文件夹中都有相同的jsp,里面包含相同的ajax请求,以同样的路径请求到action,出现了 a.jsp中的请求能送达action,而b.jap中的则不能--显示为无效路径(我用httpwatch看过了,路径是绝对没有问题的)。至于请求有无发送到actionservlet我还没有测试过。不知道我说明白了没有。
[b]问题补充:[/b]
a和b都是webapp下面的根目录。

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

4条回答

  • Ryankay Ryankay 12年前

    如果按你所说的,那肯定是路径问题了。

    既然你a和b事webapp下根路径,说白了就是webapp下有俩工程,一个a,一个b,现在b中的jsp有一个ajax请求a中的action,再a中ajax请求成功,而b中失败。

    那么只有一个可能,路径问题。假设你使用的8080端口那么,ajax路径应该是这样写:
    http://localhost:8080/a/test.do?=m=test.

    这个一定要写死的,不能通过上面c:url 也不能写相对路径,因为工程不一样了。

    点赞 评论 复制链接分享
  • lcf2025 lcf2025 12年前

    那就不应该啊,路径应该还是不一样啊,你是用的绝对路径么?

    点赞 评论 复制链接分享
  • Ryankay Ryankay 12年前

    楼上的说的很对。
    楼主对于java web的原理还有待深入。

    我们通常是通过filter来实现楼主所说的权限控制的功能,比如http://localhost:8080/javaeye/admin/adminAction.do?m=test

    这是javaeye得后台管理模块【假设】.我们就通过配置filter/admin/*来拦截request请求,然后加以判断,比如判断是否登录,是否具有权限。

    当然这是最初的解决方案。

    如今比较时尚的方案是采用AOP编程,对于指定包目录下或以指定前缀的方法进行拦截。

    当然struts2的拦截器已经帮我们实现了这个功能,我们可以通过配置编写自己的拦截器进行拦截,功能很强大。。。

    点赞 评论 复制链接分享
  • lcf2025 lcf2025 12年前

    误区啊 lz
    搞清楚并不是jsp文件请求action ,请求都是从客户端发过来的,

    jsp一般是解释编译之后发送到客户端进行视图的展示的,jsp怎么能发送请求呢,要说服务器内部转发还有点谱

    点赞 评论 复制链接分享

相关推荐