过滤器的问题
login.jsp
<%@ page language="java" pageEncoding="UTF-8"%>
<html>
<head>
<title>登陆窗口</title>
<script type="text/javascript">
function login()
{
var vusername =document.all.username.value;
var vpassword = document.all.password.value;
var vusertype = document.all.usertype.value;
if(vusername=="")
{
document.all.usernull.style.display="";
document.all.username.focus();
return ;
}
else
{
document.all.usernull.style.display="none";
}
if(vpassword == "")
{
document.all.pwdnull.style.display="";
document.all.password.focus();
return ;
}
else
{
document.all.pwdnull.style.display="none";
}
if(vusertype == "")
{
document.all.usertypenull.style.display="";
document.all.usertype.focus();
return ;
}
else
{
document.all.usertypenull.style.display="none";
}
document.all.login1.submit();
}
</script>
</head>
<body>
<form action="login.do" method="post" name="login1" id="login1">
用户:<input type="text" name="username" id="username"/><span id="usernull" style="display: none;"><font color="red">用户名不能为空!!!</font></span><br>
密码:<input type="password" name="password" id="password" ><span id="pwdnull" style="display: none;"><font color="red">密码不能为空!!!</font></span><br>
类型:<select name="usertype" id="usertype">
<option value="">--请选择--</option>
<option value="4">编辑</option>
<option value="3">主编</option>
<option value="2">老师</option>
<option value="1">系统管理员</option>
<option value="0">超级管理员</option>
</select><span id="usertypenull" style="display: none;"><font color="red">请选择用户类型!!!</font></span><br>
<input type="button" name="loginBut" value="登陆" onClick="login()">
<input type="reset" value="重写 "/>
</form>
</body>
</html>
LoginFilter类
package com.zsw.ac.filter;
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 {
private String strRedirect = "";
protected FilterConfig filterConfig;
public void destroy() {
// TODO Auto-generated method stub
this.filterConfig = null;
}
public void doFilter(ServletRequest req, ServletResponse res,
FilterChain chain) throws IOException, ServletException {
// TODO Auto-generated method stub
HttpServletRequest hreq = (HttpServletRequest) req;
HttpServletResponse hres = (HttpServletResponse) res;
HttpSession session = hreq.getSession(true);
String isLogin = "";
strRedirect = "http://" + hreq.getServerName() + ":" + hreq.getServerPort() +hreq.getContextPath()+ "/login.jsp";
System.out.println("web URL 路径:"+strRedirect);
try {
if (null != session.getAttribute("username")) {
isLogin = session.getAttribute("username").toString();
System.out.println();
}
if (!isLogin.equals("")) {
System.out.println("验证通过");
chain.doFilter(req, res);
} else {
hres.sendRedirect(strRedirect);
}
} catch (Exception e) {
e.printStackTrace();
}
}
public void init(FilterConfig arg0) throws ServletException {
// TODO Auto-generated method stub
this.filterConfig = arg0;
}
}
Action类
/*
* Generated by MyEclipse Struts
* Template path: templates/java/JavaClass.vtl
*/
package com.zsw.login.action;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import com.zsw.ac.superadmin.service.SuperAdminService;
import com.zsw.ac.superadmin.vo.SuperAdmin;
import com.zsw.login.form.LoginForm;
/**
* MyEclipse Struts
* Creation date: 06-18-2008
*
* XDoclet definition:
* @struts.action path="/login" name="loginForm" input="/login.jsp" scope="request" validate="true"
*/
public class LoginAction extends Action {
/*
* Generated Methods
*/
/**
* Method execute
* @param mapping
* @param form
* @param request
* @param response
* @return ActionForward
*/
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
LoginForm loginForm = (LoginForm) form;
/*接收客户端提交的参数*/
//用户名
String uname = loginForm.getUsername();
//密码
String pwd = loginForm.getPassword();
//级别
int utype = loginForm.getUsertype();
//路径
System.out.println(uname);
System.out.println(pwd);
System.out.println(utype);
String path = "login";
System.out.println("****************8");
if (loginForm.getUsertype() == utype) {
//定义一个超级管理员对象
SuperAdmin supAdmin = null;
//调用service层,返回SuperAdmin对象
supAdmin = new SuperAdminService().login(uname, pwd);
if (supAdmin != null) {
//如果不为空设置到request中去
System.out.println("****************8");
request.setAttribute("name", supAdmin.getMyName());
request.setAttribute("password", supAdmin.getSupPassword());
request.setAttribute("pank", supAdmin.getSuperPank());
path = "suploginsuc";//
//返回
return mapping.findForward(path);
}
}
return mapping.findForward(path);
}
}
web.xml是过滤所用请求
<filter>
<filter-name>LoginFilter</filter-name>
<filter-class>com.zsw.ac.filter.LoginFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>LoginFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
为什么不出效果,当填写了用户名和密码提交后,出现死循环不停的往控制台打印web URL 路径:http://localhost:8080/ArticleCharge/login.jsp
我用的是struts框架