日期:2014-05-17  浏览次数:20931 次

如何禁止程序直接从浏览器输入url直接访问action?
用的框架是S2SH,怎么能够拦截,不让用户直接访问action。 不要说JSP放在web-inf下这种解决办法。其他的解决办法有吗?

------解决方案--------------------
楼主是不是只允许在iframe内页访问,
如果是这样的话,可以在访问的页面用js简单处理一下。
[code=JavaScript]
<script>
window.onload = function(){
  if(window.location == top.location){
alert('禁止访问');
window.self.close();
}
}
</script>
[/code]
------解决方案--------------------
如果楼主不想别人直接通过url访问,那么重写URL吧。
------解决方案--------------------
public class FilterUrl implements Filter{
@Override
public void doFilter(ServletRequest arg0, ServletResponse arg1,
FilterChain arg2) throws IOException, ServletException {
HttpServletRequest request = (HttpServletRequest)arg0;
HttpServletResponse response =(HttpServletResponse)arg1;
String url = request.getRequestURI();
if(url.endsWith(".action")){
response.getWriter().print("<script>window.location.href="你的登录地址"</script>");
}else{
arg2.doFilter(arg0, arg1);
}
}

}
------解决方案--------------------
不直接访问ACTION是指什么?
------------------------
用户必须通过你的链接来访问?建议:链接地址加一个KEY
还是你的ACTION还是屏蔽非登录用户?建议:这个不用说了吧,大家都懂!
------解决方案--------------------
探讨
除非你禁止所有action的GET请求,只允许POST请求,否则不行。