SSM云服务器如何访问图片
SSM(Spring SpringMVC Mybatis)作为目前比较流行的Java Web开发框架,已经被广泛应用到各种项目中。有时我们需在SSM项目中加载展示图片,那么如何访问图片呢?
一、将图片上传到服务器
在SSM项目中,我们一般将图片上传到服务器。服务器上的文件夹可以通过apache-tomcat(应用服务器)或FTP服务器来实现。以tomcat为例:
1.在Tomcat安装目录下的webapps文件夹中新建一个文件夹,例如“images”,用于存放图片。
2.在web.xml文件中配置servlet-mapping。配置servlet-mapping来对所有请求到该servlet进行拦截,对输入的URI进行解析,然后输出指定的文件。
“`
ImageServlet
com.xxx.ImageServlet
ImageServlet
/images/*
“`
3.编写ImageServlet类,通过response.getOutputStream()将图片写入response输出流。
“`
File imageFile = new File(imagePath);
FileInputStream fileInputStream = new FileInputStream(imageFile);
BufferedInputStream buffInputStream = new BufferedInputStream(fileInputStream);
byte[] buffer = new byte[buffInputStream.available()];
buffInputStream.read(buffer);
buffInputStream.close();
response.getOutputStream().write(buffer);
response.getOutputStream().flush();
response.getOutputStream().close();
“`
以上步骤完成后,就可以将图片上传到服务器中了。
二、前台代码引入图片
在前台引入图片的方式:
“`
“`
其中,“${pageContext.request.contextPath}”代表了当前应用在服务器上的根路径。如上面的tomcat配置,图片放在“images”文件夹中,即可通过“/images/图片名”访问到图片。
三、图片的封装
在实际开发中,我们往往会将图片封装成一个类,通过类的方法进行加载。
“`
public class ImageUtil {
/**
* 获得图片流
*
* @param imagePath 图片路径
* @return InputStream
*/
public static InputStream getInputStream(String imagePath) {
File imageFile = new File(imagePath);
if (!imageFile.exists()) {
return null;
}
try {
return new FileInputStream(imageFile);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
return null;
}
/**
* 获得图片展示的url
*
* @param imageName
* @return
*/
public static String getImageUrl(String imageName) {
String urlPath = \”/images/\”;
String realPath = ImageUtil.class.getResource(\”/\”).getPath() urlPath imageName;
return realPath.replaceAll(\”\\\\\\\\\”, \”/\”);
}
}
“`
四、图片的缓存
我们加载图片时,往往会将图片缓存到本地。图片的缓存有利于网络传输、加快页面加载速度。
下面是一个简单的图片缓存代码:
“`
private static ConcurrentHashMap<String, SoftReference> cache = new ConcurrentHashMap<String, SoftReference>();
public static BufferedImage getImage(String imageName) {
SoftReference reference = cache.get(imageName);
BufferedImage image = null;
if (reference != null) {
image = reference.get();
}
if (image == null) {
image = loadImage(ImageUtil.getImageUrl(imageName));
if (image != null) {
cache.put(imageName, new SoftReference(image));
}
}
return image;
}
“`
以上就是SSM云服务器如何访问图片的方法,同时也让我们更深一步地了解了Java Web开发的一些基础知识。
以上就是小编关于“ssm云服务器怎么访问图片”的分享和介绍
西部数码(west.cn)是经工信部审批,持有ISP、云牌照、IDC、CDN全业务资质的正规老牌云服务商,自成立至今20余年专注于域名注册、虚拟主机、云服务器、企业邮箱、企业建站等互联网基础服务!
公司自研的云计算平台,以便捷高效、超高性价比、超预期售后等优势占领市场,稳居中国接入服务商排名前三,为中国超过50万网站提供了高速、稳定的托管服务!先后获评中国高新技术企业、中国优秀云计算服务商、全国十佳IDC企业、中国最受欢迎的云服务商等称号!
目前,西部数码高性能云服务器正在进行特价促销,最低仅需48元!
https://www.west.cn/cloudhost/