读书人

struts2 禁止url直接交付action

发布时间: 2013-08-06 16:47:25 作者: rapoo

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不过去了。。

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

读书人网 >Java Web开发

热点推荐