最近使用JAVAWEB搭建了一个简易的购物系统,基本上是课堂学的,但也加了不少系统,因为oracle还在学,所以数据库使用数组仿真。
生成验证码
package abc; import java.awt.Color; import java.awt.Font; import java.awt.Graphics2D; 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; @WebServlet("/verify") public class verify extends HttpServlet { private static final long serialVersionUID = 1L; private int imageType; private final int Height=30; private final int Width=120; public verify() { super(); } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPost(request, response); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { BufferedImage img = new BufferedImage(Width,Height,BufferedImage.TYPE_INT_RGB); Graphics2D g=(Graphics2D)img.getGraphics(); g.fillRect(0, 0, Width, Height); g.setColor(Color.blue); g.drawRect(0, 0, Width, Height); String base="ABCDEFGHIJKLMNOPQRSTUVWXYZ"; Random r=new Random(); int m=20; g.setFont(new Font("宋体",Font.BOLD,18)); String verify=""; for(int i=1;i<=4;i++){ int index=r.nextInt(base.length()); int degree=r.nextInt(60)-30; double theta=degree*(Math.PI/180); g.rotate(theta,m,20); String temp=base.charAt(index)+""; g.drawString(temp, m, 20); g.rotate(-theta,m,20); m+=20; verify+=temp; } request.getSession().setAttribute("verify",verify); System.out.println(request.getSession().getAttribute("verify")); g.setColor(Color.gray); for(int i=0;i<8;i++){ int x1,x2,y1,y2; x1=r.nextInt(Width); y1=r.nextInt(Height); x2=r.nextInt(Width); y2=r.nextInt(Height); g.drawLine(x1, y1, x2, y2); } ImageIO.write(img, "jpg", response.getOutputStream()); } }
注册后台处理页
package abc; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @WebServlet("/reg") public class reg extends HttpServlet { private static final long serialVersionUID = 1L; public reg() { super(); } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPost(request, response); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("utf-8"); response.setContentType("text/html;charset=utf-8"); String verify=request.getParameter("verify").toUpperCase(); String verify2=(String)request.getSession().getAttribute("verify"); PrintWriter out=response.getWriter(); int stateA=0,stateB=0; if(verify==null){stateA=1;} if(verify2==null){stateA=2;} if(verify.equals(verify2)){stateA=3;}else{stateA=4;} if(check(request, response)){stateB=5;}else{stateB=6;} switch(stateA){ case 1:out.print("<h3>您输入的验证码为空,请检查后输入</h3>");break; case 2:out.print("<h3>验证码生成失败,无法校验</h3>");break; case 3:out.print("<h3>验证码输入正确</h3>");break; case 4:out.print("<h3>验证码输入错误</h3>");break;} switch(stateB){ case 5:out.print("<h3>密码输入一致</h3>");break; case 6:out.print("<h3>密码输入不一致</h3>");break;} if(stateA==3&&stateB==5){ String username=request.getParameter("username"); String password=request.getParameter("password"); String password2=request.getParameter("password2"); String[] habbies=request.getParameterValues("habbies"); String province=request.getParameter("province"); out.println("用户名:"+username+"
"); out.println("密码:"+password+"
"); out.println("确认密码:"+password2+"
"); out.print("爱好:"); if(habbies!=null){ for(int i=0;i");} out.println("籍贯:"+province+"
"); request.getSession().setAttribute("name",username); request.getSession().setAttribute("pw",password); out.println("<h3>信息已保存,您可以<a href='login.jsp'>登陆</a></h3>"); }else{ out.print("程序发生一个或多个错误,无法显示和保存数据!请<a herf='reg.jsp'>返回</a>"); } } static boolean check(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { if(request.getParameter("password").equals(request.getParameter("password2"))){return true;} return false; } }
注册前台页
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="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>Insert title here</title> <Script language="javascript"> function changeImg(){ document.getElementById("image").src="verify"; } </Script> </head> <body> <form method="post" action=reg> <table border="1"> <tr><td>用户名</td><td><input name="username"></input></td></tr> <tr><td>密 码</td><td><input type="password" name="password"></input></td></tr> <tr><td>确认密码</td><td><input type="password" name="password2"></input></td></tr> <tr><td>爱 好</td><td><input type="checkbox" name="habbies" value="阅读"></input>阅读 <input type="checkbox" name="habbies" value="写字"></input>写字 <input type="checkbox" name="habbies" value="打球"></input>打球</td></tr> <tr><td>籍贯</td><td><select name="province"><option>上海</option><option>北京</option><option>南京</option><option>广州</option><option>武汉</option></select></td></tr> <tr> <td>验证码</td> <td><img src="verify" id="image" onclick="changeImg()" ></td> </tr> <tr><td>填写验证码</td><td><input name="verify" onblur="checkVerify()"></input></td></tr> <tr><td colspan=2><button type="submit" name="submit">提交</button> <button type="reset" name="reset">重置</button></td></tr> </table> </form>