首先写一个简单的登陆页面:
登陆页面交给过滤器处理:
在过滤器中可以连接后台数据库进行比对验证……上面的例子只是简单的通过用户名是否为空来说明这个例子。
如果权限不够或没有权限,就可以执行像上面跳转errormessage.jsp这样。当然也可以执行其他操作。如果权限允许,那就执行相关权限的操作……
errormessage.jsp:
loginsuccess.jsp:(权限允许)
过滤器配置文件这个比较容易了吧:
上面只是说明使用过滤器施行权限验证的例子……
当然,自己可以灵活改变。
使用struts2的拦截器……也同样可以的……
<%@ page language="java" contentType="text/html;charset=utf-8" %>
<Html>
<head><title> start Logining</title></head>
<body>
<form action="LoginFilter" method="post">
用户名:<input type="text" name="username"/>
<input type="submit" value="登陆"/>
</form>
</body>
</Html>
登陆页面交给过滤器处理:
package cn.edu.bzu;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
public class LoginFilter implements Filter{
public void init(FilterConfig config){ }
public void doFilter(ServletRequest request,ServletResponse response,FilterChain chain)throws IOException,ServletException{
HttpServletRequest req=(HttpServletRequest)request;
HttpServletResponse resp=(HttpServletResponse)response;
//如果会话不存在则返回null
HttpSession session=req.getSession(true);
session.setAttribute("username",req.getParameter("username"));
String username=(String)session.getAttribute("username");
//可以在数据库中提取数据,进行比对。
if(username==null || "".equals(username)){
resp.sendRedirect("errormessage.jsp");
return;
}else{
req.getRequestDispatcher("loginsuccess.jsp").forward(req,resp);
}
}
public void destroy(){}
}
在过滤器中可以连接后台数据库进行比对验证……上面的例子只是简单的通过用户名是否为空来说明这个例子。
如果权限不够或没有权限,就可以执行像上面跳转errormessage.jsp这样。当然也可以执行其他操作。如果权限允许,那就执行相关权限的操作……
errormessage.jsp:
<%@ page language="java" contentType="text/html;charset=utf-8" %>
<html>
<head><title>Filter for Login</title>
<script language="javascript" type="text/javascript">
var count=5;
function showError(){
if(count==0)
window.location.href="loginstart.jsp";
document.getElementById("showerror").innerHTML=count--;
setTimeout("showError()",1000);
}
</script>
</head>
<body οnlοad="showError()">
<center>
<span id="showerror" style="color:red;font-weight:blod;"></span>秒后自动跳转至登陆页面……
</center>
</body>
</html>
loginsuccess.jsp:(权限允许)
<%@ page language="java" contentType="text/html;charset=utf-8" %>
<html>
<head><title>Success for login</title></head>
<body>
<%
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
%>
<strong>
<%=new String(request.getParameter("username").getBytes("ISO-8859-1"),"UTF-8")%>
</strong>
<font color="blue" face="微软雅黑" weight="bold">登陆成功</font>
</body>
</html>
过滤器配置文件这个比较容易了吧:
<filter>
<filter-name>LoginFilter</filter-name>
<filter-class>cn.edu.bzu.LoginFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>LoginFilter</filter-name>
<url-pattern>/LoginFilter</url-pattern>
</filter-mapping>
上面只是说明使用过滤器施行权限验证的例子……
当然,自己可以灵活改变。
使用struts2的拦截器……也同样可以的……