Register login System (Jsp+servlet)

Source: Internet
Author: User

Package Webdemo;import Java.io.ioexception;import Javax.servlet.servletexception;import Javax.servlet.http.httpservlet;import Javax.servlet.http.httpservletrequest;import Javax.servlet.http.httpservletresponse;public class Dbservlet extends HttpServlet {//Connection object to connect to the database protected Java.sql.Connection conn = null;//methods to execute various SQL statements protected Java.sql.ResultSet Execsql (String Sql,object...args) throws exception{//establish PreparedStatement object Java.sql.PreparedStatement pstmt = conn.preparestatement (sql);//For PSMT  Object Set SQL parameter value for (int i=0;i<args.length;i++) {pstmt.setobject (i+1, args[i]);   Set SQL parameter set}pstmt.execute (); Execute SQL statement return Pstmt.getresultset ();} Verify that the verification code entered by the user is valid protected Boolean Checkvalidationcode (HttpServletRequest request,string validationcode) {String Validationcodesession = (String) request.getsession (). getattribute ("Validation_code"); if (validationcodesession = = NULL) {//Get verification code is null
Set result.jsp required result information Request.setattribute ("info", "Verification Code expires");//Set login.jsp required error message Request.setattribute ("Codeerror" , "Verification Code expires"); return false;} if (Validationcode.equalsignorecase (validationcodesession) ==false) {//Two verification codes compare Request.setattribute ("info", "Captcha expired" ); Request.setattribute ("Codeerror", "Verification Code expires"); return false;} return true;} @Overrideprotected void Service (HttpServletRequest req, HttpServletResponse resp) throws Servletexception, IOException {TRY{IF (conn = = null) {//Create context object Javax.naming.Context CTX = new Javax.naming.InitialContext ();// Gets the data source Javax.sql.DataSource ds = (javax.sql.DataSource) ctx.lookup ("Java:/comp/env/jdbc/webdb"); conn = Ds.getconnection (); Connection Assignment}}catch (Exception e) {}} @Overridepublic void Destroy () {try{if (conn!=null) {Conn.close ()}} catch (Exception e) {}}}

Another way to do this:

Connection Cn=null; Class.forName ("Com.mysql.jdbc.Driver"). newinstance (); String url= "JDBC:MYSQL://LOCALHOST:3306/T_USER?USEUNICODE=TRUE&CHARACTERENCODING=GBK"; String user= "root"; String password= "root"; Cn=drivermanager.getconnection (Url,user,password);

Configuring in Tomcat's Server.xml

<context path= "/webdemo" docbase= "Webdemo" debug= "0" >      <resource name= "jdbc/webdb" auth= "Container"               type= "Javax.sql.DataSource"               driverclassname= "Com.mysql.jdbc.Driver"               url= "Jdbc:mysql://localhost : 3306/webdb?characterencoding=utf-8 "               username=" root "               password=" 1234 "                             maxactive=" "               maxidle=" "Maxwait=" "               /></context>"

Register Inheritance Dbservlet

Package Webdemo;import Java.io.ioexception;import Javax.servlet.requestdispatcher;import Javax.servlet.servletexception;import Javax.servlet.http.httpservletrequest;import Javax.servlet.http.httpservletresponse;public class Register extends Dbservlet {@Overrideprotected void service ( HttpServletRequest request, HttpServletResponse response) throws Servletexception, IOException {String userName = null; if (Request.getparameter ("login")!=null) {response.sendredirect ("/webdemo/login.jsp");//redirect Write absolute path return;} Try{super.service (request, response);//Open Database username = request.getparameter ("username"); String Password = request.getparameter ("password"); String email = request.getparameter ("email"); String Validationcode = Request.getparameter ("Validation_code"); if (username==null| | password==null| | Validationcode==null) {return;} if (Username.equals ("") | | Password.equals ("") | | Validationcode.equals ("")) {return;} Encode the conversion to support the Chinese user name userName = new String (username.getbytes ("iso-8859-1"), "UTF-8"), Request.setattribute ("Page ","/webdemo/register.jsp "),//requestscope inside can call absolute address jump register.jspif (request, Validationcode)) {return;} email = (email = = null)? ": email; String passwordMD5 = Webdemo. Encrypter.md5encrypt (password); String sql = "INSERT into T_users (User_name,password_md5,email) VALUES (?,?,?)"; Execsql (Sql,username,passwordmd5,email); Request.setattribute ("Info", "User registration successful! ");} catch (Exception e) {System.out.println (E.getmessage ()); Request.setattribute ("Info", username+ "is already used!) ");} Finally{requestdispatcher Rd =request.getrequestdispatcher ("/result.jsp"); Rd.forward (request, Response);}}}

Response.sendredirect ("/webdemo/login.jsp");//redirect Write absolute path

Request.setattribute ("page", "/webdemo/register.jsp"),//requestscope inside can call absolute address jump register.jsp

register.jsp

<%@ 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" >

Img.src= "<%= Request.getcontextpath ()%>/servlet/validationcode?d=" +time;//Verification Code Refresh

Register_form.submit (); Submit User Registration Information

Login Inherits Dbservlet

Package Webdemo;import Java.io.ioexception;import Java.sql.resultset;import javax.servlet.requestdispatcher;import Javax.servlet.servletexception;import Javax.servlet.http.httpservletrequest;import Javax.servlet.http.httpservletresponse;public class Login extends Dbservlet {@Overrideprotected void service ( HttpServletRequest request, HttpServletResponse response) throws Servletexception, IOException {if ( Request.getparameter ("register")!=null) {response.sendredirect ("/webdemo/register.jsp"); return;} String page = "/login.jsp"; String userName = ""; Try{super.service (request, response); userName = Request.getparameter ("UserName"); String Password = request.getparameter ("password"); String Validationcode = Request.getparameter ("Validation_code"); if (userName = = null| | Password = = null| | Validationcode = = null) {return;} if (Username.equals ("") | | Password.equals ("") | | Validationcode.equals ("")) {return;} UserName = new String (username.getbytes ("iso-8859-1"), "Utf-8"), if (!checkvalidationcode (request,validationCode) {return;} String sql = "Select User_name,password_md5 from t_users where user_name =?"; ResultSet rs = execsql (sql, new object[] {userName}), if (rs.next () = = False) {Request.setattribute ("Usererror", username+ "does not exist");} Else{string passwordMD5 = Webdemo. Encrypter.md5encrypt (password), if (!rs.getstring ("Password_md5"). Equals (PasswordMD5)) {Request.setattribute (" Passworderror "," Password is incorrect ");} Else{page = "/main.jsp";}}} catch (Exception e) {}finally{request.setattribute ("username", username); RequestDispatcher rd = request.getrequestdispatcher (page); Rd.forward (request, Response);}}

Login.jsp

<%@ page language= "java" pageencoding= "Utf-8"%><! DOCTYPE HTML PUBLIC "-//w3c//dtd HTML 4.01 transitional//en" "Http://www.w3.org/TR/html4/loose.dtd" >

Validationcode

Package Webdemo;import Java.awt.color;import Java.awt.font;import java.awt.graphics;import Java.awt.image.bufferedimage;import Java.io.ioexception;import Java.io.outputstream;import java.util.Random; Import Javax.imageio.imageio;import Javax.servlet.servletexception;import Javax.servlet.http.httpservlet;import Javax.servlet.http.httpservletrequest;import Javax.servlet.http.httpservletresponse;import Javax.servlet.http.httpsession;public class Validationcode extends HttpServlet {private static String Codechars = "% # 23456789qwaszxerdfcvtgbnhyujmkioplZAQWSXCDERFVBGTYHNMJUIKLOP ";p rivate static Color getrandomcolor (int mincolor,int Maxcolor) {Random random = new random ();//Save Mincolor Max no more than 255if (Mincolor > 255) {mincolor = 255;} if (Maxcolor > 255) {maxcolor = 255;}  int red = Mincolor + Random.nextint (maxcolor-mincolor); int green = Mincolor + random.nextint (maxcolor-mincolor); int blue = Mincolor +random.nextint (Maxcolor-mincolor); return new Color (Red,green,blue); @Overrideprotected void ServIce (HttpServletRequest request, httpservletresponse response) throws Servletexception, IOException {int charslength = Codechars.length ();//The following three sentences close the buffer of the client browser response.setheader ("Ragma", "No-cache"); Response.setheader ("Cache-control" , "No-cache"); Response.setdateheader ("Expires", 0);//Set the long and wide int width=90,height=20 of the graphics verification Code; BufferedImage image = new BufferedImage (WIDTH,HEIGHT,BUFFEREDIMAGE.TYPE_INT_RGB);//Get Graphics object for output text Graphics g = Image.getgraphics (); Random random=new Random (), G.setcolor (Getrandomcolor (180,250)), G.fillrect (0, 0, width, height), G.setfont (New Font (" Times New Roman ", font.italic,height)); G.setcolor (Getrandomcolor (120,180)); StringBuilder Validationcode = new StringBuilder (); String[] FontNames = {"Times New Roman", "Book Antiqua", "Arial"};for (int i=0;i<3+random.nextint (3); i++) {G.setfont ( New Font (Fontnames[random.nextint (3)],font.italic,height)), Char Codechar=codechars.charat (Random.nextint ( charslength)); Validationcode.append (Codechar); G.setcolor (Getrandomcolor (10,100)); g.drawstrING (string.valueof (Codechar), 16*i+random.nextint (7), Height-random.nextint (6));}    HttpSession session = Request.getsession (); Session Storage Verification Code session.setmaxinactiveinterval (5*60); Session.setattribute ("Validation_code", Validationcode.tostring ()); Use the session on the registration page to print g.dispose () on the graph, outputstream os = Response.getoutputstream (); Imageio.write (image, "JPEG", OS);}}

 

  

  

  

Register login System (Jsp+servlet)

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.