本文目錄一覽:
java jsp頁面怎麼寫java類?怎麼調用java代碼?
jsp中寫java代碼成為scriptlet,寫在%%之間就可以了。
Scriptlet是包含在%和%之間的Java代碼,在Web容器處理JSP頁面時執行,通常會產生輸出,並將輸出發送到客戶的輸出流里。Scriptlet除了不能定義類和方法、不能用import引入類外,可以包含任何有效的Java代碼。(Java類在Jsp外部定義,可用page指令的import屬性引入,也可以Java Bean的形式使用。Java中的方法必須在類內定義,但Jsp允許使用聲明定義方法。窗體(GUI)設計代碼在Jsp中無效)。
Scriptlet例程:
%@ page contentType=”text/html; charset=gb2312″ %
html
head
titleJSP基本語法/title
/head
body
h1Scriptlet示例頁面/h1
table border=”1″
caption乘法口訣表/caption
%– 在網頁中嵌入Java代碼的主要方法 –%
%
for(int i=1; i=9; i++) {
int j=1;
//out是JSP的一個內部對象,print方法用於向客戶端輸出數據
out.println(“tr”);
for(; j=i; j++) {
out.print(“td” + j + “*” + i + “=” + j*i + “/td”);
}
for(;j=9;j++) {
out.print(“td /td”);
}
out.println(“/tr”);
}
%
/table
/body
/html
jsp如何設置驗證碼,我需要完成詳細的代碼和過程
A 生成驗證碼的java文件
package cn.com.data100.web.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.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;
import javax.servlet.http.HttpSession;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
/**
* Title: 生成驗證碼
* Description: data100 website
* Copyright: Copyright (c) 2011
* Company: km100
* @author anshufa
* @version 1.0
*/
public class RandomCodeServlet extends HttpServlet {
private static final Log log = LogFactory.getLog(RandomCodeServlet.class);
private 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);
}
protected void doGet(
HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
doPost(request, response);
}
protected void doPost(
HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
//設置頁面不緩存
response.setHeader(“Pragma”, “No-cache”);
response.setHeader(“Cache-Control”, “no-cache”);
response.setDateHeader(“Expires”, 0);
Random random = new Random();
// 定義數組存放加減乘除四個運算符
// char[] arr = { ‘+’, ‘-‘,’*’, ‘/’ };
char[] arr = { ‘+’, ‘-‘,’*’};
// 生成10以內的隨機整數num1
int num1 = random.nextInt(10);
// 生成一個0-4之間的隨機整數operate
int operate = random.nextInt(3);
// 生成10以內的隨機整數num1
int num2 = random.nextInt(10);
//避免出現負數情況
if(operate == 1){//減法運算
//如果減數小於被減數 再次生成num1
while(num1num2){
num1 = random.nextInt(10);
}
}
// // 避免出現除數為0的情況
// if (operate == 3) {
// // 如果是除法,那除數必須不能為0,如果為0,再次生成num2
// while (num2 == 0) {
// num2 = random.nextInt(10);
// }
// }
// 運算結果
int result = 0;
// 假定position值0/1/2/3分別代表”+”,”-“,”*”,”/”,計算前面操作數的運算結果
switch (operate) {
case 0:
result = num1 + num2;
break;
case 1:
result = num1 – num2;
break;
case 2:
result = num1 * num2;
break;
// case 3:
// result = num1 / num2;
// break;
}
log.info(“驗證碼:”+num1 + “,” + num2 + “,” + operate + “,” + result);
// 將生成的驗證碼值(即運算結果的值)放到session中,以便於後台做驗證。
HttpSession session = request.getSession();
session.setAttribute(“rand”, String.valueOf(result));
int width = 60, height = 20;
//創建BufferedImage對象,設置圖片的長度寬度和色彩。
BufferedImage image = new BufferedImage(width, height,BufferedImage.TYPE_INT_RGB);
OutputStream os = response.getOutputStream();
//取得Graphics對象,用來繪製圖片
Graphics g = image.getGraphics();
//繪製圖片背景和文字,釋放Graphics對象所佔用的資源。
g.setColor(getRandColor(199, 250));
//設置內容生成的位置
g.fillRect(0, 0, width, height);
//設置內容的字體和大小
g.setFont(new Font(“Times New Roman”, Font.PLAIN, 18));
//設置內容的顏色:主要為生成圖片背景的線條
g.setColor(getRandColor(160, 200));
//圖片背景上隨機生成155條線條,避免通過圖片識別破解驗證碼
for (int i = 0; i 355; i++) {
int x = random.nextInt(width);
int y = random.nextInt(height);
int xl = random.nextInt(12);
int yl = random.nextInt(12);
g.drawLine(x, y, x + xl, y + yl);
}
//構造運算表達式
String content = num1+” “+ arr[operate]+” “+num2+” = “;
//設置寫運算表達的顏色
g.setColor(new Color(20 + random.nextInt(110), 20 + random.nextInt(110), 20 + random.nextInt(110)));
//在指定位置繪製指定內容(即運算表達式)
g.drawString(content,5,16);
//釋放此圖形的上下文以及它使用的所有系統資源,類似於關閉流
g.dispose();
//通過ImageIO對象的write靜態方法將圖片輸出。
ImageIO.write(image, “JPEG”, os);
os.close();
}
}
B 頁面調用
span class=”tabboder” id=”rands”img
src=”../RandomCodeServlet” id=”auth” name=”auth” border=0/span
jsp中顯示驗證碼的代碼怎麼寫?
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.util.Random;
import javax.imageio.ImageIO;
/*生成驗證碼圖片
*/
public class MakeCertPic {
//驗證碼圖片中可以出現的字符集,可以根據需要修改
private char mapTable[]={
‘a’,’b’,’c’,’d’,’e’,’f’,
‘g’,’h’,’i’,’j’,’k’,’l’,
‘m’,’n’,’o’,’p’,’q’,’r’,
‘s’,’t’,’u’,’v’,’w’,’x’,
‘y’,’z’,’0′,’1′,’2′,’3′,
‘4’,’5′,’6′,’7′,’8′,’9′
};
/* 功能:生成彩色驗證碼圖片
參數wedth為生成圖片的寬度,參數height為生成圖片的高度,參數os為頁面的輸出流
*/
public String getCertPic(int width,int height,OutputStream os){
if(width=0)
width=60;
if(height=0)
height=20;
BufferedImage image= new BufferedImage(width,height,BufferedImage.TYPE_INT_RGB);
//獲取圖形上下文
Graphics g = image.getGraphics();
//設定背景顏色
g.setColor(new Color(0xDCDCDC));
g.fillRect(0,0,width,height);
//畫邊框
g.setColor(Color.black);
g.drawRect(0,0,width-1,height-1);
//隨機產生的驗證碼
String strEnsure = “”;
//4代表4為驗證碼,如果要產生更多位的驗證碼,則加大數值
for(int i = 0;i4;++i){
strEnsure += mapTable[(int) (mapTable.length*Math.random())];
}
//將認證碼顯示到圖像中,如果要生成更多位的驗證碼,增加drawString語句
g.setColor(Color.black);
g.setFont(new Font(“Atlantic Inline”,Font.PLAIN,18));
String str = strEnsure.substring(0,1);
g.drawString(str,8,17);
str = strEnsure.substring(1,2);
g.drawString(str, 20, 15);
str = strEnsure.substring(2,3);
g.drawString(str, 35, 18);
str = strEnsure.substring(3,4);
g.drawString(str, 45, 15);
//隨機產生15個干擾點
Random rand = new Random();
for(int i=0; i10; i++){
int x = rand.nextInt(width);
int y = rand.nextInt(height);
g.drawOval(x,y,1,1);
}
//釋放圖形上下文
g.dispose();
try{
//輸出圖形到頁面
ImageIO.write(image, “JPEG”, os);
}catch (IOException e){
return “”;
}
return strEnsure;
}
}
makeCertPic.jsp頁面用於調用生成驗證碼圖片的JavaBean,並在客戶端顯示,源代碼如下:
%@page contentType=”image/jpeg” %%@page language=”java” pageEncoding=”utf-8″%jsp:useBean id=”image” scope=”page” class=”securityCode.pic.MakeCertPic”/%
String str = image.getCertPic(0,0,response.getOutputStream());
//將驗證碼存入session中
session.setAttribute(“certCode”,str);
%
下邊是登錄頁面:
%@ page language=”java” contentType=”text/html; charset=UTF-8″
pageEncoding=”UTF-8″%
!DOCTYPE html PUBLIC “-//W3C//DTD HTML 4.01 Transitional//EN” “”
html
head
meta http-equiv=”Content-Type” content=”text/html; charset=UTF-8″
title驗證碼測試登錄頁面/title
script type=”text/javascript”
function changeimg()
{
var myimg = document.getElementById(“code”);
now = new Date();
myimg.src=”makeCertPic.jsp?code=”+now.getTime();
}
/script
/head
body
center
form action=”loginCheck.jsp” method=”post” /
用戶名:input type=”text” name=”username” /br
密nbsp;nbsp;碼:input type=”password” name=”password”/br
nbsp;驗證碼:input type=”text” name=”certCode”/
img id=”code” src=”makeCertPic.jsp”a href=”javascript:changeimg()”看不清,換一張 /abr
input type=”submit” value=”登錄”/
/form
/center
/body
/html
在jsp中驗證代碼怎麼寫和調用
jsp中的驗證一般都用javascript來驗證的。如果不對的話可能你的問題表達不清楚,是指表單驗證還是邏輯驗證。把問題描述的更清楚點。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/301378.html