<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                眾所周知,驗證碼在我們的生活中都是非常常見的,很多公司都在各種折騰各種各樣的驗證碼,這里簡要的用一個小案例來實現驗證碼的功能(ps:其實我挺討厭驗證碼這個東西的)。 建立一個javaweb工程,新建login.html,在里面主要是寫界面,代碼實現如下,寫在body區就可以了,來一個表單驗證 ~~~ <body> <form action=""> username:<input/><br/> password:<input/><br/> 驗證碼:<input name="code"/><img id="image1" src="/day08_response/servlet/responseDemo4"/> <input type="button" value="看不清,換一張" onclick="change()"/> <br/> <input type="submit" value="登陸"/> </form> <script type="text/javascript"> function change(){ var imageObj = document.getElementById("image1"); //地址一樣,瀏覽器不會發出請求 imageObj.src="/day08_response/servlet/responseDemo4?time="+new Date().getTime(); } </script> </body> ~~~ 然后我們需要新建一個servlet類,實現驗證碼我們可以有兩種方式,一種是自己寫,如下:顏色可以直接配置就好,好吧,鑒于我的審美觀有限,貌似這種顏色搭配起來挺丑的。 ~~~ private void test1(HttpServletResponse response) throws IOException { int width=110; int height=25; //1構建一幅內存圖片BufferedImage BufferedImage bi=new BufferedImage(width, height, BufferedImage.TYPE_INT_BGR); //3.圖片上的畫筆 Graphics g=bi.getGraphics(); g.setColor(Color.green); g.drawRect(0, 0, width, height); //畫矩形邊線 //4填充背景色 g.setColor(Color.gray); g.fillRect(1, 1, width, height); //5干擾線 g.setColor(Color.yellow); Random r=new Random(); for(int i=0;i<20;i++) g.drawLine(r.nextInt(width), r.nextInt(height),r.nextInt(width), r.nextInt(height)); //6數字驗證碼 g.setColor(Color.BLACK); g.setFont(new Font("宋體",Font.BOLD|Font.ITALIC,13));//加粗傾斜 int x=20; for(int i=0;i<4;i++){ g.drawString(r.nextInt(10)+"",x,20); x+=20; } //2輸出響應對象的字節流輸出流 ImageIO.write(bi, "jpg", response.getOutputStream()); } ~~~ 還有一種方法可以使用,開源框架validate.jar,導入這個jar包,兩行代碼就可以搞定,當然了,如果你想要更好的效果,你可以自己寫或者看里面的.class中的源碼,自己進行修改,這里就不在多廢話了。 ~~~ //開源框架實現 ValidateCode vc=new ValidateCode(110, 25, 4, 30);//第一個參數是寬,第二個是高,第三個是驗證碼的數目,第四個是干擾線的條數 vc.write(response.getOutputStream()); ~~~ 最后,我們還需要清除一下瀏覽器的緩存,我們都知道,清除緩存當然是用那三種方法啦。 ~~~ //清除緩存 response.setIntHeader("Expires", -1); response.setHeader("Cache-Control", "no-cache"); response.setHeader("Pragma", "no-cache"); ~~~ 哦?你還不滿意,好吧,那我們再加一個定時刷新的功能吧! 第一種刷新方式是直接刷新: ~~~ private void test1(HttpServletResponse response) throws IOException { response.setIntHeader("Refresh", 1);//單位是秒 Random r = new Random(); response.getWriter().write(r.nextInt()+""); } ~~~ 當然,我們還可以來那種倒計時幾秒鐘就跳轉到其他頁面的這種效果, ~~~ //刷新到別處 private void test2(HttpServletResponse response) throws IOException { response.setContentType("text/html;charset=UTF-8"); response.getWriter().write("注冊成功!2秒后自動轉向登陸頁面。"); response.setHeader("Refresh", "2;URL=/day08_response/login.html");//單位是秒 } ~~~ 下面再來說一下控制瀏覽器緩存時間的實現方法: ~~~ response.setDateHeader("Expires", System.currentTimeMillis()+1*60*60*1000);//取值是一個毫秒值。如果該值小于當前時間,則不緩存。 //如果大于當前時間,緩存的時間是:值-當前時間。 response.getWriter().write("hello"); ~~~ 好吧,基本上說完了,將以上知識整個起來就可以實現你的一個項目的功能了,快去試試吧!
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看