在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 教程/ Linux/ Servlet身份驗(yàn)證過濾器
Servlet web.xml welcome-file-list
Servlet從數(shù)據(jù)庫(kù)讀取記錄性能優(yōu)化
Servlet URL重寫帶參數(shù)
War文件
Web技術(shù)基礎(chǔ)
Servlet GenericServlet類
Servlet API
Servlet ServletInputStream類
使用MyEclipse創(chuàng)建Servlet
Servlet增刪改查
Servlet ServletConfig配置信息
Servlet Cookies
Servlet重定向
Servlet生命周期
Servlet HttpSession會(huì)話
Servlet HttpServlet類
Servlet注冊(cè)表單示例
Servlet表單隱藏字段
Servlet下載文件
Servlet教程
Servlet身份驗(yàn)證過濾器
Servlet ServletOutputStream類
Servlet HttpSession登錄注銷實(shí)例
Servlet啟動(dòng)時(shí)加載
Servlet事件和監(jiān)聽器
使用Eclipse創(chuàng)建Servlet
Servlet ServletContextEvent事件
Servlet HttpSessionEvent統(tǒng)計(jì)在線用戶數(shù)實(shí)例
Servlet RequestDispatcher請(qǐng)求轉(zhuǎn)發(fā)
Servlet使用注釋
Servlet過濾器示例
Servlet過慮器
Servlet ServletContext配置信息
Servlet登錄注銷Cookies實(shí)例
Servlet工作流程
Servlet會(huì)話跟蹤
Servlet登錄實(shí)例
Servlet ServletRequest接口
Servlet ServletRequestEvent類和接口
Servlet入門程序
Servlet查詢搜索數(shù)據(jù)示例
Servlet FilterConfig應(yīng)用示例
Servlet顯示所有頭信息
Servlet屬性設(shè)置
使用NetBeans創(chuàng)建Servlet
Servlet接口實(shí)現(xiàn)
Servlet上傳文件

Servlet身份驗(yàn)證過濾器

可以在過濾器中執(zhí)行身份認(rèn)證。 在這里,我們將如何在過濾器類檢查由用戶提交的密碼,如果給定密碼為admin,它將把請(qǐng)求轉(zhuǎn)發(fā)到WelcomeAdmin servlet,否則會(huì)顯示錯(cuò)誤消息。

使用過濾器驗(yàn)證用戶的示例

下面來看看如何使用過濾器驗(yàn)證用戶的簡(jiǎn)單示例。

在這個(gè)示例中創(chuàng)建了以下幾個(gè)主要的代碼文件:

  • index.html - 首頁
  • MyFilter.java - 過濾器,用于處理用戶登錄信息和跳轉(zhuǎn)。
  • AdminServlet.java - 管理員的Servlet
  • web.xml - 項(xiàng)目描述符和配置信息。

打開Eclipse,創(chuàng)建一個(gè)動(dòng)態(tài)Web項(xiàng)目:AuthenticationFilter,其完整的目錄結(jié)構(gòu)如下所示 -

以下是這個(gè)項(xiàng)目中的幾個(gè)主要的代碼文件。
文件:index.html -

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Servlet身份驗(yàn)證過濾器</title>
</head>
<body>
    <div style="font-align: center;">
        <form action="login" method="post">
            用戶名:<input type="text" name="username" value="maxsu"/>密碼:<input type="password"
                name="password" /><input type="submit" value="登錄">
        </form>
    </div>
</body>
</html>

文件:MyFilter.java -

package com.yiibai;

import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.*;

public class MyFilter implements Filter {

    public void init(FilterConfig arg0) throws ServletException {
        //
    }

    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
            throws IOException, ServletException {

        response.setCharacterEncoding("UTF-8");
        response.setContentType("text/html;charset=UTF-8");
        request.setCharacterEncoding("UTF-8");
        PrintWriter out = response.getWriter();
        String password = request.getParameter("password");
        if (password == null) {
            password = "";
        }

        if (password.equals("admin")) {
            chain.doFilter(request, response);// sends request to next resource
        } else {
            out.print("用戶名或密碼錯(cuò)誤!");
            RequestDispatcher rd = request.getRequestDispatcher("index.html");
            rd.include(request, response);
        }
    }

    public void destroy() {
        System.out.println("MyFilter.destroy()");
    }

}

文件:AdminServlet.java -

package com.yiibai;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.*;

public class AdminServlet extends HttpServlet {

    public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        response.setCharacterEncoding("UTF-8");
        response.setContentType("text/html;charset=UTF-8");
        request.setCharacterEncoding("UTF-8");
        PrintWriter out = response.getWriter();

        out.print("歡迎您來到 ADMIN頁面~");
        out.close();
    }
}

文件:web.xml -

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns="http://xmlns.jcp.org/xml/ns/javaee"
    xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
    id="WebApp_ID" version="3.1">
    <display-name>AuthenticationFilter</display-name>
    <welcome-file-list>
        <welcome-file>index.html</welcome-file>
        <welcome-file>index.jsp</welcome-file>
    </welcome-file-list>
    <servlet>
        <servlet-name>AdminServlet</servlet-name>
        <servlet-class>com.yiibai.AdminServlet</servlet-class>
    </servlet>

    <servlet-mapping>
        <servlet-name>AdminServlet</servlet-name>
        <url-pattern>/login</url-pattern>
    </servlet-mapping>

    <filter>
        <filter-name>f1</filter-name>
        <filter-class>com.yiibai.MyFilter</filter-class>
    </filter>
    <filter-mapping>
        <filter-name>f1</filter-name>
        <url-pattern>/login</url-pattern>
    </filter-mapping>
</web-app>

在編寫上面代碼后,部署此Web應(yīng)用程序(在項(xiàng)目名稱上點(diǎn)擊右鍵->”Run On Server…”),打開瀏覽器訪問URL: http://localhost:8080/SimpleFilter/ ,如果沒有錯(cuò)誤,應(yīng)該會(huì)看到以下結(jié)果 -

輸入密碼:admin,然后提交表單登錄,應(yīng)該會(huì)看到以下結(jié)果 -