仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 502|回复: 13
打印 上一主题 下一主题

[学习教程] JAVA网站制作之JAVA/JSP进修系列之十二(JSP天生jpeg图...

[复制链接]
乐观 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:29:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
唉!都是钱闹的1.Swing和.net开发比较------从市场份额看.net开发主要占据大部分的中小型和中型的的桌面开发,原因是它封装了很多工具js|投票1、媒介

  本文原作者为TonyWang,该文章触及到文件的读写和jpg图片的主动天生。使用jsp+servlet的手艺,jsp挪用servlet天生图片。

2、首文件index.jsp以下:

<%--

Author:TonyWang

E-mail:lucky_tony@163.net

Date:2001-01-01

假如对程序有甚么疑问,能够和我接洽,别的程序假如有甚么bug,贫苦指出!!

--%>

<%@pagecontentType="text/html;charSet=gb2312"%>
<%
response.setHeader("Cache-Control","no-store");
response.setDateHeader("Expires",0);
%>
<%!
publicString[]getQuestion(Strings)
{
String[]strQ=newString[4];
StringstrTemp=null;
inti;
java.io.RandomAccessFilerf=null;
try{
rf=newjava.io.RandomAccessFile(s,"r");
}catch(Exceptione)
{
System.out.println(e);
System.exit(0);
}
for(i=0;i<4;i++)
{
try{
strTemp=rf.readLine();
}catch(Exceptione){
strTemp="NoneQuestion";
}
if(strTemp==null)strTemp="NoneQuestion";
strQ[i]=strTemp;
}
returnstrQ;
}

%>

<%
Strings=null;
String[]question=newString[4];

s=request.getRealPath("question.txt");
question=getQuestion(s);
%>


<html>
<head>
<title></title>
<linkhref="CSS.css"rel="StyleSheet"type="text/css"></link>
</head>

<body>
<tablewidth="180"border="1"bordercolor="#999999">
<tr>
<tdalign=center>冰帆查询拜访</td>
</tr>
<formname=frmmethod=postaction=write.jsp>
<tr>
<td>
<%
Stringss=null;
for(inti=0;i<4;i++)
{
ss="<inputtype="radio"name="choice"value="+i+">"+

(char)(A+i)+"、"+question[i]+"<br>";
out.println(ss);
}
%>
</td>
</tr>
<tr>
<tdalign=center><inputtype=submitvalue="我投一票"></td>
</tr>
<tr>
<tdalign=center><imgsrc="/vote/servlet/VoteImage"width=150

height=100></td>
</tr>
</form>
</table>
</body>
</html>


3、写文件write.jsp

<%--
Author:TonyWang
E-mail:lucky_tony@163.net
Date:2001-01-01
假如对程序有甚么疑问,能够和我接洽,
别的程序假如有甚么bug,贫苦指出!!
--%>
<%!
publicint[]getNumber(Strings)
{
int[]mCount=newint[4];
StringstrTemp=null;
inti;
java.io.RandomAccessFilerf=null;
try{
rf=newjava.io.RandomAccessFile(s,"r");
}catch(Exceptione)
{
System.out.println(e);
System.exit(0);
}
for(i=0;i<4;i++)
{
try{
strTemp=rf.readLine();
}catch(Exceptione){
strTemp="0";
}
if(strTemp==null)strTemp="0";
mCount[i]=newInteger(strTemp).intValue();
}
returnmCount;
}

publicvoidsetNumber(Strings,int[]x)
{
try{
java.io.PrintWriterpw=newjava.io.PrintWriter(newjava.io.

FileOutputStream(s));
for(inti=0;i<4;i++){
pw.println(x[i]+"");
}
pw.close();
}catch(Exceptione){
System.out.println("Writefileerror:"+e.getMessage());
}
}
%>


<%
Stringtmp=null;
intchoice=-1;
int[]count=newint[4];
tmp=request.getParameter("choice");
if(tmp==null){
}else{
choice=newInteger(tmp).intValue();
}
/////////////
Strings=request.getRealPath("count.txt");
if(choice>=0){
count=getNumber(s);
count[choice]++;
setNumber(s,count);
}

response.sendRedirect("index.jsp");
%>
4、servlet原代码:VoteImage.java:

/*
Author:TonyWang
E-mail:lucky_tony@163.net
Date:2001-01-01
假如对程序有甚么疑问,能够和我接洽,
别的程序假如有甚么bug,贫苦指出!!
*/
importjava.io.*;
importjava.util.*;
importcom.sun.image.codec.jpeg.*;
importjavax.servlet.*;
importjavax.servlet.http.*;
importjava.awt.*;
importjava.awt.geom.*;
importjava.awt.image.*;
publicclassVoteImageextendsHttpServlet
{
privateStringstrFile=null;
privateColorcolor[]={Color.red,Color.black,Color.orange,

Color.green};
privateintbaseAng=30;
publicvoiddoGet(HttpServletRequestrequest,HttpServletResponse

response)
throwsServletException,IOException
{
strFile=request.getRealPath("count.txt");
float[][]xy=newfloat[4][2];
xy=getNumAndPercent(strFile);

int[]ang=newint[4];
ang[0]=(int)(xy[0][1]*360);
ang[1]=(int)(xy[1][1]*360);
ang[2]=(int)(xy[2][1]*360);
ang[3]=360-ang[0]-ang[1]-ang[2];

response.setHeader("Cache-Control","no-store");
response.setDateHeader("Expires",0);
response.setContentType("image/jpeg");
ServletOutputStreamout=response.getOutputStream();
BufferedImageimage=newBufferedImage(150,100,BufferedImage.

TYPE_INT_RGB);
Graphics2Dg=(Graphics2D)image.getGraphics();
g.setRenderingHint(RenderingHints.KEY_ANTIALIASING,

RenderingHints.VALUE_ANTIALIAS_ON);
g.setColor(Color.white);
g.fillRect(0,0,150,100);
AffineTransformat=null;
Arc2Darc=null;
intfromAng=baseAng;

at=AffineTransform.getRotateInstance((-20*java.lang.Math.PI)

/180,45,37);
g.setTransform(at);

intr=6;
intdx=(int)(r*java.lang.Math.cos((baseAng+ang[0])/2.0*java.

lang.Math.PI/180));
intdy=(int)(r*java.lang.Math.sin((baseAng+ang[0])/2.0*java.

lang.Math.PI/180));
arc=newArc2D.Double(10+dx,24-dy,80,50,fromAng,ang[0],Arc2D.PIE);
g.setColor(color[0]);
g.fill(arc);
fromAng+=ang[0];
for(inti=1;i<4;i++)
{
g.setColor(color[i]);
arc=newArc2D.Double(10,24,80,50,fromAng,ang[i],Arc2D.PIE);
g.fill(arc);
fromAng+=ang[i];
if(fromAng>360)
{
fromAng-=360;
}
}

at=AffineTransform.getRotateInstance(0,arc.getCenterX(),arc.

getCenterY());
g.setTransform(at);

for(inti=0;i<4;i++){
g.setColor(color[i]);
g.fillRect(100,15*i+20,10,10);
g.drawString((char)(A+i)+"",120,15*i+20+8);
}
JPEGImageEncoderencoder=JPEGCodec.createJPEGEncoder(out);
encoder.encode(image);
out.close();
}

publicvoiddoPost(HttpServletRequestrequest,HttpServletResponse

response)
throwsServletException,IOException
{
doGet(request,response);
}

publicsynchronizedfloat[][]getNumAndPercent(StringsFileName)
{
floatxx[][]=newfloat[4][2];
inttotalNum=0;
StringstrTemp=null;
inti=0;
java.io.RandomAccessFilerf=null;
try
{
rf=newjava.io.RandomAccessFile(sFileName,"r");
}catch(Exceptione)
{
System.out.println(e);
System.exit(0);
}
for(i=0;i<4;i++)
{
intm=0;
try{
strTemp=rf.readLine();
}catch(Exceptione){
strTemp="0";
}

if(strTemp==null)strTemp="0";
m=newInteger(strTemp).intValue();
xx[i][0]=m;
totalNum+=m;
}
if(totalNum==0)totalNum=1;
for(i=0;i<4;i++){
xx[i][1]=xx[i][0]/totalNum;
}
returnxx;
}
}

5、在index.jsp目次下创建question.txt和count.txt文件分离用来保留投

票的成绩和投票的数目,用户投票后,就修正count.txt的值。

为了对原作者暗示感激,这2个文件内容稳定化,以下:

question.txt:

Yes,Ithinkso!

No,Idontthinkso!

Sorry,Idontknowtheanswer!



count.txt:

12

9

5

9

6、目次布局:

(1)jsp文件和txt文件统一个目次

(2).java文件是servlet目次下

Java到底会发战成什么样,让我们拭目以待吧,我始终坚信着java会更好。以上都是俺个人看法,欢迎大家一起交流.
第二个灵魂 该用户已被删除
沙发
发表于 2015-1-18 18:52:53 | 只看该作者
吧,现在很流行的Structs就是它的一种实现方式,不过Structs用起来实在是很繁,我们只要学习其精髓即可,我们完全可以设计自己的MVC结构。然后你再研究一下软件Refactoring (重构)和极限XP编程,相信你又会上一个台阶。 做完这些,你不如整理一下你的Java代码,把那些经典的程序和常见的应用整理出来,再精心打造一番,提高其重用性和可扩展性。你再找几个志同道合的朋友成立一个工作室吧
小妖女 该用户已被删除
板凳
发表于 2015-1-20 20:46:10 | 只看该作者
Java自面世后就非常流行,发展迅速,对C++语言形成了有力冲击。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台
山那边是海 该用户已被删除
地板
发表于 2015-1-23 13:24:29 | 只看该作者
Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(java net),它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、ServerSocket等。Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段。
爱飞 该用户已被删除
5#
发表于 2015-1-31 16:46:10 | 只看该作者
Java 不同于一般的编译执行计算机语言和解释执行计算机语言。它首先将源代码编译成二进制字节码(bytecode),然后依赖各种不同平台上的虚拟机来解释执行字节码。从而实现了“一次编译、到处执行”的跨平台特性。
飘飘悠悠 该用户已被删除
6#
发表于 2015-2-2 22:23:35 | 只看该作者
Sun公司看见Oak在互联网上应用的前景,于是改造了Oak,于1995年5月以Java的名称正式发布。Java伴随着互联网的迅猛发展而发展,逐渐成为重要的网络编程语言。
简单生活 该用户已被删除
7#
发表于 2015-2-2 22:34:57 | 只看该作者
Java 编程语言的风格十分接近C、C++语言。
金色的骷髅 该用户已被删除
8#
发表于 2015-2-3 09:47:01 | 只看该作者
一般学编程语言都是从C语开始学的,我也不例外,但还是可能不学过程语言而直接学面向对象语言的,你是刚接触语言,还是从C开始学比较好,基础会很深点,如果你直接学习JAVA也能上手,一般大家在学语言的时候都记一些语言的关键词,常有的包和接口等。再去做逻辑代码的编写,以后的学习过程都是从逻辑代码编写中提升的,所以这方面都是经验积累的。你要开始学习就从
蒙在股里 该用户已被删除
9#
发表于 2015-2-8 14:25:17 | 只看该作者
至于JDBC,就不用我多说了,你如果用java编过存取数据库的程序,就应该很熟悉。还有,如果你要用Java编发送电子邮件的程序,你就得看看Javamail 了。
灵魂腐蚀 该用户已被删除
10#
发表于 2015-2-24 17:40:12 | 只看该作者
在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。
若相依 该用户已被删除
11#
发表于 2015-3-4 21:57:30 | 只看该作者
《JAVA语言程序设计》或《JAVA从入门到精通》这两本书开始学,等你编程有感觉的时候也可以回看一下。《JAVA读书笔记》这本书,因为讲的代码很多,也很容易看懂,涉及到面也到位。是你学习技术巩固的好书,学完后就看看《JAVA编程思想》这本书,找找一个自己写的代码跟书上的代码有什么不一样。
莫相离 该用户已被删除
12#
发表于 2015-3-11 21:13:14 | 只看该作者
所以现在应用最广泛又最好学的就是J2EE了。 J2EE又包括许多组件,如Jsp,Servlet,JavaBean,EJB,JDBC,JavaMail等。要学习起来可不是一两天的事。那么又该如何学习J2EE呢?当然Java语法得先看一看的,I/O包,Util包,Lang包你都熟悉了吗?然后再从JSP学起。
若天明 该用户已被删除
13#
发表于 2015-3-19 13:26:45 | 只看该作者
应用在电视机、电话、闹钟、烤面包机等家用电器的控制和通信。由于这些智能化家电的市场需求没有预期的高,Sun公司放弃了该项计划。随着1990年代互联网的发展
海妖 该用户已被删除
14#
发表于 2015-3-27 23:29:29 | 只看该作者
自从Sun推出Java以来,就力图使之无所不包,所以Java发展到现在,按应用来分主要分为三大块:J2SE,J2ME和J2EE,这也就是Sun ONE(Open Net Environment)体系。J2SE就是Java2的标准版,主要用于桌面应用软件的编程;J2ME主要应用于嵌入是系统开发,如手机和PDA的编程;J2EE是Java2的企业版,主要用于分布式的网络程序的开发,如电子商务网站和ERP系统。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-11-15 16:31

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表