为了账号安全,请及时绑定邮箱和手机立即绑定

图片显示不了呀

login.jsp里的代码:

<img class="tpyzm" src="<%=request.getContextPath()%>/ImageServlet" alt="验证码" /> 

            

            <a class="can" href="javascript:reloadCode();">刷新</a> 


然后ImageServlet.java里的代码

/** 

 * Project Name:zjweb 

 * File Name:ImageServlet.java 

 * Package Name:com.zjweb.action 

 * Date:2016年10月31日上午11:09:33 

 */

  


package com.zjweb.action;


import java.awt.Color;

import java.awt.Graphics;

import java.awt.image.BufferedImage;

import java.io.IOException;

import java.util.Random;


import javax.imageio.ImageIO;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;



/** 

 * ClassName: ImageServlet <br/> 

 * Function: TODO ADD FUNCTION. <br/> 

 * Reason: TODO ADD REASON(可选). <br/> 

 * date: 2016年10月31日 上午11:09:33 <br/> 

 * 

 * @author haoshasha

 * @version  

 * @since JDK 1.8

 */

public class ImageServlet extends HttpServlet 

{

/**

* doGet:(用来生成图片验证码的). <br/> 

* TODO(这里描述这个方法适用条件 – 可选).<br/> 

* @author haoshasha

* @param request

* @param response 

* @throws IOException 

* @since JDK 1.8

*/

public void doGet(HttpServletRequest request,HttpServletResponse response) throws IOException

{

BufferedImage bi = new BufferedImage(68,22,BufferedImage.TYPE_INT_RGB );

Graphics g = bi.getGraphics();

Color c = new Color(200, 150, 255);

g.setColor(c);

g.fillRect(0, 0, 68, 22);

char[] ch = "QWERTYUIOPASDFGHJKLZXCVBNM1234567890".toCharArray();

/**

* 随机获取四个字符

*/

Random r = new Random();

int len = ch.length,index;

StringBuffer sb = new StringBuffer();

for(int i = 0;i<4;i++)

{

index = r.nextInt(len);

g.setColor(new Color(r.nextInt(88), r.nextInt(188), r.nextInt(255)));

g.drawString(ch[index]+"", (i*15)+3, 18);

sb.append(ch[index]);

}

request.getSession().setAttribute("piccode", sb.toString());

ImageIO.write(bi, "JPG", response.getOutputStream());

}


}

web.xml里的代码

<servlet>

    <servlet-name>ImageServlet</servlet-name>

    <servlet-class>com.zjweb.action.ImageServlet </servlet-class>

   </servlet>

   <!-- 映射关系访问到servlet类 -->

  <servlet-mapping>

  <servlet-name>ImageServlet</servlet-name>

  <url-pattern>/servlet/ImageServlet</url-pattern>

  </servlet-mapping>  


正在回答

4 回答

你看看你这里,这两个路径没有对应上,即映射错误。

<img class="tpyzm" src="<%=request.getContextPath()%>/ImageServlet" alt="验证码" /> 

  <servlet-mapping>

      <servlet-name>ImageServlet</servlet-name>

      <url-pattern>/servlet/ImageServlet</url-pattern>

  </servlet-mapping>

----------------------------------------------------------------------

解释说明:

request.getContextPath()是获得根路径即 http://localhost:8080/项目名

-----------------------------------------------------------------------------

应该这样修改:

方法1:

src="http://localhost:8080/项目名/ImageServlet"

<servlet-mapping>

      <servlet-name>ImageServlet</servlet-name>

      <url-pattern>/ImageServlet</url-pattern>

  </servlet-mapping>

方法2:

src="http://localhost:8080/项目名/servlet/ImageServlet"

<servlet-mapping>

      <servlet-name>ImageServlet</servlet-name>

      <url-pattern>/servlet/ImageServlet</url-pattern>

  </servlet-mapping>

1 回复 有任何疑惑可以回复我~
#1

Airly

如果还是不能显示,就在查看WEB-INF > lib下面有没有导入包,老师提供了jar包的,拷贝进入。 同时检查,你是不是把你的web.xml文件放到lib文件夹下了,提取出来,放到web-inf文件夹下面即可。
2016-11-29 回复 有任何疑惑可以回复我~

我的是mvc框架的     就是和这个是不是冲突的呀

0 回复 有任何疑惑可以回复我~

建议直接新建一个Servlet,在class中继承httpservlet这样可能会有问题。

0 回复 有任何疑惑可以回复我~

<img class="tpyzm" src="<%=request.getContextPath()%>/ImageServlet" alt="验证码" /> 

改成<img class="tpyzm" src="<%=request.getContextPath()%>/servlet/ImageServlet" alt="验证码" /> 

0 回复 有任何疑惑可以回复我~
#1

weibo爱分享的番茄妞 提问者

改成了 还是不行啊
2016-11-02 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

图片显示不了呀

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信