Servlet之簡單用戶登錄驗證


網(wǎng)站結構

Login.java -> 登錄界面 執(zhí)行(登錄請求)
LoginCl.java -> 驗證用戶
登錄界面 <- 驗證不通過 | 驗證通過 -> welcome.java 歡迎界面

Login.java

// 登錄界面
package com.lee;
import javax.servlet.http.*;
import java.io.*;

public class Login extends HttpServlet {
    // 處理get請求
    public void doGet(HttpServletRequest req,HttpServletResponse res){
        // 業(yè)務邏輯
        this.doPost(req,res);
        try{
            // 解決中文亂碼
            res.setContentType("text/html;charset=gbk");
            PrintWriter pw = res.getWriter();
            // 返回登錄界面
            pw.println("<html>");
            pw.println("<body>");
            pw.println("<form action=loginCl method=post>");
            pw.println("<h1>登錄 :</h1>");
            pw.println("用戶名:<input type=text name=username><br>");
            pw.println("密碼:<input type=password name=passwd><br>");
            pw.println("<input type=submit value=登錄><br>");
            pw.println("</form>");
            pw.println("</body>");
            pw.println("</html>");
        }catch(Exception e){
            e.printStackTrace();
        }
    }
    
    // 處理post請求
    public void doPost(HttpServletRequest req,HttpServletResponse res){
        // doGet doPost合二為一

    }
}

LoginCl.java

// 用戶驗證servlet
package com.lee;
import javax.servlet.http.*;
import java.io.*;

public class LoginCl extends HttpServlet {
    // 處理get請求
    public void doGet(HttpServletRequest req,HttpServletResponse res){
        // 業(yè)務邏輯
        this.doPost(req,res);
    
    }
    
    // 處理post請求
    public void doPost(HttpServletRequest req,HttpServletResponse res){
        // doGet doPost合二為一
        try{
            // 接收客戶端表單提交的用戶名和密碼
            String uName = req.getParameter("username");
            String pwd = req.getParameter("passwd");
            //驗證
            if(uName.equals("root") && pwd.equals("123")){
                // 合法
                res.sendRedirect("welcome");
            }else{
                // 不合法
                //跳轉
                res.sendRedirect("login");  // 你需要跳轉的 URL
            }
        }catch(Exception e){
            e.printStackTrace();
        }
    }
}

Welcome.java

// 歡迎界面
// 用戶驗證servlet
package com.lee;
import javax.servlet.http.*;
import java.io.*;

public class Welcome extends HttpServlet {
    // 處理get請求
    public void doGet(HttpServletRequest req,HttpServletResponse res){
        // 業(yè)務邏輯
        try{
            PrintWriter pw = res.getWriter();
            pw.println("Welcome!");
        }catch(Exception e){
            e.printStackTrace();
        }
    }
    
    // 處理post請求
    public void doPost(HttpServletRequest req,HttpServletResponse res){
        // doGet doPost合二為一

    }
}

XML添加如下配置

    <!--登錄Login-->
    <servlet>
        <servlet-name>login</servlet-name>  
        <servlet-class>com.lee.Login</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>login</servlet-name>
        <url-pattern>/login</url-pattern>
    </servlet-mapping>
    
    <!--驗證用戶登錄-->
        <servlet>
        <servlet-name>loginCl</servlet-name>    
        <servlet-class>com.lee.LoginCl</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>loginCl</servlet-name>
        <url-pattern>/loginCl</url-pattern>
    </servlet-mapping>
    <!--歡迎界面-->
    <servlet>
        <servlet-name>welcome</servlet-name>    
        <servlet-class>com.lee.Welcome</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>welcome</servlet-name>
        <url-pattern>/welcome</url-pattern>
    </servlet-mapping>

給個github follow me的鏈接,上面有很多初學者可供學習的資料,項目.

<a>https://github.com/SuperZee</a>

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,323評論 25 708
  • Java程序調用帶參數(shù)的shell腳本返回值 首先來看看linux中shell變量($#,$@,$0,$1,$2)...
    Javen205閱讀 3,929評論 0 3
  • 這兩天忽然有點想回我的大學-漳州師范學院看看了,雖然現(xiàn)在已經(jīng)改了名-閩南師范大學,還是比較喜歡用原來的名字稱呼她...
    simple_xuan閱讀 386評論 0 3
  • 昨晚平安夜,夜班還算不是太忙,就是發(fā)熱咳嗽的病人依舊多,大部分是衡中和二中的學生,癥狀相似,流感樣病例,都...
    6d09a43af1ec閱讀 353評論 0 0
  • 我一直想寫下一些東西,為你,為我 為我們的愛,為回憶,也為留念 可是一直不敢動筆 因為心中裝滿太多的悲傷,不想被人...
    永遠不游的魚閱讀 226評論 0 1

友情鏈接更多精彩內容