springmvc后台获取图片,到jsp页面显示

1,jsp页面,img的url动态设定

<img id='bomimg' alt="" > 

$("#bomimg").attr("src", basepath+"biz/itemmanager/bizitembomimg/getBomImg/" + node.id);

2,后台,

需要引入jar包


代码段

<span style="white-space:pre">	</span>/**
	 * 获取图片
	 * @param request
	 * @return
	 */
	@RequestMapping(value = "/biz/itemmanager/bizitembomimg/getBomImg/{itemCode}", method = RequestMethod.GET)
	public ResponseEntity<byte[]>
	 getBomImg(HttpServletRequest request,HttpServletResponse response,@PathVariable String itemCode) {
		HttpHeaders he = new HttpHeaders();
		byte[] picture =  bizitembomimgService.getImg(itemCode);
		try {
			FileType imgType = FileTypeUtil.getType(picture);
			switch(imgType.name()){
				case "PNG":
					he.setContentType(MediaType.IMAGE_PNG);
					break;
				case "JPG":
					he.setContentType(MediaType.IMAGE_JPEG);
					break;
				case "JPEG":
					he.setContentType(MediaType.IMAGE_JPEG);
					break;
				case "GIF":
					he.setContentType(MediaType.IMAGE_GIF);
					break;
				case "BMP":
					he.setContentType(MediaType.valueOf("image/bmp"));
					break;
				default:
					he.setContentType(MediaType.IMAGE_JPEG);
					break;
			}
		} catch (IOException e) {
			e.printStackTrace();
		}
		return new ResponseEntity<>(picture,he,HttpStatus.OK);
	}
附: 根据二进制文件流获取文件类型工具类
package com.comprehensive.utils;

import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;

/**
 * 根据二进制文件流获取文件类型
 * 
 * @author Hou
 *
 */
public class FileTypeUtil {

