. . .<html页面>
<TR>
<TD클래스="td_left">
<레이블for="체크">캡차</레이블>
</TD>
<TD클래스="td_right 확인">
<입력유형="문자"id="체크"이름="체크"클래스="체크">
<imgsrc="체크코드서블렛"키="32px"alt=""온클릭="changeCheckCode(이거)">
<대본유형="텍스트/자바스크립트">
//이미지 클릭 이벤트
기능changeCheckCode(img) {
IMG.SRC="체크코드서블렛?"+새로운날짜().getTime();
}
</대본>
</TD>
</TR>//验证码拼接部分공공급CheckCodeServlet확장HttpServlet{
@Override
공공 공허도겟(HttpServletRequest 요청, HttpServletResponse 응답)던지기ServletException, IOException{
//서버는 브라우저에 캐시하지 말라고 알립니다
response.set헤더("프라그마","캐시 없음"); response.set헤더("캐시 제어","캐시 없음"); response.set헤더("만료","0");
//기억에 긴 글을 만들어80, 넓게30기본 검은 배경
//매개변수 1: 길이
//매개변수 2: 너비
//매개변수 3: 색상
지능폭 =80;
지능높이 =30; 버퍼드 이미지 =새로운버퍼드 이미지(너비, 높이, 버퍼드 이미지.TYPE_INT_RGB);
//브러시 가져와.
그래픽스 g = image.getGraphics();
//붓 색상을 회색으로 설정하세요
g.set색상(색.회색);
//그림을 채우세요
g.fillRect(0,0, 너비, 높이);
//제작4무작위 검증 코드,12이
String checkCode = getCheckCode();
//코드를 입력해HttpSession보통
request.getSession().setAttribute("코드",체크코드);
//붓 색상을 노란색으로 설정하세요
g.set색상(색.노란색);
//글꼴 크기를 설정하세요
g.setFont(새로운세례대("블랙 체디",폰트.굵게,24));
//이미지에 검증 코드를 작성하세요
g.drawString(체크코드,15,25);
//메모리에서 이미지를 브라우저로 출력하세요
//매개변수 1: 그림 객체
//매개변수 2: 사진의 형식, 예를 들면:PNG, JPG, GIF
//매개변수 3: 이미지가 출력되는 위치
ImageIO.쓰기(이미지,"PNG",응답.getOutputStream());
}
/**
*제작4비트 랜덤 문자열
*/
사설String getCheckCode() {
스트링 베이스 ="0123456789ABCDEFGabcdefg";
지능크기 = 베이스.길이(); 무작위 r =새로운랜덤(); StringBuffer sb =새로운스트링버퍼();
에 대해(지능i=1; i<=4; i++){
//제작0받는 사람사이즈-1임의 가치
지능인덱스 = r.nextInt(크기);
//에기지문자열 받으면 첨자를 얻는다색인등장인물
차어c = base.charAt(색인);
//할 것이다c넣어스트링버퍼가운데로 가세요
sb.append(c);
}
귀환sb.toString();
}
@Override
공공 공허doPost(HttpServletRequest 요청, HttpServletResponse 응답) 던지기ServletException, IOException{
이거.doGet(요청, 응답);
}
}
어떻게 달성할 수 있을까요?
|