亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

圖片顯示不了呀

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下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號