	/**
	 * 文件头类型
	 * 
	 * @author Hou
	 *
	 *         常见文件头类型
	 * 
	 *  <pre>
    FFD8FFFE00, .JPEG;.JPE;.JPG, "JPG Graphic File"
    FFD8FFE000, .JPEG;.JPE;.JPG, "JPG Graphic File"
    474946383961, .gif, "GIF 89A"
    474946383761, .gif, "GIF 87A"
    424D, .bmp, "Windows Bitmap"
    4D5A, .exe;.com;.386;.ax;.acm;.sys;.dll;.drv;.flt;.fon;.ocx;.scr;.lrc;.vxd;<br>.cpl;.x32, "Executable File" 
    504B0304, .zip, "Zip Compressed"
    3A42617365, .cnt, ""
    D0CF11E0A1B11AE1, .doc;.xls;.xlt;.ppt;.apr, "MS Compound Document v1 or Lotus Approach APR file"
    0100000058000000, .emf, ""
    03000000C466C456, .evt, ""
    3F5F0300, .gid;.hlp;.lhp, "Windows Help File"
    1F8B08, .gz, "GZ Compressed File"
    28546869732066696C65, .hqx, ""
    0000010000, .ico, "Icon File"
    4C000000011402, .lnk, "Windows Link File"
    25504446, .pdf, "Adobe PDF File"
    5245474544495434, .reg, ""
    7B5C727466, .rtf, "Rich Text Format File"
    lh, .lzh, "Lz compression file"
    MThd, .mid, ""
    0A050108, .pcx, ""
    25215053, .eps, "Adobe EPS File"
    2112, .ain, "AIN Archive File"
    1A02, .arc, "ARC/PKPAK Compressed 1"
    1A03, .arc, "ARC/PKPAK Compressed 2"
    1A04, .arc, "ARC/PKPAK Compressed 3"
    1A08, .arc, "ARC/PKPAK Compressed 4"
    1A09, .arc, "ARC/PKPAK Compressed 5"
    60EA, .arj, "ARJ Compressed"
    41564920, .avi, "Audio Video Interleave (AVI)"
    425A68, .bz;.bz2, "Bzip Archive"
    49536328, .cab, "Cabinet File"
    4C01, .obj, "Compiled Object Module"
    303730373037, .tar;.cpio, "CPIO Archive File"
    4352555348, .cru;.crush, "CRUSH Archive File"
    3ADE68B1, .dcx, "DCX Graphic File"
    1F8B, .gz;.tar;.tgz, "Gzip Archive File"
    91334846, .hap, "HAP Archive File"
    3C68746D6C3E, .htm;.html, "HyperText Markup Language 1"
    3C48544D4C3E, .htm;.html, "HyperText Markup Language 2"
    3C21444F4354, .htm;.html, "HyperText Markup Language 3"
    100, .ico, "ICON File"
    5F27A889, .jar, "JAR Archive File"
    2D6C68352D, .lha, "LHA Compressed"
    20006040600, .wk1;.wks, "Lotus 123 v1 Worksheet"
    00001A0007800100, .fm3, "Lotus 123 v3 FMT file"
    00001A0000100400, .wk3, "Lotus 123 v3 Worksheet"
    20006800200, .fmt, "Lotus 123 v4 FMT file"
    00001A0002100400, .wk4, "Lotus 123 v5"
    5B7665725D, .ami, "Lotus Ami Pro"
    300000041505052, .adx, "Lotus Approach ADX file"
    1A0000030000, .nsf;.ntf, "Lotus Notes Database/Template"
    4D47582069747064, .ds4, "Micrografix Designer 4"
    4D534346, .cab, "Microsoft CAB File Format"
    4D546864, .mid, "Midi Audio File"
    000001B3, .mpg;.mpeg, "MPEG Movie"
    0902060000001000B9045C00, .xls, "MS Excel v2"
    0904060000001000F6055C00, .xls, "MS Excel v4"
    7FFE340A, .doc, "MS Word"
    1234567890FF, .doc, "MS Word 6.0"
    31BE000000AB0000, .doc, "MS Word for DOS 6.0"
    1A00000300001100, .nsf, "Notes Database"
    7E424B00, .psp, "PaintShop Pro Image File"
    504B0304, .zip, "PKZIP Compressed"
    89504E470D0A, .png, "PNG Image File"
    6D646174, .mov, "QuickTime Movie"
    6D646174, .qt, "Quicktime Movie File"
    52617221, .rar, "RAR Archive File"
    2E7261FD, .ra;.ram, "Real Audio File"
    EDABEEDB, .rpm, "RPM Archive File"
    2E736E64, .au, "SoundMachine Audio File"
    53495421, .sit, "Stuffit v1 Archive File"
    53747566664974, .sit, "Stuffit v5 Archive File"
    1F9D, .z, "TAR Compressed Archive File"
    49492A, .tif;.tiff, "TIFF (Intel)"
    4D4D2A, .tif;.tiff, "TIFF (Motorola)"
    554641, .ufa, "UFA Archive File"
    57415645666D74, .wav, "Wave Files"
    D7CDC69A, .wmf, "Windows Meta File"
    4C000000, .lnk, "Windows Shortcut (Link File)"
    504B3030504B0304, .zip, "WINZIP Compressed"
    FF575047, .wpg, "WordPerfect Graphics"
    FF575043, .wp, "WordPerfect v5 or v6"
    3C3F786D6C, .xml, "XML Document"
    FFFE3C0052004F004F0054005300540055004200, .xml, "XML Document (ROOTSTUB)"
    3C21454E54495459, .dtd, "XML DTD"
    5A4F4F20, .zoo, "ZOO Archive File"
	 * </pre>
	 * 
	 */
	public enum FileType {
		/**
		 * JEPG.
		 */
		JPEG("FFD8FF"),

		/**
		 * PNG.
		 */
		PNG("89504E47"),

