servlet中 doGet和doPost都執行doPostpublic void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, 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[] code = "ABCDEFGHIGKLMNOPQRSTUVWXYZ0123456789".toCharArray(); Random r= new Random(); int len = code.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(code[index] + "", (i*15)+3,18 ); sb.append(code[index]); } request.getSession().setAttribute("picode", sb.toString()); ImageIO.write(bi,"jpg",response.getOutputStream()); }jsp中<form action="ls" method = "get"> ? ?<input type="text" id = "text1" name ="code" /> ? ?<img ?id="img1" alt="驗證碼" src="<%=request.getContextPath() %>/is" /> ? ?<a href="javascript:reCode()">看不清楚,換一張</a> ? ?<br/> ? ?驗證碼:<%=(String)session.getAttribute("picode") %> ? ?<input type="submit" id="btn1" value="驗證"/>? ? </form>這里第一次是在頁面顯示"驗證碼:null"之后每一次顯示的驗證碼都是上一次的驗證碼比如這次顯示的圖片是:809Y 驗證碼:null下一次就是圖片是:8278 驗證碼:809Y這是什么原因。不太明白。
Servlet里向Session里放變量,在jsp中取數據的問題
應龍
2016-08-18 12:46:10