jsp浏览图像bean原理分析与改良-JSP实用教程(第三版)耿祥义 张跃平编著第4章例题4_9-动态获取文件夹中的文件并返回

本文分析了《JSP实用教程》第4章例题4_9,涉及如何利用JavaBean动态获取项目文件夹中的图片,并通过JSP展示。讨论了File类的相对路径问题,提出了解决方案和效率提升的改良方法,包括使用getResource替代File类获取资源,以及使用JS在客户端实现图片切换,以减少服务器请求。
摘要由CSDN通过智能技术生成

前言

下面我要给大家讲解的是《JSP实用教程(第三版)耿祥义 张跃平编著》的第4章(JSP与Javabean)中例题4_9,这个例子所实现的功能是编写一个类和一个jsp文件,动态获取项目中一个文件夹下面所有的图片文件并将路径存储到对象中,当我们点击jsp页面中的上一张和下一张按钮时,重新向服务器提交请求,服务器返回新的html页面从而达到切换图片的效果。

1.效果展示

(注意:这里的上面的按钮是“上一张”,下面的按钮是下一张,哈哈,没想到我自己居然打错字了,而且是等文章快写好的时候才发现写错字的,不过问题应该不大,大家明白这个意思就好了,我就不重新截图了,麻烦地很!!)
效果展示

2.知识点讲解

2.1什么是javabean?

bean的本意是豆子,而在java ee的开发中,一般我们把一些可重用的组件称为一个javabean,简单的来说,javabean就是一个类,当有一些信息需要我们进行存储或者在不同的程序之间传递时,封装成一个javabean会是一个很好的选择,例如:
javabean简介

2.2javabean代码示例

package tom.jiafei;

import java.util.Date;

public class UserInfo {
	//这里的用户的信息存储在UserInfo类的成员变量里,类UserInfo就是一个javabean
	public String id;
	private String password;
	public String name;
	public int sex;//0未知 1男 2女
	public String phone;
	public String email;
	public Date registerTime;
	public boolean vip;
	//一般我们会为javabean中的每个属性编写一个对应的set方法和get方法,不过时候后也会故意不写,例如:
	public String getId() {return id;}
	public void setId(String i) {id=i;}
	public String getName() {return name;}
	public void setName(String name) {this.name = name;}
	//jsp页面调用<jsp:getProperty/>和</jsp:setProperty/>来获取和设置javabean中的成员时,bean中必须存在对应的is方法或get方法或set方法,否则会出错
	public boolean isVip() {
		return vip;
	}
	public void setVip(boolean vip) {
		this.vip = vip;
	}
	//其他的东西我就不写了,大家随便看看就好了
}

2.3 File类的使用

File类是java.io包中一个操作磁盘上的文件或目录的类,这里我简单介绍一下File类的使用以及背后的原理。直接上代码,在代码中解释吧。我在我电脑的D盘中新建了一个test.java。内容如下:

package com;
import java.io.File;
public class test{
	public static void main(String args[]){
		//File类使用方法1.使用绝对路径,路径分隔符可以是\\或/
		File f1 = new File("d:/test1.txt");//1.1文件
		File f2 = new File("c:\\test");//1.2目录
		//注意,上面的这两个路径都是不存在的,File中只是存储了路径信息,
		//如果需要判断文件是否存在或者创建文件的话,需要调用File类中的方法。
		if(f1.exists()){
			System.out.println("文件存在");
		}else{
			try{
				f1.createNewFile();//创建新文件
			}catch(Exception e){System.out.println(e);}
		}
		
		//File类使用方法2.使用相对路径
		File f3 = new File("");//这个目录就是当前目录,具体是啥我后面再解释
		File f4 = new File("test3.txt");
		System.out.println("f3 "+f3.getAbsolutePath());
		System.out.println("f4 "+f4.getAbsolutePath());
	}
}

下面简单看一下运行结果:
运行结果
上面的File类的示例还是比较简单的,唯一容易产生疑问的就是File类中相对路径的参照到底是怎么来的。从上面的图我们可以看到,java中File类获取到的相对路径和我们执行java命令时的工作目录是一致的,下面我再给大家详细讲讲这里。

2.3.1 File类的相对路径

根据JDK的官方文档,java.io包中的所有类都将相对路径名解释为起始于用户的当前工作目录,可以通过调用System.getProperty(“user.dir”) 来获得,这个user.dir属性,简单来说就是执行java命令的工作目录的路径,下面我用代码给大家验证一下,将上个例子中的代码精简如下:

package com;
import java.io.File;
public class test{
	public static void main(String args[]){
		System.out.println(new File("").getAbsolutePath());
		System.out.println(System.getProperty("user.dir"));
	}
}

相对路径

2.3.2 列举出目录中的所有文件

File类中提供的列举目录中的文件的方法有2个分别是list()和listFiles();在源码中它们的定义如下:
list方法
下面我简单示范一下:

package com;
import java.io.File;
import java.util.Arrays;
public class test{
	public static void main(String args[]){
		//用法1.list方法列举出所有文件和目录,获取到的是字符串
		File f = new File("d:\\cordova");//注意这里的必须传入一个目录的值才能使用list方法
		String [] list 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

月桦剑士

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值