怎么就不能在数据库中写入验证码啊?头疼

问题描述

一共有3个程序1.登陆页面:packagecn.edu.zzu.authorcodes;importjava.io.IOException;importjava.io.PrintWriter;importjavax.servlet.ServletContext;importjavax.servlet.ServletException;importjavax.servlet.http.HttpServlet;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;publicclassloginextendsHttpServlet{publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{ServletContextcontext=getServletContext();Stringname=request.getParameter("username");Stringpwd=request.getParameter("password");Stringauth=request.getParameter("authcodes");response.setContentType("text/html;charset=gb2312");PrintWriterout=response.getWriter();if("liying".equals(name)&&"1234".equals(pwd)&&context.getAttribute("getImg").equals(auth)){out.println("登录成功<br>");out.println("<ahref=login>点此返回登陆界面</a>");}else{if((request.getMethod()!="GET")&&(!("".equals(name))||!("".equals(pwd))||!("".equals(auth)))){out.println("所输入的内容不对!<br>");}out.println("<formmethod=postaction=login>");out.println("<table>");out.println("<tr>");out.println("<td>请输入用户名</td>");out.println("<td><inputtype=textname=username></td>");out.println("</tr>");out.println("<tr>");out.println("<td>请输入密码</td>");out.println("<td><inputtype=passwordname=password></td>");out.println("</tr>");out.println("<tr>");out.println("<td>请输入右图的验证码</td>");out.println("<td><inputtype=textname=authcodes><imgsrc=authservlet/></td>");out.println("</tr>");out.println("<tr>");out.println("<td></td>");out.println("<td><inputtype=resetvalue=重填><inputtype=submitvalue=登录></td>");out.println("</tr>");out.println("</table>");out.println("</form>");}}publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{doGet(request,response);}}2.验证码程序importjava.io.*;importjava.util.*;importcom.sun.image.codec.jpeg.*;importjavax.servlet.*;importjavax.servlet.http.*;importjava.awt.*;importjava.awt.image.*;publicclassAuthServletextendsHttpServlet{privateFontmFont=newFont("TimesNewRoman",Font.PLAIN,18);//设置字体//staticStringAuthCode="";//处理postpublicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{doGet(request,response);}publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{//取得一个1000-9999的随机数response.setContentType("image/gif");response.setHeader("Pragma","No-cache");response.setHeader("Cache-Control","no-cache");response.setDateHeader("Expires",0);intwidth=60;intheight=20;if(request.getParameter("width")!=null&&!request.getParameter("width").equals(""))width=Integer.parseInt(request.getParameter("width"));if(request.getParameter("height")!=null&&!request.getParameter("height").equals(""))height=Integer.parseInt(request.getParameter("height"));ServletOutputStreamout=response.getOutputStream();BufferedImageimage=newBufferedImage(width,height,BufferedImage.TYPE_INT_RGB);//设置图片大小的Graphicsgra=image.getGraphics();Randomrandom=newRandom();gra.setColor(getRandColor(200,250));//设置背景色gra.fillRect(0,0,width,height);gra.setColor(Color.black);//设置字体色gra.setFont(mFont);//随机产生155条干扰线,使图象中的认证码不易被其它程序探测到gra.setColor(getRandColor(160,200));for(inti=0;i<155;i++){intx=random.nextInt(width);inty=random.nextInt(height);intxl=random.nextInt(12);intyl=random.nextInt(12);gra.drawLine(x,y,x+xl,y+yl);}//取随机产生的认证码(4位数字)StringsRand="";for(inti=0;i<4;i++){Stringrand=String.valueOf(random.nextInt(10));sRand+=rand;PrintWriterout=resp.getWriter();//将认证码显示到图象中gra.setColor(newColor(20+random.nextInt(110),20+random.nextInt(110),20+random.nextInt(110)));//调用函数出来的颜色相同,可能是因为种子太接近,所以只能直接生成gra.drawString(rand,13*i+6,16);}ServletContextcontext=getServletContext();context.setAttribute("getImg",newString(sRand));BufferedImagem=newBufferedImage(width,height,BufferedImage.TYPE_INT_RGB);JPEGImageEncoderencoder=JPEGCodec.createJPEGEncoder(out);encoder.encode(image);}staticColorgetRandColor(intfc,intbc){//给定范围获得随机颜色Randomrandom=newRandom();if(fc>255)fc=255;if(bc>255)bc=255;intr=fc+random.nextInt(bc-fc);intg=fc+random.nextInt(bc-fc);intb=fc+random.nextInt(bc-fc);returnnewColor(r,g,b);}}3.连接数据库程序(最无奈的错误程序)packagecn.edu.zzu.authorcodes;importjavax.servlet.ServletContext;importjavax.servlet.ServletException;importjava.io.*;importjava.sql.*;importjavax.servlet.*;importjavax.servlet.http.*;publicclassliextendsHttpServlet{ServletContextcontext=getServletContext();Connectionconn=null;Statementstmt=null;ResultSetrs;privateStringurl;privateStringuser;privateStringpassword;publicvoidinit()throwsServletException{StringdriverClass=getInitParameter("driverClass");url=getInitParameter("url");user=getInitParameter("user");password=getInitParameter("password");try{Class.forName(driverClass);}catch(ClassNotFoundExceptionce){thrownewServletException("加载数据库驱动失败!");}}publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{doGet(request,response);}publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{try{Graphicsgra=image.getGraphics();Randomrandom=newRandom();StringsRand="";for(inti=0;i<4;i++){Stringrand=String.valueOf(random.nextInt(10));sRand+=rand;//将认证码显示到图象中gra.setColor(newColor(20+random.nextInt(110),20+random.nextInt(110),20+random.nextInt(110)));//调用函数出来的颜色相同,可能是因为种子太接近,所以只能直接生成gra.drawString(rand,13*i+6,16);}ServletContextcontext=getServletContext();context.setAttribute("getImg",newString(sRand));conn=DriverManager.getConnection(url,user,password);stmt=conn.createStatement();stmt.executeUpdate("dropdatabaseifexistsRANDOM");stmt.executeUpdate("createdatabaseRANDOM");stmt.executeUpdate("useRANDOM");stmt.executeUpdate("createtablerand(numbervarchar(4)notnullprimarykey)");stmt.executeUpdate("insertintorandvalues('"+sRand+"')");stmt.executeBatch();}catch(SQLExceptionse){thrownewServletException(se);}finally{if(stmt!=null){try{stmt.close();}catch(SQLExceptionse){se.printStackTrace();}stmt=null;}if(conn!=null){try{conn.close();}catch(SQLExceptionse){se.printStackTrace();}conn=null;}}}}第3个程序,老是不让插入sRrand的值,有哪位懂得大虾赐教啊

时间: 2024-09-19 09:31:09

怎么就不能在数据库中写入验证码啊?头疼的相关文章

c-C语言数据库编程,往数据库中写入一条数据,编译出错

问题描述 C语言数据库编程,往数据库中写入一条数据,编译出错 #include #include #include char userid[10] = "gaps/gaps"; int main() { char yw_xh[8] = "2"; char yw_xm[20] = "王小二"; char yw_xb = 'W'; char yw_yx[50] = "气象学院"; int yw_ywcj = 80; int yw_

SQLServer数据库中开启CDC导致事务日志空间被占满的原因

SQLServer中开启CDC之后,在某些情况下会导致事务日志空间被占满的现象为: 在执行增删改语句(产生事务日志)的过程中提示,The transaction log for database '***' is full due to 'REPLICATION'(数据库"***"的事务日志已满,原因为"REPLICATION"). CDC以及复制的基本原理粗略地讲,对于日志的使用步骤如下: 1,每当基础表(开启了CDC或者replication的表)产生事务性操作

sql-VB写到SQL的数据为什么不按写入的先后顺序保存在数据库中?

问题描述 VB写到SQL的数据为什么不按写入的先后顺序保存在数据库中? 比如SQL数据库中有A,B,C三个数据,我删掉数据B,然后再写入数据D,数据库中存储顺序为什么是A,D,C,而不是A,C,D? 解决方案 你是怎么判断不是按照写入的先后顺序保存的? 根据自增长字段吗?

怎么把数据库中的某列循环写入数组并且与select选择的值进行比较

问题描述 做了个机房的申请系统,可以根据时间搜索机房是否可选,数据库中字段分别为开始周次sweek,结束周次eweek,星期day,节次time,要实现用户在select中选择的时间与机房已经安排的时间不冲突,按照下面的代码执行的话,只会同一个机房的最后一次安排中发生冲突(比如有个机房在三个时段被安排过了,但是只能在最后一次安排中发生时间冲突,之前两次安排的时间依旧可以选择这个机房),不知道错误在哪儿,希望大家帮帮新人for(inti=0;i<=count-1;i++){int[]sweek1=

遍历-要将数据库中以字符串形式存在的表达式写入if..else if...else if代码中,怎样做到

问题描述 要将数据库中以字符串形式存在的表达式写入if..else if...else if代码中,怎样做到 如题,本来可以一直用if...else if... 把所有的表达式都遍历一遍以找出吻合的项的但现在要求弄个规则库,把表达式的信息都放在规则库中,方便对这些起约束作用的表达式就行管理,如增删查找等操作:我的设想是弄个数据库表,把表达式都存在表中,然后弄个if..else if循环遍历整个表的表达式,但问题是表达式存入数据库中在取出来是字符串,写入代码的时候会有""引号,不符合代码

asp.net-从SQL数据库中获取数据写入WORD文档,请附加代码,谢谢

问题描述 从SQL数据库中获取数据写入WORD文档,请附加代码,谢谢 基本格式:数据写入时需按一定格式(写入内容包含表格.文字.图片).标题居中等等 标题(含字体) 一.内容1 1.******* 2.***** 二.内容二 (1)***** 三.表格(或图片) 解决方案 c#里有一个非常不错的类库 叫aspose 里面可以操作word插入各种html以及表单以及图片. 非常不错 建议LZ搜索下 有很多相关代码,不想搜索你可以Call我 我发给你就是了 解决方案二: 在bai度中搜"java导出

asp.net-sql2008数据库中被写入黑链,是如何做到的,我该如何解决?

问题描述 sql2008数据库中被写入黑链,是如何做到的,我该如何解决? 好像,黑客不能删除和添加,只可以在已有数据后面追加黑链! 解决方案 你怎么知道哪样的用户是黑客? 解决方案二: 用户只能浏览,数据库都是我们自己通过后台添加的

如何将数据写入到数据库中的表中(c#连接sql数据库)

问题描述 我们使用c#连接数据库时,例如插入一条记录时,数据会被写调入数据缓冲区中,但并没有从数据缓冲区中写入到数据库的表中.当打开数据库中的表时,插入的数据并没显示在数据库的表中.如何才能真正把数据插入表中.希望大家多多指点. 解决方案 解决方案二:参考下SqlConnectionconn=newSqlConnection("DataSource=.;InitialCatalog=trace;IntegratedSecurity=True");conn.Open();SqlDataA

php编程-php增删改中出现数据库无法写入

问题描述 php增删改中出现数据库无法写入 当我的程序insert往数据库里加入数据时,无法添加数据,出现(Unknown column 'desciption' in 'field list')这样的错误,也不显示代码哪行的错误,新手求大神求教 解决方案 那不是很明显的吗,没有"desciption"这个列 解决方案二: desciption => desc r iption