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

服務(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ì)有所幫助。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 俄罗斯美女破苞 | 欧美日韩中文字幕一区二区高清 | a v在线男人的天堂观看免费 | 国产成人夜色影视视频 | 91麻豆精品国产片在线观看 | 国产成人盗拍精品免费视频 | 我的年轻漂亮继坶三级 | 2021国产麻豆剧传媒新片 | 国产一级毛片潘金莲的奶头 | 国色天香社区视频免费观看3 | 好湿好紧太硬了我太爽了h 好湿好滑好硬好爽好深视频 | 亚洲精品国产在线网站 | 亚洲精品国产福利片 | 亚洲色图首页 | 麻豆网站在线看 | 91桃花| 艹b视频在线观看 | 男人狂躁女人下面的视频免费 | 超爽人人做人人爽 | 国产一区精品视频 | 国产成人刺激视频在线观看 | 午夜精品亚洲 | 成人一级黄色大片 | 国产亚洲精品第一综合另类 | 好大好长好紧爽免费 | 久久精品动漫网一区二区 | 亚洲精品久久啪啪网站成年 | 99久久精品免费看国产一区二区 | 十大免费批日的软件 | 跪在老师脚下吃丝袜脚 | 免费精品视频在线 | 男人含玉势出嫁束器 | 国产伦精一区二区三区视频 | 拔插拔插.com | 亚洲波多野结衣日韩在线 | 亚洲人成高清毛片 | 亚洲欧洲日产v特级毛片 | 国产精选之刘婷野战 | 超级碰碰免费视频 | 乌克兰一级毛片9一18 | 欧美精品一线二线大片 |