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个回答

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

既然你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 也不能写相对路径,因为工程不一样了。

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

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

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

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

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

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

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

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

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

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问