JSP初级教程之跟我学JSP(六)(4)_JSP教程

编辑Tag赚U币
教程Tag:暂无Tag,欢迎添加,赚取U币!

推荐:JSP初级教程之跟我学JSP(五)
第五章 jsp 分页功能的实现 经过上面的学习我渐渐熟悉了对 数据库 的操作,留言板的功能也不断的完善,随着留言的增加信息的目录越来越长了,现在需要实现一个分页功能了,我尝试自己解决这个问题。 1、我应该把它的关键部分封装成一个bean,使它尽可能的能


int num=Datas.length;//数组的长度
//得此数组中的最大值
int max=Datas[0];
for (int j=0;j<num;j++)
{
if(Datas[j]>max)
max=Datas[j];
}

int imageWidth = 400;//图片的宽度 Line
int imageHeight;//不定长

int frameFirstWidth=imageWidth-10;
int frameFirstHeight=25;

int frameSecondWidth=imageWidth-10;
int frameSecondHeight;//不定长

int frameSpace=10;//两框间隔

int columnHeight=18;//柱的粗 
int columnMaxWidth=frameSecondWidth-20;//柱的最大长度,也是代表数值最大的那个柱的长度

int sp=30;//柱的间隔

//得到代表数值的柱的各自高度,实际数值*columnMaxHeight/max
int columnWidth[]=new int[num];//不定长,柱的长度
for (int k=0;k<num;k++)
columnWidth[k]=(Datas[k]*columnMaxWidth)/max;//取整

frameSecondHeight=(sp+columnHeight)*num+10;//+10为了留出一块底边
imageHeight=frameSecondHeight+frameFirstHeight+frameSpace+10;//多加10为了画阴影

//开始画图
response.setContentType("image/jpeg");
BufferedImage image = new BufferedImage(imageWidth,imageHeight,BufferedImage.TYPE_INT_RGB); 
Graphics g = image.createGraphics();

g.setColor(Color.white);
g.fillRect(0,0,imageWidth,imageHeight);//用白色涂整个图
Color frameFirstColor = new Color(20,50,100);
Color columnColor = new Color(153,19,19);
Color shadowColor = new Color(200,200,200);
g.setColor(shadowColor);
g.fillRect(0+7,0+7,frameFirstWidth,frameFirstHeight);//阴影在原框基础上移7
g.setColor(Color.white);
g.drawRect(0,0,frameFirstWidth,frameFirstHeight);//画第一个框
g.setColor(frameFirstColor);
g.fillRect(0+1,0+1,frameFirstWidth-1,frameFirstHeight-1);
g.setFont(new Font("仿体", 0 , 14));
g.setColor(Color.white);
g.drawString(Title,10,18);//写字
g.drawString(SStr,300,18);

int frameSecondY=1+frameFirstHeight+frameSpace;
g.setColor(shadowColor);
g.fillRect(0+7,frameSecondY+7,frameSecondWidth,frameSecondHeight);//阴影在原框基础上移7
g.setColor(Color.black);
g.drawRect(0,frameSecondY,frameSecondWidth,frameSecondHeight);//画第二个框
g.setColor(Color.yellow);
g.fillRect(0+1,frameSecondY+1,frameSecondWidth-1,frameSecondHeight-1);//填充第二个框

for(int l=0;l<num;l++)
{
g.setColor(Color.black);
int textY=frameSecondY+20+(sp+columnHeight)*l;
g.drawString(name[l]+"("+Datas[l]+")",0+10,textY);//写文字
if (columnWidth[l]!=0)
{
g.setColor(columnColor);
g.drawRect(10,textY+5,columnWidth[l],columnHeight);//画柱的外框//框的上边离文字的底边为5
g.fillRect(10+2,textY+5+2,columnWidth[l]-3,columnHeight-3);//画柱
}
}
try
{
//输出图
OutputStream output = response.getOutputStream();
JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(output);
encoder.encode(image);
output.close();
}
catch(Exception e)

e.printStackTrace();

}//if
else
{%>
<table width="100%">
<tr>
<td width="407">
<span class="style2"><font color="#FF0000">没有<%=year%>年的记录!</font></span>
</td>
</tr>
</table>
<%
}
%> 
</body>
</html>
----------------------------------------------------------------------------------
现在任务是完成了,其中的最关键的部分代码是实现什么功能的也大概知道了,可是还是没有掌握其中的知识,不能不说是遗憾。

有一个问题是,worklord.jsp这样的页面很特殊,就是因为这部分代码引起的:
OutputStream output = response.getOutputStream();
JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(output);
encoder.encode(image);
这导致了这个页面没法再干别的了,假如你要在<body>里干点别的,像写几个字,放一个<form>什么的,页面显示不出来。

分享:JSP初级教程之跟我学JSP(四)
第四章我的第一个 Javabean 程序 一、先看看如何取当前时间并显示的代码: ------------------------------------------------ % java.text.SimpleDateFormatformatter=newjava.text.SimpleDateFormat(yyyy-MM-ddHH:mm:ss); java.util.DatecurrentTime=ne

共4页上一页1234下一页
来源:模板无忧//所属分类:JSP教程/更新时间:2010-03-10
相关JSP教程