package com.javaweb;
import java.io.IOException;
import javax.management.modelmbean.RequiredModelMBean;
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.HttpSession;
import com.sun.net.httpserver.Filter.Chain;
public class FilterTest implements Filter {
public void destroy() {
// TODO Auto-generated method stub
System.out.println("销毁");
}
public void doFilter(ServletRequest arg0, ServletResponse arg1,
FilterChain arg2) throws IOException, ServletException {
// TODO Auto-generated method stub
HttpServletRequest request=(HttpServletRequest)arg0;
ServletResponse response=(ServletResponse)arg1;
FilterChain chain=(FilterChain)arg2;
HttpSession session=request.getSession();
request.setCharacterEncoding("gb2312");//设置以后,永远都不用再设置啦,因为过滤器在服务器和浏览器之间
//获取用户名,因为页面跳转,所以用session
String login=(String)session.getAttribute("username");
//如果是登录判断页面,不用进行过滤检查
if("/hello/LoginConf.jsp".equals(request.getRequestURI()))
{
chain.doFilter(request, response);
}
else
{
//判断用户是否进行登录,如果进行了登录才继续操作,否则跳转到登录界面
if(login==null||"".equals(login))
{
request.getRequestDispatcher("LoginForm.jsp").forward(request, response);
}
else
{
chain.doFilter(request, response);
}
}
}
public void init(FilterConfig arg0) throws ServletException {
// TODO Auto-generated method stub
System.out.println("初始化");
}
}
LoginForm.jsp
<%@ page language="java" import="java.util.*" contentType="text/html;charset=gb2312"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
</head>
<body>
<center>
<form action="LoginConf.jsp" method="post">
<table>
<tr>
<td colspan="2">p用户登录</td>
</tr>
<tr>
<td>账号:</td>
<td ><input type="text" name="username"></td>
</tr>
<tr>
<td>密码:</td>
<td><input type="password" name="password"></td>
</tr>
<tr>
<td colspan="2">
<input type="submit" value="登录"/>
<input type="reset" value="重置"/>
</td>
</tr>
</table>
</form>
</center>
</body>
</html>
LoginConf.jsp
<%@ page language="java" import="java.util.*" contentType="text/html;charset=gb2312"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
</head>
<body>
<%
String username=request.getParameter("username");
String password=request.getParameter("password");
%>
<%
if("123".equals(username)&&"456".equals(password))
{
session.setAttribute("username",username);
%>
<jsp:forward page="LoginSuccess.jsp"/>
<%
}
else
{
%>
<jsp:forward page="LoginFailure.jsp"/>
<%
}
%>
</body>
</html>
LoginSuccess.jsp
<%@ page language="java" import="java.util.*" contentType="text/html;charset=gb2312"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
</head>
<body>
<center>
<h1>登录成功</h1>
${sessionScope.username }欢迎登录
</center>
</body>
</html>
LoginFailure.jsp
<%@ page language="java" import="java.util.*" contentType="text/html;charset=gb2312"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
</head>
<body>
<center>
<h1>登录失败</h1>
</center>
</body>
</html>