首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

struts2 禁止url直接交付action

2013-08-06 
struts2 禁止url直接提交action禁止在url直接输入xxxx/xx.do或者xxxx/xx.action 然后执行action必须在页面

struts2 禁止url直接提交action
禁止在url直接输入xxxx/xx.do或者xxxx/xx.action 然后执行action
必须在页面中点击执行。
请问怎么实现?


// 只接受POST方式传递的数据
if (!"POST".equals(request.getMethod())) {
throw new MethodErrorException("不支持非POST方式的请求!");
}


入口强制post提交表单
[解决办法]
token可以解决
[解决办法]
赞成二楼的,自己写个过滤器就行了
[解决办法]
public void doFilter(ServletRequest req, ServletResponse resp,
FilterChain chain) throws IOException, ServletException {
HttpServletResponse response = (HttpServletResponse) resp;
HttpServletRequest request = (HttpServletRequest) req;
HttpSession session = request.getSession(true);
String emplyoeeright = (String) session.getAttribute("emplyoeeright");//
String url = request.getRequestURI();

if (emplyoeeright == null 
[解决办法]
 emplyoeeright.equals("")) {
// 判断获取的路径不为空且不是访问登录页面或执行登录操作时跳转
if (url != null && !url.equals("")
&& (url.indexOf("Login") < 0 && url.indexOf("login") < 0)) {
response.sendRedirect("login.jsp");
return;
}
}
// 已通过验证,用户访问继续
chain.doFilter(request, response);
return;
}


我吧自己的一段filter拿来了,你看看,再改改
[解决办法]
写一个拦截器  也可以呀!!
[解决办法]

引用:
Quote: 引用:

public void doFilter(ServletRequest req, ServletResponse resp,
FilterChain chain) throws IOException, ServletException {
HttpServletResponse response = (HttpServletResponse) resp;
HttpServletRequest request = (HttpServletRequest) req;
HttpSession session = request.getSession(true);
String emplyoeeright = (String) session.getAttribute("emplyoeeright");//
String url = request.getRequestURI();

if (emplyoeeright == null 
[解决办法]
 emplyoeeright.equals("")) {
// 判断获取的路径不为空且不是访问登录页面或执行登录操作时跳转
if (url != null && !url.equals("")
&& (url.indexOf("Login") < 0 && url.indexOf("login") < 0)) {
response.sendRedirect("login.jsp");
return;
}
}
// 已通过验证,用户访问继续
chain.doFilter(request, response);
return;
}
我吧自己的一段filter拿来了,你看看,再改改


你这个自己程序里跳转都不能进去吧,只能进login。。后面的action不直接if不过去了。。

这只是抛砖引玉。。。。。全我来。。。你也太狠了。。

热点排行