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

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

驗證碼出不來

<%@?page?language="java"?contentType="text/html;?charset=utf-8"%>
<!DOCTYPE?html?PUBLIC?"-//W3C//DTD?HTML?4.01?Transitional//EN"?"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta?http-equiv="Content-Type"?content="text/html;?charset=utf-8">
<title>checkCode</title>
	<script?type="text/javascript">
		function?reloadCode(){
			var?time?=?new?Date().getTime();
			document.getElementById("imagecode").src="<%request.getContextPath();%>/yanzheng/ImageServlet?d="+time;
		}
	</script>
</head>
<body>
	驗證碼:<input?type="text"?name="checkcode"/>
		<img?alt="驗證碼"?id="imagecode"?src="<%request.getContextPath();%>/yanzheng/ImageServlet"?/>
		<a?href="javascript:reloadCode();">看不清楚</a><br>

</body>
</html>




package?com.imooc.yanzheng;

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.ServletException;
import?javax.servlet.annotation.WebServlet;
import?javax.servlet.http.HttpServlet;
import?javax.servlet.http.HttpServletRequest;
import?javax.servlet.http.HttpServletResponse;

/**
?*?Servlet?implementation?class?ImageServlet
?*/
@WebServlet(name="ImageServlet",urlPatterns={"/yanzheng/ImageServlet"})
public?class?ImageServlet?extends?HttpServlet?{
	private?static?final?long?serialVersionUID?=?1L;
???????
????/**
?????*?@see?HttpServlet#HttpServlet()
?????*/
????public?ImageServlet()?{
????????super();
????????//?TODO?Auto-generated?constructor?stub
????}

	/**
	?*?@see?HttpServlet#doGet(HttpServletRequest?request,?HttpServletResponse?response)
	?*/
	public?void?doGet(HttpServletRequest?request,?HttpServletResponse?response)??{

		BufferedImage?bi?=?new?BufferedImage(66,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?=?"ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456798".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());
		try?{
			ImageIO.write(bi,?"JPG",?response.getOutputStream());
		}?catch?(IOException?e)?{
			//?TODO?Auto-generated?catch?block
			e.printStackTrace();
		}
	
	
	}

	/**
	?*?@see?HttpServlet#doPost(HttpServletRequest?request,?HttpServletResponse?response)
	?*/
	public?void?doPost(HttpServletRequest?request,?HttpServletResponse?response)?throws?ServletException,?IOException?{
		//?TODO?Auto-generated?method?stub
		doGet(request,?response);
	}

}

http://img1.sycdn.imooc.com//57a137f500013a4b04880514.jpg

正在回答

2 回答

http://img1.sycdn.imooc.com//57a1525700016bac06670023.jpg


這里路徑寫錯了吧,首先<% 后邊缺少一個等號,其次訪問路徑好像也不太對,建議你看一下你點擊獲取的時候路徑的變化以及報錯信息。

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

大咪 提問者

我試試好像你說的是對的。
2016-08-03 回復 有任何疑惑可以回復我~
#2

大咪 提問者

非常感謝!
2016-08-03 回復 有任何疑惑可以回復我~
#3

大咪 提問者

你說的那個是對的,可是還有一個問題啊,老師視頻里我記得貌似他前面的根目錄路徑打的時候就是<%request.getContextPath();%>這樣的吧。。。
2016-08-03 回復 有任何疑惑可以回復我~
#4

大咪 提問者

。。我又看了一遍,我的問題。。。老師最后補上了。。謝謝了
2016-08-03 回復 有任何疑惑可以回復我~
查看1條回復

不是的,jsp表達式使用的就是<%= %>這樣的方式,你應該是看錯了。

<%

String path = request.getContextPath();

String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";

%>

path是獲取的根目錄,你也可以寫<%=path>/......路徑/.

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

大咪 提問者

OK,我懂了謝謝啦
2016-08-04 回復 有任何疑惑可以回復我~
#2

大咪 提問者

你的頭像是敵法!。。 你也打dota2嗎
2016-08-04 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

驗證碼出不來

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

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

公眾號

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