Filter 過濾程式 過濾非法ip地址

來源:互聯網
上載者:User

登入介面

login_form.jsp

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%><%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html>  <head>    <base href="<%=basePath%>">        <title>My JSP 'login_form.jsp' starting page</title>    <meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0">    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"><meta http-equiv="description" content="This is my page"><!--<link rel="stylesheet" type="text/css" href="styles.css">-->  </head>    <body>  <pre>  <form action="login_accept" method="post">   使用者名稱:<input type="text" name="name"/><br/>   身  份:<input type="text" name="identity"/><br/>          <input type="submit" value="提交"/><br/>   </form> </pre> ${errorip }  </body></html>

Servlet 處理常式

LoginAcceptServlet.java

package servlet;import java.io.IOException;import java.io.PrintWriter;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;public class LoginAcceptServlet extends HttpServlet {public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {        String name=request.getParameter("name");        String identity=request.getParameter("identity");        PrintWriter out=response.getWriter();        System.out.println(name+" "+identity);        out.println(name+"<br/>");        out.println(identity);}public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException { doGet(request,response);}}

Filter 過濾程式

FilterTest1.java 過濾字元集

package 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;public class FilterTest1 implements Filter {    private String encoding=null;public void destroy() {// TODO Auto-generated method stub}public void doFilter(ServletRequest request, ServletResponse response,FilterChain chain) throws IOException, ServletException {request.setCharacterEncoding(encoding);response.setCharacterEncoding(encoding);response.setContentType("text/html;charset=utf-8");chain.doFilter(request, response);}public void init(FilterConfig config) throws ServletException {encoding=config.getInitParameter("characterencoding");}   }

FilterTest2.java 過濾非法ip

package 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;public class FilterTest2 implements Filter {public void destroy() {}public void doFilter(ServletRequest request, ServletResponse response,FilterChain chain) throws IOException, ServletException {String ip=request.getRemoteAddr();System.out.println(ip+"  ");if(ip.startsWith("127")){System.out.println(ip+"  ");chain.doFilter(request, response);}else{System.out.println("防止非法ip登陸");request.setAttribute("errorip", "地址不正確,不能登入");request.getRequestDispatcher("login_form.jsp").forward(request, response);}}public void init(FilterConfig arg0) throws ServletException {}}

設定檔 web.xml

<?xml version="1.0" encoding="UTF-8"?><web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"><filter>  <filter-name>encodingFilter</filter-name>  <filter-class>filter.FilterTest1</filter-class>  <init-param>   <param-name>characterencoding</param-name>   <param-value>utf-8</param-value>  </init-param> </filter> <filter>  <filter-name>ipFilter</filter-name>  <filter-class>filter.FilterTest2</filter-class> </filter> <filter-mapping>  <filter-name>encodingFilter</filter-name>  <url-pattern>/*</url-pattern> </filter-mapping>  <filter-mapping>  <filter-name>ipFilter</filter-name>  <url-pattern>/*</url-pattern> </filter-mapping>  <servlet>    <description>This is the description of my J2EE component</description>    <display-name>This is the display name of my J2EE component</display-name>    <servlet-name>LoginAcceptServlet</servlet-name>    <servlet-class>servlet.LoginAcceptServlet</servlet-class>  </servlet>  <servlet-mapping>    <servlet-name>LoginAcceptServlet</servlet-name>    <url-pattern>/login_accept</url-pattern>  </servlet-mapping>  <welcome-file-list>    <welcome-file>index.jsp</welcome-file>  </welcome-file-list></web-app>

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.