		/**
		 * GIF.
		 */
		GIF("47494638"),

		/**
		 * TIFF.
		 */
		TIFF("49492A00"),

		/**
		 * Windows Bitmap.
		 */
		BMP("424D"),

		/**
		 * CAD.
		 */
		DWG("41433130"),

		/**
		 * Adobe Photoshop.
		 */
		PSD("38425053"),

		/**
		 * Rich Text Format.
		 */
		RTF("7B5C727466"),

		/**
		 * XML.
		 */
		XML("3C3F786D6C"),

		/**
		 * HTML.
		 */
		HTML("68746D6C3E"),
		/**
		 * CSS.
		 */
		CSS("48544D4C207B0D0A0942"),
		/**
		 * JS.
		 */
		JS("696B2E71623D696B2E71"),
		/**
		 * Email [thorough only].
		 */
		EML("44656C69766572792D646174653A"),

		/**
		 * Outlook Express.
		 */
		DBX("CFAD12FEC5FD746F"),

		/**
		 * Outlook (pst).
		 */
		PST("2142444E"),

		/**
		 * MS Word/Excel.
		 */
		XLS_DOC("D0CF11E0"), XLSX_DOCX("504B030414000600080000002100"),
		/**
		 * Visio
		 */
		VSD("d0cf11e0a1b11ae10000"),
		/**
		 * MS Access.
		 */
		MDB("5374616E64617264204A"),
		/**
		 * WPS文字wps、表格et、演示dps都是一样的
		 */
		WPS("d0cf11e0a1b11ae10000"),
		/**
		 * torrent
		 */
		TORRENT("6431303A637265617465"),
		/**
		 * WordPerfect.
		 */
		WPD("FF575043"),

		/**
		 * Postscript.
		 */
		EPS("252150532D41646F6265"),

		/**
		 * Adobe Acrobat.
		 */
		PDF("255044462D312E"),

		/**
		 * Quicken.
		 */
		QDF("AC9EBD8F"),

		/**
		 * Windows Password.
		 */
		PWL("E3828596"),

		/**
		 * ZIP Archive.
		 */
		ZIP("504B0304"),

		/**
		 * RAR Archive.
		 */
		RAR("52617221"),
		/**
		 * JSP Archive.
		 */
		JSP("3C2540207061676520"),
		/**
		 * JAVA Archive.
		 */
		JAVA("7061636B61676520"),
		/**
		 * CLASS Archive.
		 */
		CLASS("CAFEBABE0000002E00"),
		/**
		 * JAR Archive.
		 */
		JAR("504B03040A000000"),
		/**
		 * MF Archive.
		 */
		MF("4D616E69666573742D56"),
		/**
		 * EXE Archive.
		 */
		EXE("4D5A9000030000000400"),
		/**
		 * CHM Archive.
		 */
		CHM("49545346030000006000"),
		/*
		 * INI("235468697320636F6E66"), SQL("494E5345525420494E54"), BAT(
		 * "406563686F206f66660D"), GZ("1F8B0800000000000000"), PROPERTIES(
		 * "6C6F67346A2E726F6F74"), MXP( "04000000010000001300"),
		 */
		/**
		 * Wave.
		 */
		WAV("57415645"),

		/**
		 * AVI.
		 */
		AVI("41564920"),

		/**
		 * Real Audio.
		 */
		RAM("2E7261FD"),

		/**
		 * Real Media.
		 */
		RM("2E524D46"),

		/**
		 * MPEG (mpg).
		 */
		MPG("000001BA"),

		/**
		 * Quicktime.
		 */
		MOV("6D6F6F76"),

		/**
		 * Windows Media.
		 */
		ASF("3026B2758E66CF11"),

		/**
		 * MIDI.
		 */
		MID("4D546864"),
		/**
		 * MP4.
		 */
		MP4("00000020667479706d70"),
		/**
		 * MP3.
		 */
		MP3("49443303000000002176"),
		/**
		 * FLV.
		 */
		FLV("464C5601050000000900");

