live and learn

          big big world
          posts - 5, comments - 27, trackbacks - 0, articles - 1
             :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理
          開發(fā)用的工具M(jìn)yeclipse6.0,JDK1.5,TOMCAT5.5,SQLSERVLET2000;用的是最基礎(chǔ)的j2ee:jsp+javabean+servlet
          1,現(xiàn)在在系統(tǒng)完成后的包類:


          2,com.he.db里的DB.java,作用是連接數(shù)據(jù)庫和創(chuàng)建stament和resultset和關(guān)閉他們。以及增刪查該的執(zhí)行
           1 package com.he.db;
           2 
           3 import java.sql.Connection;
           4 import java.sql.DriverManager;
           5 import java.sql.PreparedStatement;
           6 import java.sql.ResultSet;
           7 import java.sql.SQLException;
           8 import java.sql.Statement;
           9 
          10 public class DB {
          11     
          12     private static DB db = null;
          13     private static Connection conn = null;
          14     private static Statement stmt = null;
          15     
          16     //單例模式,new DB類的時(shí)候,創(chuàng)建唯一對(duì)象,只初始化一次,
          17     //注意:不要顯式交閉此static中的Connection和Statement對(duì)象,否則拋空指針異常
          18     static{
          19         try {
          20             String driverClass = "net.sourceforge.jtds.jdbc.Driver";
          21             String url = "jdbc:jtds:sqlserver://localhost:1433;DatabaseName=login";
          22             String username = "sa";        //edit
          23             String password = "";    //edit
          24             Class.forName(driverClass);
          25             conn = DriverManager.getConnection(url,username,password);
          26             stmt = conn.createStatement();
          27             System.out.println("--------初始化---------");
          28         } catch (ClassNotFoundException e) {
          29             System.out.println("---------- 加載數(shù)據(jù)庫驅(qū)動(dòng)類時(shí)發(fā)生異常: ----------");
          30             e.printStackTrace();
          31         } catch (SQLException e) {
          32             System.out.println("------------ getConnection()方法發(fā)生異常--------------");
          33         }
          34     }
          35     
          36     //創(chuàng)建PrepareStatement對(duì)象
          37     public PreparedStatement prepareStmt(String sql){
          38         PreparedStatement pstmt = null;
          39         try {
          40             pstmt = conn.prepareStatement(sql);
          41         } catch (SQLException e) {
          42             System.out.println("-------------prepareStmt()方法發(fā)生異常-------------------");
          43             e.printStackTrace();
          44         }
          45         return pstmt;
          46     }
          47     
          48     //執(zhí)行查詢所有記錄操作
          49     public ResultSet exeQuery(String sql){
          50         ResultSet rs = null;
          51         try {
          52             rs = stmt.executeQuery(sql);
          53         } catch (SQLException e) {
          54             System.out.println("------------exeQuery()方法發(fā)生異常: --------------------");
          55             e.printStackTrace();
          56         }
          57         return rs;
          58     }
          59     
          60     //執(zhí)行保存、更新、刪除操作
          61     public void exeUpdate(String sql){
          62         try{
          63             stmt.executeUpdate(sql);
          64         } catch(SQLException e){
          65             System.out.println("------------- exeUpdate()方法發(fā)生異常------------------");
          66             e.printStackTrace();
          67         }
          68     }
          69     
          70     
          71     //關(guān)閉PreparedStatement對(duì)象
          72     public void closePstmt(PreparedStatement pstmt){
          73         try{
          74             pstmt.close();
          75             pstmt = null;
          76         }catch(SQLException e){
          77             System.out.println("-------------------- DB.closePstmt()方法發(fā)生異常 -------------------------");
          78             e.printStackTrace();
          79         }
          80     }
          81     
          82     //關(guān)閉ResultSet對(duì)象
          83     public void closeRs(ResultSet rs){
          84         try{
          85             rs.close();
          86             rs = null;
          87         }catch(SQLException e){
          88             System.out.println("-------------------- DB.closePstmt()方法發(fā)生異常 -------------------------");
          89             e.printStackTrace();
          90         }
          91     }
          92     
          93 
          94 }
          95 

          3,com.he.manager里的Manager.java,作用是實(shí)現(xiàn)登錄系統(tǒng)所需要用到的各項(xiàng)功能。例如添加帳號(hào),查看是否數(shù)據(jù)庫里有同名帳號(hào)等。。
           1 package com.he.manager;
           2 
           3 import java.sql.PreparedStatement;
           4 import java.sql.ResultSet;
           5 import java.sql.SQLException;
           6 import java.util.ArrayList;
           7 import java.util.Iterator;
           8 import java.util.List;
           9 import java.util.regex.Pattern;
          10 
          11 import com.he.db.DB;
          12 import com.he.pojo.Account;
          13 import com.sun.org.apache.xerces.internal.impl.xs.identity.Selector.Matcher;
          14 
          15 public class Manager {
          16 
          17     DB db = new DB();
          18 
          19     // 添加帳號(hào)
          20     public void addAccount(Account account) {
          21         PreparedStatement pstmt = null;
          22         String sql = "insert into account(name,pwd,addtime) values(?,?,?)";
          23         pstmt = db.prepareStmt(sql);
          24         try {
          25             pstmt.setString(1, account.getName());
          26             pstmt.setString(2, account.getPwd());
          27             pstmt.setString(3, account.getAddtime());
          28             pstmt.executeUpdate();
          29 
          30         } catch (SQLException e) {
          31             System.out
          32                     .println("-----------------Manager.addAccount()方法異常-------------------------");
          33             e.printStackTrace();
          34         } finally {
          35             db.closePstmt(pstmt);
          36         }
          37     }
          38 
          39     // 查看數(shù)據(jù)庫里是否有指定name的相同記錄;
          40     public static boolean HasAccount(String name) {
          41         DB db = new DB();
          42         ResultSet rs = null;
          43         int count = 0;
          44         String sql = "select count(*) from account where name = '" + name + "'";
          45         rs = db.exeQuery(sql);
          46         try {
          47             while (rs.next()) {
          48                 count = rs.getInt(1);
          49             }
          50         } catch (SQLException e) {
          51             System.out
          52                     .println("------------Manager.HasAccount()方法異常------------------------");
          53             e.printStackTrace();
          54         } finally {
          55             db.closeRs(rs);
          56         }
          57         if (count > 0) {
          58             return true;
          59         } else
          60             return false;
          61     }
          62 
          63     // 判斷提交的帳號(hào)密碼是否有相應(yīng)的記錄在數(shù)據(jù)庫中;
          64     public static boolean CheckAccount(String name, String pwd) {
          65         DB db = new DB();
          66         ResultSet rs = null;
          67         int count = 0;
          68         String sql = "select count(*) from account where name = '" + name
          69                 + "' and pwd = '" + pwd + "";
          70         rs = db.exeQuery(sql);
          71         try {
          72             while (rs.next()) {
          73                 count = rs.getInt(1);
          74             }
          75         } catch (SQLException e) {
          76             System.out
          77                     .println("-----------Manager.CheckAccount()方法異常--------------");
          78         } finally {
          79             db.closeRs(rs);
          80         }
          81         if (count > 0) { // 如果結(jié)果大于0;
          82             return true// 表示此用戶存在;
          83         } else
          84             return false// 表示此用戶不存在;
          85     }
          86 
          87     // 判斷提交的帳號(hào)密碼是否符合要求;
          88     public static boolean CheckForm(String name, String pwd) {
          89         String regEx="[a-zA-Z0-9]{4,8}+";//正則表達(dá)示:四到八位的數(shù)字或字母
          90         if(name.matches(regEx)&&pwd.matches(regEx)) return true;
          91         else return false;
          92     }
          93 
          94 }
          95 

          4,com.he.pojo里的Account.java,作用是臨時(shí)存放并傳遞帳號(hào)的各項(xiàng)屬性。
           1 package com.he.pojo;
           2 
           3 public class Account {
           4     private int id;
           5     private String name;
           6     private String pwd;
           7     private String addtime;
           8     
           9     public int getId() {
          10         return id;
          11     }
          12     public void setId(int id) {
          13         this.id = id;
          14     }
          15     
          16     public String getName() {
          17         return name;
          18     }
          19     public void setName(String name) {
          20         this.name = name;
          21     }
          22     
          23     public String getPwd() {
          24         return pwd;
          25     }
          26     public void setPwd(String pwd) {
          27         this.pwd = pwd;
          28     }
          29     
          30     public String getAddtime() {
          31         return addtime;
          32     }
          33     public void setAddtime(String addtime) {
          34         this.addtime = addtime;
          35     }
          36     
          37 }
          38 

          5.com.he.bean里的makeCertpic.java,作用是生成驗(yàn)證碼的圖片。
           1 package com.he.bean;
           2 
           3 import java.awt.Color;
           4 import java.awt.Font;
           5 import java.awt.Graphics;
           6 import java.awt.image.BufferedImage;
           7 import java.io.IOException;
           8 import java.io.OutputStream;
           9 import java.util.Random;
          10 import javax.imageio.ImageIO;
          11 
          12 /**
          13  * @author dzy 生成驗(yàn)證碼圖片
          14  */
          15 public class makeCertPic {
          16     // 驗(yàn)證碼圖片中可以出現(xiàn)的字符集,可根據(jù)需要修改
          17     private char mapTable[] = { 'a''b''c''d''e''f''g''h''i',
          18             'j''k''l''m''n''o''p''q''r''s''t''u''v',
          19             'w''x''y''z''0''1''2''3''4''5''6''7''8',
          20             '9' };
          21 
          22     /**
          23      * 功能:生成彩色驗(yàn)證碼圖片 參數(shù)width為生成的圖片的寬度,參數(shù)height為生成的圖片的高度,參數(shù)os為頁面的輸出流
          24      */
          25     public String getCertPic(int width, int height, OutputStream os) {
          26         if (width <= 0)
          27             width = 60;
          28         if (height <= 0)
          29             height = 20;
          30         BufferedImage image = new BufferedImage(width, height,
          31                 BufferedImage.TYPE_INT_RGB);
          32         // 獲取圖形上下文
          33         Graphics g = image.getGraphics();
          34         // 設(shè)定背景色
          35         g.setColor(new Color(0xDCDCDC));
          36         g.fillRect(00, width, height);
          37         // 畫邊框
          38         g.setColor(Color.black);
          39         g.drawRect(00, width - 1, height - 1);
          40         // 取隨機(jī)產(chǎn)生的認(rèn)證碼
          41         String strEnsure = "";
          42         // 4代表4位驗(yàn)證碼,如果要生成更多位的認(rèn)證碼,則加大數(shù)值
          43         for (int i = 0; i < 4++i) {
          44             strEnsure += mapTable[(int) (mapTable.length * Math.random())];
          45         }
          46         // 將認(rèn)證碼顯示到圖象中,如果要生成更多位的認(rèn)證碼,增加drawString語句
          47         g.setColor(Color.black);
          48         g.setFont(new Font("Atlantic Inline", Font.PLAIN, 18));
          49         String str = strEnsure.substring(01);
          50         g.drawString(str, 817);
          51         str = strEnsure.substring(12);
          52         g.drawString(str, 2015);
          53         str = strEnsure.substring(23);
          54         g.drawString(str, 3518);
          55         str = strEnsure.substring(34);
          56         g.drawString(str, 4515);
          57         // 隨機(jī)產(chǎn)生10個(gè)干擾點(diǎn)
          58         Random rand = new Random();
          59         for (int i = 0; i < 10; i++) {
          60             int x = rand.nextInt(width);
          61             int y = rand.nextInt(height);
          62             g.drawOval(x, y, 11);
          63         }
          64         // 釋放圖形上下文
          65         g.dispose();
          66         try {
          67             // 輸出圖象到頁面
          68             ImageIO.write(image, "JPEG", os);
          69         } catch (IOException e) {
          70             return "";
          71         }
          72         return strEnsure;
          73     }
          74 }
          75 

          6。com.he.servlet里的LoginServlet.java,作用是驗(yàn)證登錄。
           1 package com.he.servlet;
           2 
           3 import java.io.IOException;
           4 import java.io.PrintWriter;
           5 import java.security.MessageDigest;
           6 
           7 import javax.servlet.ServletException;
           8 import javax.servlet.http.HttpServlet;
           9 import javax.servlet.http.HttpServletRequest;
          10 import javax.servlet.http.HttpServletResponse;
          11 import javax.servlet.http.HttpSession;
          12 
          13 import com.he.manager.Manager;
          14 
          15 public class LoginServlet extends HttpServlet {
          16     public void doGet(HttpServletRequest request, HttpServletResponse response)
          17             throws ServletException, IOException {
          18         PrintWriter out = response.getWriter();
          19         String name = (String) request.getParameter("name");
          20         name = name.trim();            //去掉字符串首尾空格
          21         String pwd = (String) request.getParameter("pwd");        
          22         pwd = pwd.trim();
          23         boolean Check = Manager.CheckForm(name, pwd);        //驗(yàn)證輸入的帳號(hào)密碼是否符合規(guī)則
          24         System.out.println(Check);
          25         if (Check) {
          26             // 將密碼轉(zhuǎn)為MD5加密
          27             try {
          28                 // -------生成MessageDigest對(duì)象MD-------
          29                 MessageDigest MD = MessageDigest.getInstance("MD5");
          30                 // --------傳入要計(jì)算的字符---------------
          31                 MD.update(pwd.getBytes("UTF8"));
          32                 // --------計(jì)算信息摘要----------------
          33                 byte[] pwdMD5Byte = MD.digest();
          34                 pwd = new String(pwdMD5Byte);
          35             } catch (Exception e) {
          36                 e.printStackTrace();
          37             }
          38             String certCode = request.getParameter("certCode");
          39             //查看輸入的帳號(hào)密碼是否在數(shù)據(jù)庫里有記錄
          40             boolean tag = Manager.CheckAccount(name, pwd);
          41             // 執(zhí)行輸出操作(彈出成功的對(duì)話框)
          42             response.setCharacterEncoding("gbk"); // 解決中文顯示問題
          43             HttpSession session = request.getSession();
          44             if (certCode.equals((String) session.getAttribute("certCode"))) {
          45                 if (tag) {
          46                     session.setAttribute("name", name);            //驗(yàn)證成功的話設(shè)置session
          47                     out
          48                             .print("<script language=javascript>alert('Login Succeed!!');window.location.href='SucceedLogin.jsp';</script>");
          49                 } else {
          50                     out
          51                             .print("<script language=javascript>alert('account or password error!!');window.location.href='index.jsp';</script>");
          52                 }
          53             } else {
          54                 out
          55                         .print("<script language=javascript>alert('certCode error!!');window.location.href='index.jsp';</script>");
          56             }
          57         } else {
          58             out
          59                     .print("<script language=javascript>alert('rule error!!');window.location.href='index.jsp';</script>");
          60         }
          61     }
          62 
          63     public void doPost(HttpServletRequest request, HttpServletResponse response)
          64             throws ServletException, IOException {
          65         doGet(request, response);
          66     }
          67 
          68 }

          7。com.he.servlet里的Registe.java作用是進(jìn)行注冊操作。
           1 package com.he.servlet;
           2 
           3 import java.io.IOException;
           4 import java.io.PrintWriter;
           5 import java.util.Date;
           6 import java.security.MessageDigest;
           7 import java.text.SimpleDateFormat;
           8 
           9 import javax.servlet.ServletException;
          10 import javax.servlet.http.HttpServlet;
          11 import javax.servlet.http.HttpServletRequest;
          12 import javax.servlet.http.HttpServletResponse;
          13 import javax.servlet.http.HttpSession;
          14 
          15 import com.he.manager.Manager;
          16 import com.he.pojo.Account;
          17 
          18 public class RegisteServlet extends HttpServlet {
          19     public void doGet(HttpServletRequest request, HttpServletResponse response)
          20             throws ServletException, IOException {
          21         Date currTime = new Date(); // 添加帳號(hào)的時(shí)間
          22         SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
          23         String time = new String(formatter.format(currTime).getBytes(
          24                 "iso-8859-1")); // 時(shí)間格式化
          25         String name = (String) request.getParameter("name");
          26         name = name.trim(); // 去除字符串首尾空格
          27         String pwd = (String) request.getParameter("pwd");
          28         pwd = pwd.trim();
          29         boolean Check = Manager.CheckForm(name, pwd); // 驗(yàn)證輸入的帳號(hào)密碼是否符合規(guī)則
          30         System.out.println(Check);
          31         if (Check) {
          32             // 在寫入數(shù)據(jù)庫之前將密碼轉(zhuǎn)為MD5加密
          33             try {
          34                 // -------生成MessageDigest對(duì)象MD-------
          35                 MessageDigest MD = MessageDigest.getInstance("MD5");
          36                 // --------傳入要計(jì)算的字符---------------
          37                 MD.update(pwd.getBytes("UTF8"));
          38                 // --------計(jì)算信息摘要----------------
          39                 byte[] pwdMD5Byte = MD.digest();
          40                 pwd = new String(pwdMD5Byte);
          41             } catch (Exception e) {
          42                 e.printStackTrace();
          43             }
          44             boolean tag = Manager.HasAccount(name); // 查看數(shù)據(jù)庫里有沒相同的用戶名記錄
          45             if (tag) {
          46                 response.setCharacterEncoding("gbk"); // 解決中文顯示問題
          47                 PrintWriter out = response.getWriter();
          48                 out
          49                         .print("<script language=javascript>alert('用戶名已被占用');window.location.href='registe.jsp';</script>");
          50             } else {
          51                 // new 一個(gè)Account對(duì)象,并將表單傳過來的值填充它
          52                 Account account = new Account();
          53                 account.setName(request.getParameter("name"));
          54                 account.setPwd(pwd);
          55                 account.setAddtime(time);
          56                 // 執(zhí)行持久化操作,保存到數(shù)據(jù)庫
          57                 Manager manager = new Manager();
          58                 manager.addAccount(account);
          59                 // 執(zhí)行輸出操作(彈出成功的對(duì)話框)
          60                 response.setCharacterEncoding("gbk"); // 解決中文顯示問題
          61                 HttpSession session = request.getSession();
          62                 session.setAttribute("name", request.getParameter("name"));
          63                 PrintWriter out = response.getWriter();
          64                 out
          65                         .print("<script language=javascript>alert('注冊成功!');window.location.href='SucceedLogin.jsp';</script>");
          66             }
          67         } else {
          68             response.setCharacterEncoding("gbk"); // 解決中文顯示問題
          69             PrintWriter out = response.getWriter();
          70             out
          71                     .print("<script language=javascript>alert('帳號(hào)或密碼必須是四到八位的數(shù)字或字母!!');window.location.href='registe.jsp';</script>");
          72         }
          73     }
          74 
          75     public void doPost(HttpServletRequest request, HttpServletResponse response)
          76             throws ServletException, IOException {
          77         doGet(request, response);
          78     }
          79 
          80 }
          81 

          8。index.jsp,登錄界面。
          <%@ page language="java" import="java.util.*" pageEncoding="gbk"%>
          <%
          String path 
          = request.getContextPath();
          String basePath 
          = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
          %>

          <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
          <html>
            
          <head>
              
          <base href="<%=basePath%>">
              
              
          <title>My JSP 'index.jsp' starting page</title>
              
          <meta http-equiv="pragma" content="no-cache">
              
          <meta http-equiv="cache-control" content="no-cache">
              
          <meta http-equiv="expires" content="0">    
              
          <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
              
          <meta http-equiv="description" content="This is my page">
              
          <!--
              
          <link rel="stylesheet" type="text/css" href="styles.css">
              
          -->
            
          </head>
                
          <script language="JavaScript">

              function check()
              {
                 
          if( form.name.value=="" )
                  {
                     alert(
          "\請輸入您的用戶名!!")
                         form.name.focus();
                     
          return false;
                  }
              

              
                 
                 
          if( form.pwd.value==""  )
                     {
                         alert(
          "\請輸入您的登陸密碼!!")
                             form.pwd.focus();
                         
          return false;
                 }
              
          return true;
              }

              
          </script>
            
            
            
          <body>
              
          <h1>用戶登錄</h1>
              
          <form name="form" id="form" onSubmit="return check()" method="post" action="LoginServlet">
                  
          <p>&nbsp;&nbsp;號(hào):<input type="text" name="name" /></p>
                  
          <p>&nbsp;&nbsp;碼:<input type="password" name="pwd" /></p>
                  
          <P>驗(yàn)證碼:<input type="text" name="certCode" /><img src="makeCertPic.jsp" /></P>
                  
          <p><input type="submit" name="submit" value="登錄">
                      
          <input type="button" onClick="location='registe.jsp'" value="注冊" class="btn"/>
                  
          </p>
              
          </form>
            
          </body>
          </html>

          9。registe.jsp,注冊界面
          <%@ page language="java" import="java.util.*" pageEncoding="gbk"%>
          <%
          String path 
          = request.getContextPath();
          String basePath 
          = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
          %>

          <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
          <html>
            
          <head>
              
          <base href="<%=basePath%>">
              
              
          <title>注冊</title>
              
          <!--
              
          <link rel="stylesheet" type="text/css" href="styles.css">
              
          -->

            
          </head>
            
              
          <script language="JavaScript">

              
          function check()
              {
                 
          if( form.name.value=="" )
                  {
                     alert(
          "\請輸入您的用戶名!!")
                         form.name.focus();
                     
          return false;
                  }
              

              
                 
                 
          if( form.pwd.value==""  )
                     {
                         alert(
          "\請輸入您的登陸密碼!!")
                             form.pwd.focus();
                         
          return false;
                 }
                 
          if(form.repwd.value=="")
                     {
                             alert(
          "\請輸入您的第二次密碼!!")
                                 form.repwd.focus();
                             
          return false;
                     }
                 
          if(form.pwd.value!=form.repwd.value)
                     {
                             alert(
          "\兩次輸入的密碼不一致!!")
                                 form.repwd.focus();
                             
          return false;
                 }
              
          return true;
              }

              
          </script>
            
            
          <body>
              
          <h1>注冊</h1>
             
          <form name="form" id="form" onSubmit="return check()" method="post" action="RegisteServlet">
              
          <p>帳號(hào):<input name="name" type="text" /></p>
              
          <P>密碼:<input name="pwd" type="password" /></P>
              
          <p>再次輸入密碼:<input name="repwd" type="password"></p>
              
          <p><input type="submit" value="注冊" /> <input type="reset" value="重置" /></p>
             
          </form>
            
          </body>
          </html>

          10。makeCertpic.jsp 驗(yàn)證碼圖片的
          <%@page contentType="image/jpeg" pageEncoding="gbk" %>
          <jsp:useBean id="image" scope="page" class="com.he.bean.makeCertPic" />
          <%
              String str 
          = image.getCertPic(0,0,response.getOutputStream());
              
          // 避免getWriter()和responsegetOutputStream()沖突而產(chǎn)生異常
              out.clear();
              out 
          = pageContext.pushBody();
              
          // CREATE SESSION
              session.setAttribute("certCode", str); 
          %>

          11.SucceedLogin.jsp 登錄成功的頁面
           1 <%@ page language="java" import="java.util.*" pageEncoding="gbk"%>
           2 <%@ include file="CheckLogin.jsp" %>
           3 <%
           4 String path = request.getContextPath();
           5 String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
           6 %>
           7 
           8 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
           9 <html>
          10   <head>
          11     <base href="<%=basePath%>">
          12     
          13     <title>SucceedLogin</title>
          14     
          15     <meta http-equiv="pragma" content="no-cache">
          16     <meta http-equiv="cache-control" content="no-cache">
          17     <meta http-equiv="expires" content="0">    
          18     <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
          19     <meta http-equiv="description" content="This is my page">
          20     <!--
          21     <link rel="stylesheet" type="text/css" href="styles.css">
          22     -->
          23 
          24   </head>
          25   
          26   <body>
          27      <h1>歡迎您</h1>
          28     ${sessionScope.name}
          29   </body>
          30 </html>
          31 

          12。CheckLogin.jsp 進(jìn)行未登錄就進(jìn)入登錄成功的界面的驗(yàn)證
          1 
          2 <%
          3     if (session.getAttribute("name"== null
          4             || session.getAttribute("name").toString().length() == 0) {
          5         response.sendRedirect(request.getContextPath() + "/error.jsp");
          6     }
          7 %>

          13.web.xml文件
          <?xml version="1.0" encoding="UTF-8"?>
          <web-app version="2.4" 
              xmlns
          ="http://java.sun.com/xml/ns/j2ee" 
              xmlns:xsi
          ="http://www.w3.org/2001/XMLSchema-instance" 
              xsi:schemaLocation
          ="http://java.sun.com/xml/ns/j2ee 
              http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
          >
            
          <servlet>
              
          <servlet-name>RegisteServlet</servlet-name>
              
          <servlet-class>com.he.servlet.RegisteServlet</servlet-class>
            
          </servlet>
            
          <servlet>
              
          <servlet-name>LoginServlet</servlet-name>
              
          <servlet-class>com.he.servlet.LoginServlet</servlet-class>
            
          </servlet>
            


            
          <servlet-mapping>
              
          <servlet-name>RegisteServlet</servlet-name>
              
          <url-pattern>/RegisteServlet</url-pattern>
            
          </servlet-mapping>
            
          <servlet-mapping>
              
          <servlet-name>LoginServlet</servlet-name>
              
          <url-pattern>/LoginServlet</url-pattern>
            
          </servlet-mapping>
            
          <welcome-file-list>
              
          <welcome-file>index.jsp</welcome-file>
            
          </welcome-file-list>
          </web-app>

          14.到此,我的注冊登錄系統(tǒng)基本完成了。新人作品,希望大家批評(píng)指正。


          此文為原創(chuàng),如有轉(zhuǎn)載請注明出處http://www.aygfsteel.com/gdhqs/。如有錯(cuò)誤,請大家批評(píng)指正,謝謝!


          評(píng)論

          # re: JSP+JAVABEAN+SERVLE開發(fā)的登錄系統(tǒng)  回復(fù)  更多評(píng)論   

          2008-11-17 12:24 by 心夢帆影
          好,寫得非常好,非常不錯(cuò)!支持一下!

          # re: JSP+JAVABEAN+SERVLE開發(fā)的登錄系統(tǒng)  回復(fù)  更多評(píng)論   

          2008-11-18 18:35 by foolgirl
          支持支持~~~~~~~~~~~~~~~~~~~~~~~~~~~~~··

          # re: JSP+JAVABEAN+SERVLE開發(fā)的登錄系統(tǒng)  回復(fù)  更多評(píng)論   

          2010-04-28 14:03 by Puge
          完整源碼能發(fā)我一份嗎? 謝啦~
          zhaowyvern@yahoo.cn

          # re: JSP+JAVABEAN+SERVLE開發(fā)的登錄系統(tǒng)  回復(fù)  更多評(píng)論   

          2010-05-01 22:27 by SIU SOO MUN
          NB NAFFY~~~~NB NAFFY~~~~NB NAFFY~~~~NB NAFFY~~~~

          # re: JSP+JAVABEAN+SERVLE開發(fā)的登錄系統(tǒng)[未登錄]  回復(fù)  更多評(píng)論   

          2013-06-10 15:33 by Emma
          問一下,我用了樓主的登錄系統(tǒng),怎么說表名附近有語法錯(cuò)誤呢?還說rs......有空指針異常

          只有注冊用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 根河市| 长海县| 白沙| 墨竹工卡县| 门头沟区| 太原市| 宝清县| 湖北省| 潮安县| 武邑县| 门头沟区| 塘沽区| 郑州市| 东平县| 阿图什市| 永昌县| 德州市| 屯留县| 英德市| 张北县| 灵川县| 四川省| 彩票| 原阳县| 康马县| 白沙| 文水县| 永嘉县| 云浮市| 肇庆市| 共和县| 天镇县| 大城县| 五台县| 镇原县| 金溪县| 全椒县| 镇赉县| 普定县| 枣庄市| 明水县|