国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院

首頁(yè) > 編程 > JSP > 正文

jsp網(wǎng)頁(yè)登陸驗(yàn)證

2024-09-05 00:22:46
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

jsp登陸驗(yàn)證,網(wǎng)頁(yè)登陸驗(yàn)證帶驗(yàn)證碼校驗(yàn),登錄功能之添加驗(yàn)證碼

part_1:專(zhuān)門(mén)用于生成一個(gè)驗(yàn)證碼圖片的類(lèi):VerificationCode.java

package cn.mike.javase.test;  import java.awt.Color; import java.awt.Font; import java.awt.Graphics2D; import java.awt.image.BufferedImage; import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStream; import java.util.Random;  import javax.imageio.ImageIO;  import org.junit.Test;  /**  * @author : Administrator  * @function : 這是用來(lái)測(cè)試隨機(jī)生成驗(yàn)證碼圖片的類(lèi);  */ public class VerificationCode {    /**    * 單元測(cè)試,試一下能不能自動(dòng)生成驗(yàn)證碼圖片    */   // 這個(gè)函數(shù)是單元測(cè)試時(shí)使用的,這里private一下外面就調(diào)用不到了;   /* @Test */   /* public */private void test_fun() {     VerificationCode vc = new VerificationCode();     BufferedImage image = vc.getImage();     try {       // 生成驗(yàn)證碼圖片,并保存到指定的路徑       VerificationCode.output(image, new FileOutputStream(new File(           ".//image//vcode_2.jpg")));     } catch (FileNotFoundException e) {       e.printStackTrace();     }      // 將隨機(jī)生成的文本內(nèi)容輸出到控制臺(tái),用于校驗(yàn)     System.out.println(vc.getText());   }    private int w = 70;// 寬   private int h = 35;// 高   private String text;// 文本內(nèi)容(驗(yàn)證碼字符串)   private Random r = new Random();   private String[] fontNames = { "宋體", "華文楷體", "黑體", "微軟雅黑", "楷體_GB2312" };   // 隨機(jī)字符集合中不包括0和o,O,1和l,因?yàn)檫@些不易區(qū)分   private String codes = "23456789abcdefghijkmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYXZ";   // 驗(yàn)證碼圖片的背景色:白色   private Color bgColor = new Color(255, 255, 255);    /**    * 返回一個(gè)驗(yàn)證碼圖片buffer對(duì)象:BufferedImage    */   public BufferedImage getImage() {     BufferedImage image = createImage();     // 獲取繪圖環(huán)境(畫(huà)筆工具)     Graphics2D g2 = (Graphics2D) image.getGraphics();     // sb : 用來(lái)保存驗(yàn)證碼字符串文本內(nèi)容     StringBuilder sb = new StringBuilder();      for (int i = 0; i < 4; ++i) {// 隨機(jī)生成4個(gè)字符       String s = randomChar() + "";       sb.append(s);       float x = i * 1.0F * w / 4;       g2.setFont(randomFont());       g2.setColor(randomColor());       g2.drawString(s, x, h - 5);     }      this.text = sb.toString();// 記錄驗(yàn)證碼文本內(nèi)容     drawLine(image);// 畫(huà)干擾線(xiàn)     return image;    }    /**    * @return 獲取驗(yàn)證碼文本內(nèi)容    */   public String getText() {     return text;   }    /**    * @param image    * @param out    *      將文本寫(xiě)到指定的輸出流。比如本測(cè)試中FileOutputStream指定的保存路徑    */   public static void output(BufferedImage image, OutputStream out) {     try {       ImageIO.write(image, "jpeg", out);     } catch (IOException e) {       e.printStackTrace();     }   }    private void drawLine(BufferedImage image) {     Graphics2D g2 = (Graphics2D) image.getGraphics();     for (int i = 0; i < 3; ++i) {// 畫(huà)3條干擾線(xiàn)       int x1 = r.nextInt(w);       int y1 = r.nextInt(h);       int x2 = r.nextInt(w);       int y2 = r.nextInt(h);       g2.setColor(Color.BLUE);       g2.drawLine(x1, y1, x2, y2);     }   }    private Color randomColor() {     int red = r.nextInt(150);     int green = r.nextInt(150);     int blue = r.nextInt(150);     return new Color(red, green, blue);   }    private Font randomFont() {     int index = r.nextInt(fontNames.length);     String fontName = fontNames[index];     int style = r.nextInt(4);     int size = r.nextInt(5) + 24;     return new Font(fontName, style, size);   }    private char randomChar() {     int index = r.nextInt(codes.length());     return codes.charAt(index);   }    private BufferedImage createImage() {     BufferedImage image = new BufferedImage(w, h,         BufferedImage.TYPE_INT_RGB);     Graphics2D g2 = (Graphics2D) image.getGraphics();     g2.setColor(this.bgColor);     g2.fillRect(0, 0, w, h);      return image;   }  } 

part_2:登錄界面:Login.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.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">   -->      <script type="text/javascript">   function _change_verity_code() {     var imgElem = document.getElementById("img_src");      //添加一個(gè)請(qǐng)求參數(shù)a是因?yàn)椋ǔg覽器都有緩存,點(diǎn)擊換一張的時(shí)候沒(méi)反應(yīng),所以加一個(gè)請(qǐng)求參數(shù),獲取當(dāng)前請(qǐng)求時(shí)間,可以精確到毫秒,所以每次請(qǐng)求的參數(shù)都不同,所以瀏覽器有緩存也不妨礙;     imgElem.src = "/ServletDemoProject/servlet/GetVerificationCodeServlet?a="         + new Date().getTime();   } </script>    </head>    <%     String fdbkMsg = (String) request.getAttribute("fdbkMsg");     if (null == fdbkMsg) {       fdbkMsg = "";     }   %>    <%     Boolean logedIn = (Boolean) session.getAttribute("logedIn");     if (null == logedIn) {       logedIn = false;     } else if (logedIn) {       //如果在本次會(huì)話(huà)已經(jīng)登陸,直接重定向到success-page-1       response           .sendRedirect("/ServletDemoProject/LOGIN-DEMO/success-page-1.jsp");     }   %>    <%     String username = "";     Cookie[] cookies = request.getCookies();     if ((null != cookies) && (cookies.length > 0)) {       for (Cookie c : cookies) {         if ("admin".equals(c.getValue())) {           username = "admin";           break;         }       }     }//end if-condition   %>    <body>     <br>     <div align="center">       請(qǐng)登錄:       <br>       <form action="/ServletDemoProject/servlet/LoginVerificationServlet"         method="post">         <div>           用戶(hù)名:           <input type="text" name="username" value="<%=username%>" />           <br>         </div>          <div>           密  碼:           <input type="password" name="password" />           <br>         </div>         <div>           驗(yàn)證碼:           <input type="text" name="code_text" size="3" />           <img src="/ServletDemoProject/servlet/GetVerificationCodeServlet"             id="img_src" />           <a href="javascript:_change_verity_code()">換一張</a>           <br>         </div>          <div>           <font color='red'><%=fdbkMsg%></font>           <br>         </div>          <div>           <input type="submit" value="提交" />           <br>         </div>       </form>     </div>   </body> </html> 

part_3:處理登錄校驗(yàn)的servlet :LoginVerificationServlet.java

package cn.mike.servlet.test_1212;  import java.awt.image.BufferedImage; import java.io.IOException;  import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse;  import cn.mike.javase.test.VerificationCode;  public class GetVerificationCodeServlet extends HttpServlet {    private static final long serialVersionUID = -3520994675366100452L;    public void doGet(HttpServletRequest request, HttpServletResponse response)       throws ServletException, IOException {      // 1.新建一個(gè)VerificationCode類(lèi);     VerificationCode vc = new VerificationCode();      // 2.從VerificationCode類(lèi)中獲取BufferedImage對(duì)象;     BufferedImage bufImage = vc.getImage();      // 3.同時(shí)獲取驗(yàn)證碼中的文本內(nèi)容,并放到session域中, 用于校驗(yàn);     String code_text = vc.getText();     request.getSession().setAttribute("code_text", code_text);      // 4.將生成的圖片輸出到客戶(hù)端瀏覽器     VerificationCode.output(bufImage, response.getOutputStream());    }// end method-doGet    public void doPost(HttpServletRequest request, HttpServletResponse response)       throws ServletException, IOException {      // do same as GET-method :     doGet(request, response);    }// end method-doPost  } 

part_4:成功登陸后的提示界面1:success-page-1.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 'success-page-1.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>    <%     String username = (String) session.getAttribute("username");     if (null == username) {       //如果username為空值,說(shuō)明不是通過(guò)正常渠道來(lái)的,轉(zhuǎn)發(fā)到Login頁(yè)面;       request.setAttribute("fdbkMsg", "別想走后門(mén)進(jìn)來(lái),趕緊登錄!");       request.getRequestDispatcher("/LOGIN-DEMO/Login.jsp").forward(           request, response);     }   %>    <body>     <br>     <%=username%>已經(jīng)成功登陸。     <br>     <font>您可以選擇瀏覽:</font>     <br>     <a href="/ServletDemoProject/LOGIN-DEMO/success-page-2.jsp">點(diǎn)這兒有精彩.</a>     <br>     <a href="/ServletDemoProject/LOGIN-DEMO/success-page-2.jsp">點(diǎn)這兒更精彩.</a>     <br />     <a href="/ServletDemoProject/LOGIN-DEMO/success-page-2.jsp">你敢點(diǎn)這兒?jiǎn)?</a>     <br />   </body> </html> 

part_5:成功登陸后的提示界面1:success-page-2.jsp

<%@ page language="java" import="java.util.Date" pageEncoding="UTF-8"%> <%@ page language="java" import="java.text.SimpleDateFormat"%> <%   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 'success-page-2.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>    <%     String username = (String) session.getAttribute("username");     if (null == username) {       request.setAttribute("fdbkMsg", "呵呵嗒,這里是你來(lái)的地方嗎?快登陸!");       //轉(zhuǎn)發(fā)到登錄界面:       request.getRequestDispatcher("/LOGIN-DEMO/Login.jsp").forward(           request, response);     }      SimpleDateFormat sDateFormat = new SimpleDateFormat("a");     Date today = new Date();     String am_pm_str = sDateFormat.format(today);     String am_pm_str_in_chinese = "";     if ("am".equalsIgnoreCase(am_pm_str)) {       am_pm_str_in_chinese = "上午";     } else       am_pm_str_in_chinese = "下午";      // set null;     sDateFormat = null;     today = null;     am_pm_str = null;   %>    <body>     <br />     <font><b><%=username%><%=am_pm_str_in_chinese%>好,能來(lái)到頁(yè)面2真不簡(jiǎn)單.</b>     </font>   </body> </html> 

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持VeVb武林網(wǎng)。


注:相關(guān)教程知識(shí)閱讀請(qǐng)移步到JSP教程頻道。
發(fā)表評(píng)論 共有條評(píng)論
用戶(hù)名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院
eeuss影院www在线播放| 高清在线观看av| 久久亚洲天堂| 免费a级人成a大片在线观看| 999国产在线视频| 国产一级黄色大片| 开心快乐六月丁香婷婷| 91麻豆精品国产91久久| 国产激情视频一区二区| 97中文字幕| av中文字幕在线看| 久草国产视频| 最近久乱中文字幕| 国产极品视频| 日本一本久久| 国产男女av| 国产寡妇树林野战在线播放| 永久免费在线观看| 久草一本av| 在线欧美一级视频| 天天操天天操一操| 99色在线观看| 免费av不卡在线观看| 国产毛片在线| 在线免费日韩| 国产午夜电影| 成 人免费视频播放| 最近高清中文在线字幕在线观看| 中文字幕第一页在线| 香蕉视频网站在线观看| 国产毛片视频| www.九九热.com| av高清资源| 91欧美在线视频| 国产九九九九| 9色在线视频网站| 中文字幕日本在线观看| 中文av字幕| 综合激情丁香| 久精品在线观看| 国产日产一区二区三区| 免费午夜一级| 伊人网站在线| 国产爆初菊在线观看免费视频网站| 一本久久精品| 精品国内自产拍在线视频| 中文字幕亚洲精品视频| 国产久草在线| 国产免费专区| 国产老肥熟xxxx在线观看| 国产在线视精品麻豆| 青青草视频在线观看| 国产三级自拍| 国产美女免费观看| 国产农村一级特黄α**毛片 | av在线free| 国产特级毛片| 午夜免费视频在线国产| 91av资源在线| 国产69久久| 国产人成在线观看| 国产精品久久久精品a级小说| 国产视频你懂的| 国产精品蜜臀| 99在线播放| 精品国产一区二区三区久久久狼牙| 国产日韩网站| 在线国产一级| jizz国产| 国产在线传媒| 国产高清免费视频| 亚洲欧美日韩综合精品网| av在线免费播放网站| 超碰97在线免费观看| 国产免费永久在线观看| 国产丝袜精品丝袜| 91欧洲在线视精品在亚洲| 青青草原国产在线| 国产在线激情视频| 国产精品爱久久久久久久小说| 国产精品777一区二区| 国产三级香港三韩国三级| 中文在线观看视频| 另类综合图区| 国产福利在线| 四虎国产精品永久| 国产尤物视频在线| 午夜羞羞小视频在线观看| 香蕉视频网站在线播放| 最近中文av字幕在线中文| 国产精品剧情一区二区在线观看 | 国产a国产a国产a| 国产精品视频一区二区图片| 先锋影音av中文字幕| 国产日韩精品在线看| 天天插天天射| 51成人精品网站| 国产有码在线| 成 人免费视频播放| 国产三级视频在线播放线观看| 永久免费av片在线观看全网站| 天堂在线一二区| www.久草.com| 中文字幕av网| 国产视频二区三区| 成人福利视频导航| 亚洲图区欧美| 国产精品yjizz视频网一二区| 九九热免费在线视频| 日本福利在线观看| 四虎网站在线观看| a中文在线播放| 免费影视观看网站入口| 亚洲天堂影院在线观看| 永久免费av网站| 在线观看国产福利视频| 国产女主播在线观看| 最新国产在线| 国产精品日日爱| 国产日本在线视频| 91看片在线观看| 99在线免费视频| 国产91在线视频蝌蚪| 国产激情三区| 在线观看免费观看在线91| 亚洲综合色视频在线观看| 欧美精品se| 国产一区电影| 国产精品免费视频二三区| 中文字幕av高清在线观看| 日本欧美在线视频免费观看| 伊人网站在线| 久热中文字幕在线观看| 国产午夜在线观看| 精品福利视频导航大全| 免费在线看v| 国产精品视频一区二区三区麻豆| 中文字幕视频免费在线观看| 最新中文字幕av专区| 中文岛国精品亚洲一区| 一区二区三区四区在线免费视频| av网址在线播放| 国产一区精品| www.麻豆av.com| 国产精品乱码一区二区三区视频| 一级二级三级在线观看| 国产农村av| 日本h视频在线观看| 国产人成在线视频| 免费av不卡在线观看| 在线视频中文字幕| 国产一卡2卡3卡免费网站| 国产一二区视频| 人人干人人插| 午夜在线不卡| 精品网站www| 国产精品视频一区二区久久| jizz在线免费观看| 国产黄色片中文字幕| 国产又色又爽又黄刺激在线视频| 97国产在线| 国产成人亚洲欧美电影| 国产免费人人看| 麻豆精品视频入口| 天天激情综合| www.色五月| 青青草免费观看免费视频在线| 国产系列电影在线播放网址| 青草av在线| 男人天堂网在线观看| 在线国产一级| 在线国产1区| 日本黄在线观看| 日本福利午夜视频在线| www中文字幕在线观看| 俺来俺也去www色在线观看| 亚洲wwwwww| www.99av| 国产免费av高清在线| 国产视频资源| 在线午夜影院| 久久一本精品| 国产免费av高清在线| 国产精品自产拍在线观看2019| 国产亚洲依依| 亚洲国产精品区| 欧美日韩一区二区三区在线播放| 欧美婷婷久久五月精品三区| 国产在线第一页| 精品无人乱码| 另类专区欧美| 国产精品久久久精品a级小说| 精品卡一卡卡2卡3网站| www.色五月| 国产日韩欧美第一页| 伊人222成人综合网| 狠狠操狠狠色| 国产欧美久久久久久久久| 99免费视频| 国产精品天堂|