public class ImageServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//get the image parameter
String img = req.getParameter("img");
if(img == null) {
throw new RuntimeException("You must sepcify a img");
}
// Get the absolute path of the image
ServletContext sc = getServletContext();
String filename = sc.getRealPath(img); //relative to /WebContent
// Get the MIME type of the image
String mimeType = sc.getMimeType(filename);
if (mimeType == null) {
sc.log("Could not get MIME type of "+filename);
resp.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
return;
}
// Set content type
resp.setContentType(mimeType);
// Set content size
File file = new File(filename);
resp.setContentLength((int)file.length());
// Open the file and output streams
FileInputStream in = new FileInputStream(file);
OutputStream out = resp.getOutputStream();
// Copy the contents of the file to the output stream
byte[] buf = new byte[1024];
int count = 0;
while ((count = in.read(buf)) >= 0) {
out.write(buf, 0, count);
}
in.close();
out.close();
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException,
IOException {
doGet(req, resp);
}
}
使用
<img src="imageServlet?img=/path/to/image.jpg"/>
分享到:
相关推荐
这里我们关注的是一个名为"ImageServlet"的Java后台处理程序,它是专门用于处理图片上传的。使用MyEclipse作为开发工具,意味着开发人员利用了这款强大的集成开发环境来编写、调试和部署Java应用程序。 **Java ...
`ImageServlet`可能是处理验证码图像请求的Servlet,它会根据`RandomValidateCode`生成的字符串绘制一个图像,包括扭曲线条、噪点等干扰元素,使得人类可以轻松识别但机器难以解析。 接下来,`jsp.html`可能是一个...
例如,我们可以创建一个名为`ImageServlet`的类,它解析请求URL中的图片ID,然后从服务器的指定目录加载相应的图片。 ```java public class ImageServlet extends HttpServlet { protected void doGet...
<servlet><br/> <servlet-name>checkimage</servlet-name><br/> <servlet-class>com.flt.util.ImageServlet</servlet-class> <init-param><br/> <param-name>width</param-name><br/> <param-value>60...
在页面中,直接使用 `<img src="imageServlet">`,在 src 中填写前面创建的 servlet 的 URL,即可显示出验证码图像,最后,可以通过一下代码,来验证用户输入的验证码是否正确: ```java // 仅通过 2 行调用 Captcha...
`ImageServlet`是一个专门处理图片请求的Servlet,它负责读取图片并将其发送到客户端。在`doGet`方法中,Servlet接收四个参数:`showImgKey`、`fileName`、`contentType`和`fileExt`。`showImgKey`是一个安全检查码...
在寻找如何将报表直接转换为图像的过程中,开发者考虑了JasperReport自带的`ImageServlet`类,但发现该类只能提取jasper文件中的特定图像,而无法将整个报表输出为图像。 接着,开发者转向了`JRGraphics2DExporter`...
public class ImageServlet extends HttpServlet { // ... } ``` ##### 3. 设置图像尺寸 在类中定义了图像的宽度和高度,并在`service`方法中初始化了一个`BufferedImage`对象,用以存储生成的彩色验证码图片。 ...
首先,我们创建了一个名为`ImageServlet`的类,它继承自`HttpServlet`。`HttpServlet`是处理HTTP请求的基础类,提供了`doGet`和`doPost`方法来处理HTTP的GET和POST请求。在这个例子中,`doGet`方法调用了`doPost`,...
而"ImageServlet.rar"则可能包含JavaServlet的源代码和部署所需的依赖。 通过这种方式,Flex与JavaServlet的集成使得我们能够跨平台地处理图像数据,将Flex应用程序的组件快照导出为实际的图片文件。这种技术在需要...
2. ImageServlet.java:这是一个Servlet类,它处理HTTP请求,调用`ValidateCodeImageCodeMade`类的方法生成验证码,然后将生成的图像以流的形式响应给客户端。Servlet需要配置在web.xml中,以监听特定的URL路径,当...
sendGetDictate(req, "/manager/servlet/imageservlet?tag=ajaxuploadfilecheck&WARE_ID=609187669&nocache=" + Math.random(), "name=111"); } ``` 4. **处理服务器响应**: - 当服务器返回数据时,根据返回的...
request.getSession().setAttribute(ImageServlet.DEFAULT_JASPER_PRINT_SESSION_ATTRIBUTE, jasperPrint); ``` 这样做的好处是在后续请求中可以访问该`JasperPrint`对象,从而正确显示图像。 #### 5. IReport ...
<servlet-class>org.whatisjava.dang.util.ImageServlet <servlet-name>image <url-pattern>/jsp/image ``` 这样就可以通过URL `http://localhost:8080/web/jsp/image.do` 访问到验证码图片了。 #### 4. ...
<servlet-name>ImageServlet <servlet-class>com.mobile.control.ImageServlet</servlet-class> <servlet-name>ImageServlet <url-pattern>/servlet/ImageServlet </servlet-mapping>
服务器端servet验证码: Servlet验证码(随机生成字母+数字+背景的6位验证码) jsp文件引用: <img src="ImageServlet" onclick="javascript:this.src='ImageServlet?id='+ Math.random();" alt="换一个">
servlet做的验证码,在<img src="ImageServlet" />填写servlet类名就能显示出来
例如,所有关于图片的请求可能会被映射到名为`ImageServlet`的类。 2. **Servlet类**:`ImageServlet`会继承`HttpServlet`类,并重写`doGet`或`doPost`方法,以处理HTTP请求。在这里,它可能会解析请求参数,根据...
只需将`"servlet地址"`替换为部署在服务器上的ImageServlet的访问路径。 总结起来,要解决JSP显示中文文件名的图片问题,可以通过调整Tomcat的`URIEncoding`属性或在JSP中进行URL编码。若需显示服务器上的绝对路径...