		private String value = "";

		/**
		 * 
		 * @param type
		 */
		private FileType(String value) {
			this.value = value;
		}

		public String getValue() {
			return value;
		}

		public void setValue(String value) {
			this.value = value;
		}

	}

	/**
	 * 将文件头转换成16进制字符串 *
	 * 
	 * @param 原生byte
	 * @return 16进制字符串
	 */
	private static String bytesToHexString(byte[] src) {
		StringBuilder stringBuilder = new StringBuilder();
		if (src == null || src.length <= 0) {
			return null;
		}
		for (int i = 0; i < src.length; i++) {
			int v = src[i] & 0xFF;
			String hv = Integer.toHexString(v);
			if (hv.length() < 2) {
				stringBuilder.append(0);
			}
			stringBuilder.append(hv);
		}
		return stringBuilder.toString();
	}

	/**
	 * 得到文件头
	 * 
	 * @param filePath
	 *            文件路径
	 * @return 文件头
	 * @throws IOException
	 */
	private static String getFileContent(String filePath) throws IOException {
		byte[] b = new byte[28];
		InputStream inputStream = null;
		try {
			inputStream = new FileInputStream(filePath);
			inputStream.read(b, 0, 28);
		} catch (IOException e) {
			e.printStackTrace();
			throw e;
		} finally {
			if (inputStream != null) {
				try {
					inputStream.close();
				} catch (IOException e) {
					e.printStackTrace();
					throw e;
				}
			}
		}
		return bytesToHexString(b);
	}

	/**
	 * * 判断文件类型
	 * 
	 * @param filePath
	 *            文件路径
	 * @return 文件类型
	 */
	public static FileType getType(String filePath) throws IOException {
		String fileHead = getFileContent(filePath);
		if (fileHead == null || fileHead.length() == 0) {
			return null;
		}
		fileHead = fileHead.toUpperCase();
		FileType[] fileTypes = FileType.values();
		for (FileType type : fileTypes) {
			if (fileHead.startsWith(type.getValue())) {
				return type;
			}
		}
		return null;
	}

	public static void main(String args[]) throws Exception {
		System.out.println(FileTypeUtil.getType("C:/Users/hou/Desktop/note.zip"));
	}

}

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要将后台的数据展示JSP页面,可以使用SpringMVC的ModelAndView对象。 以下是一个简单的例子: 1. 在Controller中定义方法,查询数据并将其存储在ModelAndView对象中。 ``` @RequestMapping(value = "/showData", method = RequestMethod.GET) public ModelAndView showData() { List<User> userList = userService.getUserList(); ModelAndView modelAndView = new ModelAndView("showData"); modelAndView.addObject("userList", userList); return modelAndView; } ``` 2. 在JSP页面中,使用EL表达式获取存储在ModelAndView对象中的数据并展示。 ``` <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> <html> <body> <table> <tr> <th>Id</th> <th>Name</th> <th>Age</th> </tr> <c:forEach var="user" items="${userList}"> <tr> <td>${user.id}</td> <td>${user.name}</td> <td>${user.age}</td> </tr> </c:forEach> </table> </body> </html> ``` 在这个例子中,我们通过Controller中的showData方法获取了一个名为"userList"的List对象,将其存储在ModelAndView对象中,并返回到JSP页面。在JSP页面中,我们使用EL表达式获取"userList"对象,并通过<c:forEach>标签循环展示每个用户的信息。 需要注意的是,我们在JSP页面中使用了JSTL标签库的<c:forEach>标签。如果您还没有在项目中引入JSTL标签库,则需要在pom.xml文件中添加以下依赖: ``` <dependency> <groupId>javax.servlet</groupId> <artifactId>jstl</artifactId> <version>1.2</version> </dependency> ``` 同时,需要在JSP页面的头部添加以下标签库声明: ``` <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值