<%@?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);
}
}

2016-08-03
這里路徑寫錯了吧,首先<% 后邊缺少一個等號,其次訪問路徑好像也不太對,建議你看一下你點擊獲取的時候路徑的變化以及報錯信息。
2016-08-04
不是的,jsp表達式使用的就是<%= %>這樣的方式,你應(yīng)該是看錯了。
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
path是獲取的根目錄,你也可以寫<%=path>/......路徑/.