十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
想要达到你说的效果,用Struts不行的,要不然不会出现俩页面的。可以用js库的window.open来做,参数的传递可以用json。这样会弹出一个自定义的新窗口,不用走什么请求。
专注于为中小企业提供网站建设、成都网站建设服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业汨罗免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了上1000+企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。
文件夹:build-存放编译后的class文件
nbproject-存放项目的具体配置文件
src-java源代码存放文件夹
test-JUnit测试文件存放位置
Build.xml构建描述文件,因为Netbeans的编译打包是基于ant的,build就是ant实现自动编译打包的描述文件。
manifest.mf是打包的时候需要的一个清单文件,是对打包后的jar包中的文件的一个描述下文件。
original.java,.netbeans_automatic_build,这两个文件不知道你用的什么Netbeans版本,在我的版本中并未生成此文件。
build-impl.xml是对Build.xml文件的具体描述,Build.xml其实并未实现具体的ant构建脚本,具体是在该文件中实现的,如果你看过build.xml的源代码,就会发现一句import file="nbproject/build-impl.xml"/,这你就知道是什么意思了。
图片上传后在网页上直接读取上传后的地址进行预览,就是说这个时候图片已经上传到服务器了,如果要写的严谨一些,可以在预览后进行保存操作,如果不保存,则再写一条语句把上传上去的文件删除
把图片按照规定的比例压缩,然后保存至FTP,列表读取缩略图,单击显示原图。
/**
* 压缩图片方法一(高质量)
* @param oldFile 将要压缩的图片
* @param width 压缩宽
* @param height 压缩高
* @param smallIcon 压缩图片后,添加的扩展名(在图片后缀名前添加)
* @param quality 压缩质量 范围:i0.0-1.0/i 高质量:i0.75/i 中等质量:i0.5/i 低质量:i0.25/i
* @param percentage 是否等比压缩 若true宽高比率将将自动调整
*/
public static void compressImage(String oldFile, int width, int height, String smallIcon,
float quality, boolean percentage) {
try {
File file = new File(oldFile);
// 验证文件是否存在
if(!file.exists())
throw new FileNotFoundException("找不到原图片!");
// 获取图片信息
BufferedImage image = ImageIO.read(file);
int orginalWidth = image.getWidth();
int orginalHeight = image.getHeight();
// 验证压缩图片信息
if (width = 0 || height = 0 || !Pattern.matches("^[1-9]\\d*$", String.valueOf(width))
|| !Pattern.matches("^[1-9]\\d*$", String.valueOf(height)))
throw new Exception("图片压缩后的高宽有误!");
// 等比压缩
if (percentage) {
double rate1 = ((double) orginalWidth) / (double) width + 0.1;
double rate2 = ((double) orginalHeight) / (double) height + 0.1;
double rate = rate1 rate2 ? rate1 : rate2;
width = (int) (((double) orginalWidth) / rate);
height = (int) (((double) orginalHeight) / rate);
}
// 压缩后的文件名
String filePrex = oldFile.substring(0, oldFile.lastIndexOf('.'));
String newImage = filePrex + smallIcon + oldFile.substring(filePrex.length());
// 压缩文件存放位置
File savedFile = new File(newImage);
// 创建一个新的文件
savedFile.createNewFile();
// 创建原图像的缩放版本
Image image2 = image.getScaledInstance(width, height, Image.SCALE_AREA_AVERAGING);
// 创建数据缓冲区图像
BufferedImage bufImage = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
// 创建一个Graphics2D
Graphics2D g2 = bufImage.createGraphics();
// 重绘图像
g2.drawImage(image2, 0, 0, width, height, null);
g2.dispose();
// 过滤像素矩阵
float[] kernelData = {
-0.125f, -0.125f, -0.125f,
-0.125f, 2, -0.125f, -0.125f,
-0.125f, -0.125f };
Kernel kernel = new Kernel(3, 3, kernelData);
// 按核数学源图像边缘的像素复制为目标中相应的像素输出像素
ConvolveOp cOp = new ConvolveOp(kernel, ConvolveOp.EDGE_NO_OP, null);
// 转换像素
bufImage = cOp.filter(bufImage, null);
FileOutputStream out = new FileOutputStream(savedFile);
JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);
JPEGEncodeParam param = encoder.getDefaultJPEGEncodeParam(bufImage);
// 设置压缩质量
param.setQuality(quality, true);
encoder.encode(bufImage, param);
out.close();
System.out.println(newImage);
} catch (Exception e) {
e.printStackTrace();
System.out.println("压缩失败!" + e.getMessage());
}
}