一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

服務(wù)器之家 - 編程語言 - JAVA教程 - 一個(gè)處理用戶登陸的servlet簡單實(shí)例

一個(gè)處理用戶登陸的servlet簡單實(shí)例

2019-12-07 15:55shichen2014 JAVA教程

這篇文章主要介紹了一個(gè)處理用戶登陸的servlet簡單實(shí)例,可通過servlet實(shí)現(xiàn)處理用戶登錄的功能,具有一定參考借鑒價(jià)值,需要的朋友可以參考下

本文實(shí)例講述了一個(gè)處理用戶登陸servlet實(shí)現(xiàn)方法。分享給大家供大家參考。具體分析如下:

Login.java代碼如下:

 

復(fù)制代碼代碼如下:


package com.bai;

 

import javax.servlet.http.*;

import java.io.*;

public class Login extends HttpServlet{
    public void doGet(HttpServletRequest req,HttpServletResponse res){
        try{req.setCharacterEncoding("gb2312");
        res.setContentType("text/html;charset=gb2312");
            PrintWriter pw=res.getWriter();
            pw.println("<html>");
            pw.println("<body>");
            pw.println("<h1>登陸界面</h1>");
            pw.println("<form action=logincl method=post>");
            pw.println("用戶名:<input type=text name=username><br>");
            pw.println("密碼:<input type=password name=passwd><br>");
            pw.println("<input type=submit value=login><br>");
            pw.println("</form>");
            pw.println("</body>");
            pw.println("</html>");
        }
        catch(Exception e){
            e.printStackTrace();
        }
    }
    
    public void doPost(HttpServletRequest req,HttpServletResponse res){
        this.doGet(req,res);
    }
}

 

LoginCl.java代碼如下:

 

復(fù)制代碼代碼如下:


package com.bai;

 

import javax.servlet.http.*;

import java.io.*;
import java.sql.*;

public class LoginCl extends HttpServlet{
    public void doGet(HttpServletRequest req,HttpServletResponse res){
        
        Connection conn=null;
        Statement stmt=null;
        ResultSet rs=null;
        String sql = "select username,passwd from users where username = ? and passwd = ?";
        try{//req.setCharacterEncoding("gb2312");
            String user=req.getParameter("username");
            String password=req.getParameter("passwd");
            
            Class.forName("com.mysql.jdbc.Driver");
            conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/sqdb","root","root");
//            stmt=conn.createStatement();
            PreparedStatement pstmt = conn.prepareStatement(sql);
            pstmt.setString(1, user);
            pstmt.setString(2, password);
            rs = pstmt.executeQuery();
//            rs=stmt.executeQuery("select top 1 * from users where username='"+user
//                +"' and passwd='"+password+"'");
            if(rs.next())
            {
                HttpSession hs=req.getSession(true);
                hs.setMaxInactiveInterval(60);
                hs.setAttribute("name",user);
                res.sendRedirect("welcome?&uname="+user+"&upass="+password);
            }
            else{
                res.sendRedirect("login"); //url
            }
            
        }
        catch(Exception e){
            e.printStackTrace();
        }finally{
            try{
                if(rs!=null){
                rs.close();
                }
                if(stmt!=null){
                    stmt.close();
                }
                if(conn!=null){
                    conn.close();
                }    
            }catch(Exception e){
                e.printStackTrace();
            }        
        }
    }
    
    public void doPost(HttpServletRequest req,HttpServletResponse res){
        this.doGet(req,res);
    }
}

 

其實(shí)上面這個(gè)處理用戶名密碼帶有明顯注入漏洞,可以根據(jù)用戶名從數(shù)據(jù)庫取密碼,用取出的密碼和用戶輸入的密碼比較

 

復(fù)制代碼代碼如下:


sql=select passwd from users where username = ?  limit 1

 

if(rs.next())
{
    String passwd=rs.getString(1);
    if(passwd.equals(password))
            //密碼正確
    else //密碼錯(cuò)誤
}

 

Welcome.java代碼如下:

 

復(fù)制代碼代碼如下:


package com.bai;

 

import javax.servlet.http.*;

import java.io.*;

public class Welcome extends HttpServlet{
    public void doGet(HttpServletRequest req,HttpServletResponse res){
        
        HttpSession hs=req.getSession();
        String val=(String)hs.getAttribute("pass");
        
        if(val==null){
            try{
                System.out.print(1);
                res.sendRedirect("login");
            }catch(Exception e){
                e.printStackTrace();
            }
            
        }        
            
        String u=req.getParameter("uname");
        String p=req.getParameter("upass");
        
        try{//req.setCharacterEncoding("gb2312");
            PrintWriter pw=res.getWriter();
            pw.println("welcome! "+u+"&pass="+p);
        }
        catch(Exception e){
            e.printStackTrace();
        }
    }
    
    public void doPost(HttpServletRequest req,HttpServletResponse res){
        this.doGet(req,res);
    }
}

 

希望本文所述對大家的Java程序設(shè)計(jì)有所幫助。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 麻豆网站在线看 | 99精品视频在线观看免费 | 三级全黄裸体 | 99年水嫩漂亮粉嫩在线播放 | 特级非洲黑人一级毛片 | 丰腴尤物贵妇浪荡小说 | 亚洲欧美久久久久久久久久爽网站 | 向日葵视频app下载18岁以下勿看 | 国产成人精品在线观看 | 毛片在线免费视频 | 波多野结衣在线免费观看 | 五月天色网站 | 天天综合色网 | 黄漫在线播放 | 青草国产在线视频 | 国产午夜亚洲精品一区网站 | 国产精品九九热 | 精品一区在线 | 18hdxxxx中国 | 成年人黄色录像 | 肉性天堂| 996免费视频国产在线播放 | 国产成人精品综合在线观看 | 成年人免费看的视频 | 国产精品一在线观看 | 美女的让男人桶爽30分钟的 | 亚洲a区视频 | 欧美成人中文字幕 | 疯狂伦交1一6 小说 风间由美在线 | yy6080欧美三级理论 | 日本伦理动漫在线观看 | 免费看美女被靠到爽的视频 | 大肥臀风间由美 中文字幕 大东北chinesexxxx露脸 | 国产在线精品观看 | 国产偷窥女洗浴在线观看亚洲 | 国产欧美视频一区二区三区 | 亚洲第一页综合 | 国产欧美一区二区精品性色99 | 欧美精品一区二区三区免费 | 国内偷拍第一页 | a级特黄毛片免费观看 |