网站前台与后台的权限拦截问题

x21456378 2011-05-05 08:36:09
我后台有个网址http://21.21.21.21.:8080/xx/news/a.jsp
我不想让未登录的人通过该网址进入后台页面 所以设置了一个拦截器判断是否登录
没登录的话就返回到后台登录页面

但是我进网站前台是不需要登录的 拦截器也进行了拦截 返回到了后台登录页面


想问大家做网站时是怎么处理该问题的方案!!!!1
...全文
374 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
lvhongfen 2011-05-05
  • 打赏
  • 举报
回复

其实你的Action可以继承ActionSupport
然后对指定的方法进行拦截
例如:如果拦截添加方法的话就是validateAdd()
public void validateAdd()
{
if(con.getCname()==null||con.getCname().equals(""))
{
this.addFieldError("cname", "用户名不能为空....");

}
if(con.getEmail()==null||con.getEmail().equals(""))
{
this.addFieldError("email", "邮箱不能为空....");

}
if(con.getTel()==null||con.getTel().equals(""))
{
this.addFieldError("tel", "电话不能为空....");

}
if(con.getAddress()==null||con.getAddress().equals(""))
{
this.addFieldError("address", "地址不能为空....");

}

//String exl="^([a-z \\d]{1,10})@([\\da-z]{1,10}).([a-z]{2,5})";

String ext="^([a-z \\d_\\.-]+)@([\\da-z]+).([a-z]{2,6})";

if(!con.getEmail().toLowerCase().matches(ext))
{

this.addFieldError("emails", "邮箱格式不正确....");
}
String exts="^([ \\d]{7,11})";

if(!con.getTel().matches(exts))
{

this.addFieldError("teles", "电话格式不正确....");
}


}
}
cjg520jie 2011-05-05
  • 打赏
  • 举报
回复
最简单的方法啊 登陆的时候判断用户名密码是否在数据库中有 有的话就把此登陆用户名放进session中,没有直接T出去,然后每次做动作的类中写个共同方法,判断此session中登陆用户名是否存在 存在继续,不存在 直接T出去
x21456378 2011-05-05
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 lvhongfen 的回复:]
不知道LZ是否会Strut2.0
我这里有SSH框架做的专门为特定方法配制的拦截器在Struts.xml中的配制如下:
<interceptors>
<interceptor name="my" class="action.MyInterceptor"/>
//自定义的拦截器继承MethodFilterInterceptor
<interceptor-stack name="ds">
……
[/Quote]

想法不错 但是我用的是struts1 没这个exclude功能
x21456378 2011-05-05
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 caohuijieyangfuan 的回复:]
你可以把后台的页面放到一个文件夹下,过滤器拦截的时候,未登录的不允许访问这个文件夹下的jsp页面;
[/Quote]
想法很正点
x21456378 2011-05-05
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 hpjianhua 的回复:]
用javax.servlet.Filter 这个类的doFilter方法,可以做到想要的功能,一般都是用Spring做的
[/Quote]
你没明白
lvhongfen 2011-05-05
  • 打赏
  • 举报
回复

不知道LZ是否会Strut2.0
我这里有SSH框架做的专门为特定方法配制的拦截器在Struts.xml中的配制如下:
<interceptors>
<interceptor name="my" class="action.MyInterceptor"/>
//自定义的拦截器继承MethodFilterInterceptor
<interceptor-stack name="ds">
<interceptor-ref name="my">
<param name="excludeMethods">login</param>
//不拦截登陆方法
<param name="includeMethods">addUser,lizhi,updateUser</param>
//拦截添加,修改等自己规定的方法
</interceptor-ref>
<interceptor-ref name="defaultStack"></interceptor-ref>//配制一个默认的拦截器栈
</interceptor-stack>
</interceptors>
<default-interceptor-ref name="ds"></default-interceptor-ref>
//引用自定义的拦截器
杨大爷 2011-05-05
  • 打赏
  • 举报
回复
你可以把后台的页面放到一个文件夹下,过滤器拦截的时候,未登录的不允许访问这个文件夹下的jsp页面;
uastation 2011-05-05
  • 打赏
  • 举报
回复
用javax.servlet.Filter 这个类的doFilter方法,可以做到想要的功能,一般都是用Spring做的
xiongdan1982 2011-05-05
  • 打赏
  • 举报
回复
为拦截器指定 要拦截的是某个具体的文件夹里的东西。
再将需要进行拦截的后台代码,放到这个文件夹里面。

81,094

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