You are on page 1of 7

Lm vic vi Filter

ng biduacui24/09/2010 10:12 AM

Filter reques Filter



cho filter
filter
Servlet.
I. F
filter request response


II.
Filter Servlet:




III.
javax.servlet.Filter

void init(FilterConfig config) throws ServletException

void destroy(): Filter
void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException

IV. Filter Chains:
Filter chains Filter Servlet
Filter Servlet

Servlet, FilterChain
Filter Filter

V.



R.C vao project chon New/ Other, chon muc Web chon Filter.


Filter name, Apply To /*


Init Parameter
trong web.xml filter:
<filter>
<filter-name>boDuaFilter</filter-name>
<filter-class>Filter.boDuaFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>boDuaFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

Sau do vit doan code sau cho cho Iilter boDuaFilter:

package Filter;

import java.io.IOException;
import java.util.StringTokenizer;
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.HttpServletResponse;

public class IPFilter implements Filter {
private FilterConfig config;
public final static String IP_RANGE = "127.0";
public IPFilter() {
}

public void init(FilterConfig filterConfig) throws ServletException {
this.config = filterConfig;
}
public void doFilter(ServletRequest request,ServletResponse response,
FilterChain chain) throws IOException, ServletException {

String ip = request.getRemoteAddr();

HttpServletResponse httpResp = null;
if (response instanceof HttpServletResponse) {
httpResp = (HttpServletResponse) response;
}

StringTokenizer toke = new StringTokenizer(ip, ".");
int dots = 0;
String byte1 = "";
String byte2 = "";
String client = "";
while (toke.hasMoreTokens()) {
++dots;

if (dots == 1) {
byte1 = toke.nextToken();
} else {

byte2 = toke.nextToken();
break;//only interested in first two bytes
}
}

client = byte1 + "." + byte2;

if (IP_RANGE.equals(client)) {
httpResp.sendError(HttpServletResponse.SC_FORBIDDEN,
"That means goodbye forever! Message from BoDuaGroup");
} else {

chain.doFilter(request, response);
}
}// doFilter
public void destroy() {
/*called before the Filter instance is removed
from service by the web container*/
}
}
Khi thi hanh chung ta co kt qua sau:

You might also like