整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          jsp第三天練習

          ndex.jsp

          <%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8" language="java" errorPage="" %>
          <html>
          <head>
              <title>加密的驗證碼</title>
              <link rel="stylesheet" href="css/style.css" />
              <script  language="javascript">
                  function myReload(){
                      //document.createCheckCode.src="PictureCheckCode";
                      document.getElementById("createCheckCode").src=document.getElementById("createCheckCode").src+"?nocache="+new Date().getTime();
                  }
              </script>
              <meta http-equiv="Content-Type" content="text/html;charset=utf-8">
          </head>
          <body style="filter:progid:DXImageTransform.Microsoft.Gradient(startColorStr='#4F6D92',endColorStr='#ACCBE7',gradientType='0');">
          <table width="100%" height="451" border="0" cellpadding="0" cellspacing="0">
              <tr>
                  <td align="center"><table width="509" border="0" cellspacing="0" cellpadding="0">
                      <tr>
                          <td height="142"><img src="images/login_top.jpg" width="509" height="142"></td>
                      </tr>
                      <tr>
                          <td height="159" valign="top" background="images/login_bottom.jpg">
                              <table width="350"  border="0" cellpadding="0" cellspacing="0" background="KCM/login.gif">
                              <form  name="form1" method="post" action="check.jsp" onSubmit="return check();">
                                  <tr>
                                      <td width="84"> </td>
                                      <td width="57" height="28">用戶名:</td>
                                      <td colspan="2"><input name="username" type="text" size="29"></td></tr>
                                  <tr>
                                      <td> </td>
                                      <td height="28">密  碼:</td>
                                      <td colspan="2"><input name="password" type="password" size="29"></td></tr>
                                  <tr>
                                      <td height="24" align="center"> </td>
                                      <td height="28" align="center">驗證碼:</td>
                                      <td width="33" height="24" align="left">
                                          <input name="checkCode" title="驗證碼區分大小寫" type="text" size="4" maxlength="4">        </td>
                                      <td width="176" align="left"> 
                                          <img src="PictureCheckCode" id="createCheckCode" style="border:#999999 solid 1px">
                                          <a href="#" onClick="myReload()">看不清?換一個</a>
                                      </td>
                                  </tr>
                                  <tr>
                                      <td height="37" colspan="4" align="center"><input name="submit" type="submit" class="btn_bg_manageLogin" value="登 錄">
                                           
                                          <input name="reset" type="reset" class="btn_bg_manageLogin" value="取 消">
                                      </td>
                                  </tr>
                              </form>
                          </table></td>
                      </tr>
                  </table>
                  </td>
              </tr>
          </table>
          </body>
          </html>
          <script language="javascript">
              function check(){
                  if(form1.username.value==""){
                      alert("請輸入用戶名!");
                      form1.username.focus();
                      return false;
                  }
                  if(form1.password.value==""){
                      alert("請輸入密碼!");
                      form1.password.focus();
                      return false;
                  }
                  if(form1.checkCode.value==""){
                      alert("請輸入驗證碼!");
                      form1.checkCode.focus();
                      return false;
                  }
              }
          </script>

          check.jsp

          <%@ page contentType="text/html;charset=UTF-8" language="java" %>
          <jsp:useBean id="encode" class="com.demo.Encode" scope="request"/>
          <%
              String checkCode = request.getParameter("checkCode").toString();
              checkCode = encode.encodeByMD5(checkCode);	//進行MD5加密
              if("".equals(request.getParameter("username")) || "".equals(request.getParameter("password"))){
                  out.println("<script>alert('請輸入用戶名或密碼!');window.location.href='index.jsp';</script>");
              }
              else{
                  if(!("mr".equals(request.getParameter("username")) && "mrsoft".equals(request.getParameter("password")))){
                      out.println("<script>alert('您輸入的用戶名或密碼不正確!');window.location.href='index.jsp';</script>");
                  }
              }
          
              if ("".equals(checkCode) || checkCode == null) {
                  out.println("<script>alert('請輸入驗證碼!');window.location.href='index.jsp';</script>");
              }
              else {
                  if (!checkCode.equals(session.getAttribute("randCheckCode"))) {
                      out.println("<script>alert('您輸入的驗證碼不正確!');window.location.href='index.jsp';</script>");
                  }
              }
          
          %>
          <html>
          <head>
              <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
              <link href="css/style.css" rel="stylesheet" type="text/css">
          
          
          </head>
          <body>
          <table width="778" height="275" border="0" align="center" cellpadding="0" cellspacing="0">
              <tr>
                  <td height="115" colspan="2">
                      <table width="778"  border="0" align="center" cellpadding="0" cellspacing="0">
                          <tr>
                              <td width="784" height="115" align="center" valign="top">
                                  <img src="images/logo.jpg" width="778" height="115">
                              </td>
                          </tr>
                      </table>
                  </td>
              </tr>
              <tr>
                  <td width="190"><a href="#" onClick="show_div('menu1')" >
                      <img src="images/left_top.GIF" width="186" height="33"></a>
                      <table width="186" height="331" border="0" cellpadding="0" cellspacing="0" class="tableBorder_bold">
                          <tr>
                              <td height="323" align="center" valign="top">
                                  <!--基礎信息管理-->
                                  <a href="#">
                                      <img name="Imgmenu1" border="0"
                                                   src="images/menu_1.JPG" align="ABSMIDDLE" width="165" height="26"></a>
                                  <div id="menu1">
                                      <table width="165" border="0" cellpadding="0" cellspacing="0" class="tableBorder">
                                          <tr><td width="18%" height="24" align="center"> 
                                              <img src="images/subMenu_ico.GIF" width="4" height="7"></td>
                                              <td width="82%"><a href="#">客戶信息管理</a></td>
                                          </tr>
                                          <tr><td height="24" align="center"> 
                                              <img src="images/subMenu_ico.GIF" width="4" height="7"></td>
                                              <td><a href="#">商品信息管理</a></td>
                                          </tr>
                                          <tr><td height="24" align="center"> 
                                              <img src="images/subMenu_ico.GIF" width="4" height="7"></td>
                                              <td><a href="#">供應商信息管理</a></td>
                                          </tr>
                                          <tr><td height="24" align="center"> 
                                              <img src="images/subMenu_ico.GIF" width="4" height="7"></td>
                                              <td><a href="#">商品信息查詢</a></td>
                                          </tr>
                                          <tr><td height="24" align="center"> 
                                              <img src="images/subMenu_ico.GIF" width="4" height="7"></td>
                                              <td><a href="#">客戶信息查詢</a></td>
                                          </tr>
                                          <tr><td height="24" align="center"> 
                                              <img src="images/subMenu_ico.GIF" width="4" height="7"></td>
                                              <td><a href="#">供應商信息查詢</a></td>
                                          </tr>
                                      </table>
                                  </div>
                                  <!--庫存管理-->
                                  <a href="#" >
                                      <img name="Imgmenu3" align="ABSMIDDLE"
                                           src="images/menu_3.JPG" border="0" width="165" height="28"></a><br>
                                  <!--銷售管理-->
                                  <a href="#">
                                      <img name="Imgmenu4" align="ABSMIDDLE"
                                           src="images/menu_4.JPG" border="0" width="165" height="28"></a><br>
                                  <a href="#">
                                      <img name="Imgmenu5" align="ABSMIDDLE"
                                           src="images/menu_5.JPG" border="0" width="165" height="28"></a><br>
          
                                  <a href="#">
                                      <img name="Imgmenu6" align="ABSMIDDLE"
                                           src="images/menu_6.JPG" border="0" width="165" height="28"></a><br>
                                  <a href="index.jsp" >
                                      <img name="Imgmenu7" align="ABSMIDDLE"
                                           src="images/menu_7.JPG" border="0" width="165" height="28"></a><br>
                              </td>
                          </tr>
                      </table></td>
                  <td width="588"> </td>
              </tr>
          </table>
          </body>
          </html>
          

          style.css

          td {
              font-size: 9pt;
              color: #000000;
          }
          a:hover {
              font-size: 9pt;
              color: #FF6600;
          }
          a {
              font-size: 9pt;
              text-decoration: none;
              color: #676767;
              noline:expression(this.onfocus=this.blur);
          }
          img{
              border:0;
          }
          .img1{
              border:1px;
          }
          .blue {
              font-size: 9pt;
              color: #034683;
          }
          .bgcolor {
              font-size: 9pt;
              color: #1980DB;
          }
          .btn_grey {
              font-family:"宋體";
              font-size: 9pt;
              color: #333333;
              background-color: #eeeeee;
              cursor: hand;
              padding:1px;
              height:19px;
              border-top: 1px solid #FFFFFF;
              border-right:1px solid #666666;
              border-bottom: 1px solid #666666;
              border-left: 1px solid #FFFFFF;
          }
          .btn_bg_manageLogin{
              background-image:url(../images/login_btn_bg.gif);
              border:#436E9B solid 1px;
              width:51px;
              height:20px;
              padding:4px;
              color:#000000;
              outline-color:#FFFFFF;
          }
          input{
              font-family: "宋體";
              font-size: 9pt;
              color: #333333;
              border: 1px solid #999999;
          
          }
          .word_grey{
              color:#CFEAFD;
          }
          .word_deepgrey{
              color:#505050;
          }
          .word_orange{
              color:#FF6600;
          }
          .word_blue{
              color:#123F73;
          }
          .word_white{
              color:#FFFFFF;
          }
          .word_gray{
              color:#dddddd;
          }
          body {
              margin-left: 0px;
              margin-top: 0px;
              margin-right: 0px;
              margin-bottom: 0px;
          }
          .textarea {
              font-family: "宋體";
              font-size: 9pt;
              color: #333333;
              border: 1px solid #999999;
          }
          .tableBorder {
              border: #89B7D8 1px solid
          }
          .hidden_a_line{
              noline:expression(this.onfocus=this.blur);
          }
          .tableBorder_bold {
              border: #EEEEEE 4px solid;
              padding:5px;
          }
          .tableBorder_gray {
              border: #C7C7C7 1px solid
          }
          .table1{
              background-color:#AEAEAE;
              padding:5px;
          }

          PictureCheckCode.java

          package com.demo;
          
          import javax.imageio.ImageIO;
          import javax.servlet.ServletException;
          import javax.servlet.http.HttpServlet;
          import javax.servlet.http.HttpServletRequest;
          import javax.servlet.http.HttpServletResponse;
          import javax.servlet.http.HttpSession;
          import java.awt.*;
          import java.awt.geom.AffineTransform;
          import java.awt.geom.Line2D;
          import java.awt.image.BufferedImage;
          import java.io.IOException;
          import java.util.Random;
          
          public class PictureCheckCode extends HttpServlet {
              public PictureCheckCode() {
                  super();
              }
          
              public void destroy() {
                  super.destroy();
              }
          
              public void init() throws ServletException {
                  super.init();
              }
              //獲取隨機顏色
              Color getRandColor(int fc, int bc) {
                  Random random = new Random();
                  if (fc > 255) fc = 255;
                  if (bc > 255) bc = 255;
                  int r = fc + random.nextInt(bc - fc);
                  int g = fc + random.nextInt(bc - fc);
                  int b = fc + random.nextInt(bc - fc);
                  return new Color(r, g, b);
              }
              public void service(HttpServletRequest request, HttpServletResponse response)
                      throws ServletException, IOException {
                  //禁止緩存圖片
                  response.setHeader("Pragma", "No-cache");
                  response.setHeader("Cache-Control", "No-cache");
                  response.setDateHeader("Expires", 0);
                  // 指定生成的響應是圖片
                  response.setContentType("image/jpeg");
                  int width = 70;
                  int height = 17;
                  BufferedImage image = new BufferedImage(width, height,
                          BufferedImage.TYPE_INT_RGB);
                  Graphics g = image.getGraphics();
                  Graphics2D g2d=(Graphics2D)g;
                  Random random = new Random();
                  Font mFont = new Font("華文宋體", Font.BOLD, 17);
                  g.setColor(getRandColor(200, 250));
                  g.fillRect(0, 0, width, height);
                  g.setFont(mFont);
                  g.setColor(getRandColor(180, 200));
                  //畫隨機的線條
                  for (int i = 0; i < 130; i++) {
                      int x = random.nextInt(width - 1);
                      int y = random.nextInt(height - 1);
                      int x1 = random.nextInt(6) + 1;
                      int y1 = random.nextInt(12) + 1;
                      BasicStroke bs=new BasicStroke(2f,BasicStroke.CAP_BUTT,BasicStroke.JOIN_BEVEL);
                      Line2D line=new Line2D.Double(x,y,x+x1,y+y1);
                      g2d.setStroke(bs);
                      g2d.draw(line);
                  }
                  String sRand="";
                  //輸出隨機的驗證文字
                  int itmp=0;
                  for(int i=0;i<4;i++){
                      if(random.nextInt(2)==1){
                          //生成A~Z的字母
                          itmp=random.nextInt(26)+65;
                      }
                      else{
                          //生成0~9的數字
                          itmp=random.nextInt(10)+48;
                      }
                      char ctmp=(char)itmp;
                      sRand+=String.valueOf(ctmp);
                      Color color=new Color(20+random.nextInt(110),20+random.nextInt(110),20+random.nextInt(110));
                      g.setColor(color);
                      /****隨機縮放文字并將文字旋轉指定角度**/
                      //將文字旋轉指定角度
                      Graphics2D g2d_word=(Graphics2D)g;
                      AffineTransform trans=new AffineTransform();
                      trans.rotate(random.nextInt(45)*3.14/180,15*i+10,6);
                      //縮放文字
                      float scaleSize=random.nextFloat()+0.5f;
                      if(scaleSize<0.8 || scaleSize>1.1f) scaleSize=1f;
                      trans.scale(scaleSize, scaleSize);
                      g2d_word.setTransform(trans);
          
                      g.drawString(String.valueOf(ctmp),15*i+10,14);
          
                  }
                  //將生成的驗證碼保存到Session中
                  HttpSession session=request.getSession(true);
                  //聲明并實例化Encode的實例
                  Encode encode=new Encode();
                  //將加密后的驗證碼保存到Session
                  session.setAttribute("randCheckCode",encode.encodeByMD5(sRand));
                  g.dispose();
                  ImageIO.write(image,"JPEG",response.getOutputStream());
              }
          }
          

          Encode.java

          package com.demo;
          
          import java.security.MessageDigest;
          
          public class Encode {
              public String encode(String str, String algorithm) {
                  if (str == null) {
                      return null;
                  }
                  //聲明并實例化StringBuilder類的對象
                  StringBuilder sb = new StringBuilder();
                  try {
                      //創建使用MD5加密算法的對象
                      MessageDigest code = MessageDigest.getInstance(algorithm);
                      //將要加密信息中的所有字節提供給該對象
                      code.update(str.getBytes());
                      //調用digest方法完成消息摘要的計算,并以字節數組的形式返回消息摘要
                      byte[] bs = code.digest();
                      //將加密后的字節數組轉換成十六進制的字符串,形成最終的密文
                      for (int i = 0; i < bs.length; i++) {
                          int v = bs[i] & 0xFF;
                          if (v < 16) {
                              sb.append(0);
                          }
                          sb.append(Integer.toHexString(v));
                      }
                  }
                  catch (Exception e) {
                      e.printStackTrace();
                  }
                  //將加密后的字符串中的英文字母轉換為大寫
                  return sb.toString().toUpperCase();
              }
          
              public String encodeByMD5(String str){
                  return encode(str,"MD5");
              }
          }
          

          web.xml

          HTML 中的腳本必須位于 <script> 與 </script> 標簽之間。

          腳本可被放置在 HTML 頁面的 <body> 和 <head> 部分中。

          <script> 標簽

          如需在 HTML 頁面中插入 JavaScript,請使用 <script> 標簽。

          <script> 和 </script> 會告訴 JavaScript 在何處開始和結束。

          <script> 和 </script> 之間的代碼行包含了 JavaScript:

          <script>

          alert("我的第一個 JavaScript");

          </script>

          您無需理解上面的代碼。只需明白,瀏覽器會解釋并執行位于 <script> 和 </script>之間的 JavaScript 代碼

          那些老舊的實例可能會在 <script> 標簽中使用 type="text/javascript"。現在已經不必這樣做了。JavaScript 是所有現代瀏覽器以及 HTML5 中的默認腳本語言。

          <body> 中的 JavaScript

          在本例中,JavaScript 會在頁面加載時向 HTML 的 <body> 寫文本:

          實例

          <!DOCTYPE html>

          <html>

          <body>

          .

          .

          <script>

          document.write("<h1>這是一個標題</h1>");

          document.write("<p>這是一個段落</p>");

          </script>

          .

          .

          </body>

          </html>

          JavaScript 函數和事件

          上面例子中的 JavaScript 語句,會在頁面加載時執行。

          通常,我們需要在某個事件發生時執行代碼,比如當用戶點擊按鈕時。

          如果我們把 JavaScript 代碼放入函數中,就可以在事件發生時調用該函數。

          您將在稍后的章節學到更多有關 JavaScript 函數和事件的知識。

          在 <head> 或者 <body> 的JavaScript

          您可以在 HTML 文檔中放入不限數量的腳本。

          腳本可位于 HTML 的 <body> 或 <head> 部分中,或者同時存在于兩個部分中。

          通常的做法是把函數放入 <head> 部分中,或者放在頁面底部。這樣就可以把它們安置到同一處位置,不會干擾頁面的內容。

          <head> 中的 JavaScript 函數

          在本例中,我們把一個 JavaScript 函數放置到 HTML 頁面的 <head> 部分。

          該函數會在點擊按鈕時被調用:

          實例

          <!DOCTYPE html>

          <html>

          <head>

          <script>

          function myFunction()

          {

          document.getElementById("demo").innerHTML="我的第一個 JavaScript 函數";

          }

          </script>

          </head>

          <body>

          <h1>我的 Web 頁面</h1>

          <p id="demo">一個段落</p>

          <button type="button" onclick="myFunction()">嘗試一下</button>

          </body>

          </html>

          <body> 中的 JavaScript 函數

          在本例中,我們把一個 JavaScript 函數放置到 HTML 頁面的 <body> 部分。

          該函數會在點擊按鈕時被調用:

          實例

          <!DOCTYPE html>

          <html>

          <body>

          <h1>我的 Web 頁面</h1>

          <p id="demo">一個段落</p>

          <button type="button" onclick="myFunction()">嘗試一下</button>

          <script>

          function myFunction()

          {

          document.getElementById("demo").innerHTML="我的第一個 JavaScript 函數";

          }

          </script>

          </body>

          </html>

          外部的 JavaScript

          也可以把腳本保存到外部文件中。外部文件通常包含被多個網頁使用的代碼。

          外部 JavaScript 文件的文件擴展名是 .js。

          如需使用外部文件,請在 <script> 標簽的 "src" 屬性中設置該 .js 文件:

          實例

          <!DOCTYPE html>

          <html>

          <body>

          <script src="myScript.js"></script>

          </body>

          </html>

          你可以將腳本放置于 <head> 或者 <body>中 實際運行效果與您在 <script> 標簽中編寫腳本完全一致。

          myScript.js 文件代碼如下:

          function myFunction(){

          document.getElementById("demo").innerHTML="我的第一個 JavaScript 函數";}

          如您還有不明白的可以在下面與我留言或是與我探討QQ群308855039,我們一起飛!

          么是JavaScript

          JavaScript是一種基于對象和事件驅動的、并具有安全性能的腳本語言,已經被廣泛用于Web應用開發,常用來為網頁添加各式各樣的動態功能,為用戶提供更流暢美觀的瀏覽效果。通常JavaScript腳本是通過嵌入在HTML中來實現自身的功能的。

          JavaScript特點

          是一種解釋性腳本語言(代碼不進行預編譯)。

          主要用來向HTML(標準通用標記語言下的一個應用)頁面添加交互行為。

          可以直接嵌入HTML頁面,但寫成單獨的js文件有利于結構和行為的分離。

          跨平臺特性,在絕大多數瀏覽器的支持下,可以在多種平臺下運行(如Windows、Linux、Mac、Android、iOS等)。

          JavaScript組成


          JavaScript日常用途

          1、嵌入動態文本于HTML頁面。

          2、對瀏覽器事件做出響應。

          3、讀寫HTML元素。

          4、在數據被提交到服務器之前驗證數據。

          5、檢測訪客的瀏覽器信息。

          6、控制cookies,包括創建和修改等。

          7、基于Node.js技術進行服務器端編程。

          JavaScript的基本結構

          <script type="text/javascript">
           <!—
           JavaScript 語句;
           —>
          </script >
          


          示例:

          ……
          <title>初學JavaScript</title>
          </head>
          <body>
          <script type="text/javascript">
           document.write("初學JavaScript");
           document.write("<h1>Hello,JavaScript</h1>");
          </script>
          </body>
          </html>
          


          <script>…</script>可以包含在文檔中的任何地方,只要保證這些代碼在被使用前已讀取并加載到內存即可

          JavaScript的執行原理


          網頁中引用JavaScript的方式

          1、使用<script>標簽

          2、外部JS文件

          <script src="export.js" type="text/javascript"></script>
          


          3.直接在HTML標簽中

          <input name="btn" type="button" value="彈出消息框" 
           onclick="javascript:alert('歡迎你');"/>
          


          JavaScript核心語法:


          1. 變量

          ①先聲明變量再賦值

          var width;
          width = 5;
          var - 用于聲明變量的關鍵字
          width - 變量名
          


          ②同時聲明和賦值變量

          var catName= "皮皮";
          var x, y, z = 10;
          


          ③不聲明直接賦值【一般不使用】

          width=5;
          


          變量可以不經聲明而直接使用,但這種方法很容易出錯,也很難查找排錯,不推薦使用。

          2. 數據類型

          ①undefined:示例:var width;

          變量width沒有初始值,將被賦予值undefined

          ②null:表示一個空值,與undefined值相等

          ③number:

          var iNum=23; //整數

          var iNum=23.0; //浮點數

          ④Boolean:true和false 但是JS會把他們解析成1;0

          ⑤String:一組被引號(單引號或雙引號)括起來的文本 var string1="This is a string";

          3. typeof運算符

          typeof檢測變量的返回值;typeof運算符返回值如下:

          ①undefined:變量被聲明后,但未被賦值.

          ②string:用單引號或雙引號來聲明的字符串。

          ③boolean:true或false。

          ④number:整數或浮點數。

          ⑤object:javascript中的對象、數組和null。


          主站蜘蛛池模板: 国产av夜夜欢一区二区三区| 日韩一区二区在线观看| 视频一区精品自拍| 国产精品亚洲一区二区三区在线观看 | 精品无码一区二区三区在线| 日韩人妻不卡一区二区三区| 中文字幕日韩丝袜一区| 亚洲AV无码一区二区大桥未久| 在线精品自拍亚洲第一区| 四虎永久在线精品免费一区二区| 中文字幕在线播放一区| 91在线精品亚洲一区二区| 亚洲熟妇av一区二区三区下载| 精品国产日韩亚洲一区在线| 国产精品女同一区二区久久 | 91一区二区视频| 亚洲一本一道一区二区三区| 无码人妻久久一区二区三区蜜桃| 日本免费一区二区久久人人澡| 亚洲国产成人精品无码一区二区| 精品国产一区二区三区免费看| 久久精品无码一区二区日韩AV| 人妻AV中文字幕一区二区三区| 韩国精品一区视频在线播放| 波多野结衣高清一区二区三区 | 国产一区二区免费视频| 亚洲国产情侣一区二区三区| 亚洲av午夜精品一区二区三区| 精品一区二区三区AV天堂| 亚洲一区二区成人| 国产一区在线电影| 无码国产精品一区二区免费3p| 国产在线精品观看一区| 国产福利91精品一区二区| 亚洲Aⅴ无码一区二区二三区软件| 精品无码av一区二区三区 | 无码免费一区二区三区免费播放| 国产精品日韩一区二区三区| 少妇无码一区二区二三区| 国产高清在线精品一区小说| 精品国产高清自在线一区二区三区|