jsp导入图片的方式
(1)第一种是将图片全部导入到项目中,然后用相对的路径的方式进行导入
<img src="相对的路径">
(2)这里主要说的是第二种:如果没有将图片导入到项目中而是在项目外的某个磁盘上就要利用IO流的方法进行如下的操作(利用流,将图片导入到页面上)
在一个jsp的网页上写入如下的代码
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
//注意:这里的路径是相对的路径,这里的/images 在这里可以看作为是一次请求
//相当于是 UrlPatterns="/images/*"
<img src="/images/00c49232b01e6c46.jpg">
</body>
</html>
当jsp页面接收到这个发出请求的时候,我们可以新建一个servlet来进行响应的处理,java的代码如下
@WebServlet(urlPatterns = "/images/*")
public class Imageservlet extends HttpServlet {
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
// 设置响应的格式,图片的格式为任意的格式(jpg,png)
resp.setContentType("image/*");
String url = req.getRequestURI();
StringBuilder builder = new StringBuilder(124);
builder.append("D:\\");
builder.append(url);
System.out.println(builder.toString());
if(!new File(builder.toString()).exists()){
resp.sendError(404);
return;
}
FileInputStream is = new FileInputStream(builder.toString());
ServletOutputStream os = resp.getOutputStream();
// 将图片的字节流写入输出流中
IOUtils.copy(is,os);
IOUtils.closeQuietly(is);
}
}
完毕之后访问这个jsp的网页的话,图片就显示了出来。