java验证码及其刷新
1.servlet产生验证码:
package com.servlet;
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.util.Random;
import javax.imageio.ImageIO;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class Img extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("image/jpeg");
response.setHeader("Pragma","No-cache");
response.setHeader("Cache-Control","no-cache");
response.setDateHeader("Expires",0);
OutputStream out=response.getOutputStream();
int w=80,h=20;
BufferedImage img=new BufferedImage(w,h,BufferedImage.TYPE_INT_RGB);
Graphics g=img.getGraphics();
Random ran=new Random();
g.fillRect(0, 0, w, h);
g.setFont(new Font("Times New Roman",Font.ITALIC,18));
String sRan="";
for(int i=0;i<4;i++){
String rand=String.valueOf(ran.nextInt(10));
sRan+=rand;
g.setColor(new Color(20+ran.nextInt(110),20+ran.nextInt(110),20+ran.nextInt(110)));
g.drawString(rand,20*i+6,16);
}
request.getSession().setAttribute("ch", sRan);
g.dispose();
ImageIO.write(img, "jpeg", out);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}
}
2.嵌入html中
<img src="Img" >
3.验证码的刷新
1)点击验证码刷新
<img
相关文档:
Thread.currentThread().getName().equals("xxxx") 这条语句返回一个 bool 型的结果。判断当前运行的进程是否和 xxxx 的名字一样。
定义线程的两种方法:class a1 extends Thread{ } a1 xiancheng=new a1();
二是:用接口回调技术。 class a1 implements Runnable{ } a1 ......
1. 首先String不属于8种基本数据类型,String是一个对象。
因为对象的默认值是null,所以String的默认值也是null;但它又是一种特殊的对象,有其它对象没有的一些特性。
2. new String()和new String(“”)都是申明一个新的空字符串,是空串不是null;
3. String str=”kvill”;
String str=n ......
文中引用了孙老师的代码,并注明。
import java.io.*;
import java.net.*;
public class EchoServer {
private int port=8888;
private ServerSocket serverSocket;
public EchoServer() throws IOException {
serverSocket = new ServerSocket(port);
System.out.println("服务器启动");
......
java回调机制
回调概念:
软件模块之间总是存在着一定的接口,从调用方式上,可以把他们分为三类:同步调用、回调和异步调用。同步调用是一种阻塞式调用,调用方要等待对方执行完毕才返回,它是一种单向调用;回调是一种双向调用模式,也就是说,被调用方在接口被调用时也会调用对方的接口;异步调用是一种类似 ......
比如java中常用的运算符
一 符号++ ,+,--,-
有时这个符号拼凑起来也有点复杂
比如这样一个运算式
int i=3;
i+++i-i++-++i
+ -运算符的优先级 低于++,-- 先运算++,--
可以将上面的式子拆开
i++ + i - i++ - ++i
这样是不是容易多了
先来个简单点的
1 K++
int k=0;
System.out.println(K++)
System.o ......