新手问个关于 权限的问题。。 像 编辑 删除 这种。。情况。。我以前经常用 get 提交。。后面跟个ID 就完了。。后来 发现 只要有人登陆。。他可以随便 在URL 后面 手动输入 ID 就可以编辑 删除别人的东西。以前根本没意识到这个问题。。大家 一般处理这种问题 是怎么做的呢?有比较好点方法吗? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 添加过滤器或拦截器验证session。 用post方式提交,以及楼上的方法 1.public class AdminFilter extends HttpServlet implements Filter 2.public void doFilter(ServletRequest arg0, ServletResponse arg1, FilterChain arg2) throws IOException, ServletException { // TODO Auto-generated method stub HttpServletRequest request = (HttpServletRequest)arg0; String uri = request.getRequestURI(); if(uri.indexOf("login", 0)>-1){ arg2.doFilter(arg0, arg1);//继续 } else if(1==2){ System.out.println("判断是不是管理员."); HttpServletResponse response = (HttpServletResponse)arg1; response.sendRedirect("login.jsp"); }else{ System.out.println("判断是管理员...请求继续"); arg2.doFilter(arg0, arg1);//继续 } }3.于web.xml配置 <!-- FILTER --> <filter> <filter-name>AdminFilter</filter-name> <filter-class>com.accp.web.AdminFilter</filter-class> </filter> <filter-mapping> <filter-name>AdminFilter</filter-name> <url-pattern>/admin/*</url-pattern> </filter-mapping> 把你所有的操作都改成post方式,然后再过滤器里获得以下提交方式,如果是post就通过,如果是get就不通过 用自定义拦截器比较好 毕竟过滤器要用于转换类型 负担不小了已经public class UserInterceptor implements Interceptor { public void destroy() { } public void init() { } public String intercept(ActionInvocation invocation) throws Exception { Map session = invocation.getInvocationContext().getSession(); if (session.get("admin") != null) { return invocation.invoke(); } else { if (invocation.getProxy().getActionName().equals("Admin_doLogin") || invocation.getProxy().getActionName().equals( "Admin_toLogin") || invocation.getProxy().getActionName().equals( "Admin_toInitialize")) { return invocation.invoke(); } return Action.LOGIN; } }} Javascript将String转化为数组的问题,很有意思,大神解释下 linux下配置jdk 关于Filter的问题 学习java软件开发应该要看那些书呢? 编译Servlet文件找不到类的问题? 问一个结构(系统架构)问题 请教如何减轻服务器端的负担? 这样做能行吗?(20分) EL 异常。。 求救。。 请教各位大帅:jswdk中运行jsp,为何客户端浏览器无内容,查看原代码,就是原文件? 求高手解决struts2问题 大家说一下,学习java的前途吧!谢谢!
FilterChain arg2) throws IOException, ServletException {
// TODO Auto-generated method stub
HttpServletRequest request = (HttpServletRequest)arg0;
String uri = request.getRequestURI();
if(uri.indexOf("login", 0)>-1){
arg2.doFilter(arg0, arg1);//继续
}
else if(1==2){
System.out.println("判断是不是管理员.");
HttpServletResponse response = (HttpServletResponse)arg1;
response.sendRedirect("login.jsp");
}else{
System.out.println("判断是管理员...请求继续");
arg2.doFilter(arg0, arg1);//继续
}
}3.于web.xml配置
<!-- FILTER -->
<filter>
<filter-name>AdminFilter</filter-name>
<filter-class>com.accp.web.AdminFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>AdminFilter</filter-name>
<url-pattern>/admin/*</url-pattern>
</filter-mapping>
public class UserInterceptor implements Interceptor { public void destroy() { } public void init() { } public String intercept(ActionInvocation invocation) throws Exception {
Map session = invocation.getInvocationContext().getSession();
if (session.get("admin") != null) {
return invocation.invoke();
} else {
if (invocation.getProxy().getActionName().equals("Admin_doLogin")
|| invocation.getProxy().getActionName().equals(
"Admin_toLogin")
|| invocation.getProxy().getActionName().equals(
"Admin_toInitialize")) {
return invocation.invoke();
}
return Action.LOGIN;
}
}
}