tomcat显示服务器图片,用Tomcat构建一个简单图片服务器

前提条件

Tomcat 7.0.90

方法一:修改配置文件

在TOMCAT_HOME/conf/server.xml配置文件内的内添加一子标签:

9e4a5be482387a7c1b58d2dca91cb8f7.png

方法二:添加Servlet

新建一应用,然后添加如下的Servlet,然后部署应用并启动Tomcat。

package com.lun.servlet;

import java.io.BufferedInputStream;

import java.io.BufferedOutputStream;

import java.io.FileInputStream;

import java.io.FileNotFoundException;

import java.io.IOException;

import javax.servlet.ServletException;

import javax.servlet.annotation.WebServlet;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

@WebServlet(name = "imgservlet", urlPatterns = { "/imgservlet/*" })

public class ImgServlet extends HttpServlet {

private static final long serialVersionUID = -3351976768417931566L;

private static final String IMG_PATH = "C:/exambase";

protected void doGet(HttpServletRequest request,

HttpServletResponse response) throws ServletException, IOException {

doPost(request, response);

}

protected void doPost(HttpServletRequest request,

HttpServletResponse response) throws ServletException, IOException {

String pathInfo = request.getPathInfo();

try{

BufferedInputStream in = new BufferedInputStream(new FileInputStream(String.format("%s%s", IMG_PATH, pathInfo)));

BufferedOutputStream out = new BufferedOutputStream(response.getOutputStream());

try {

byte[] content = new byte[in.available()];

in.read(content);

response.setContentType("image/png,image/jpeg,image/gif,image/bmp");

out.write(content);

}finally {

in.close();

out.close();

}

}catch(FileNotFoundException ex) {

throw new IOException(String.format("%s Not Found.", pathInfo));

}catch(Exception ex) {

throw ex;

}

}

}

3451a7f0a4e53bce5dc8b3c4c8404b1a.png

解决路径含中文时出现乱码问题

本次测试使用的是Tomcat/7.0.90,默认解码URL的字符集是ISO-8859-1,而浏览器发出URL是用UTF-8编码。若URL含中文,乱码现象自然而然会发生。

解决之道:在TOMCAT_HOME/conf/server.xml配置文件内的

添加一属性URIEncoding="UTF-8"。

fcff6b4d362e8ea467cfba51bbe7ff3e.png

参考资料

文章来源: www.oschina.net,作者:巨輪,版权归原作者所有,如需转载,请联系作者。

原文链接:https://my.oschina.net/jallenkwong/blog/3165160

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值