2011-06-21 46页 pdf 3MB 33阅读
is_479129
暂无简介
用户请登录!
【用户登录验证代码到这里结束】 21 / 46 欧长海 JSP 基础动态网站开发系列之五:用户登录身份验证 (2)、sqlread.jsp 下面,我们再从数据库里读入数据库信息。为了降低我们读入数据的难度, 这里我们只读入有一个 user 的 user 表。 代码如下: <%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" %> <% String MM_newtest_DRIVER = "org.gjt.mm.mysql.Driver"; //定义驱动程序 String MM_newtest_USERNAME = "root"; //有连接数据库权限的用户名 String MM_newtest_PASSWORD = ""; //root 的密码 String MM_newtest_STRING = "jdbc:mysql://localhost:3306/test"; //数据库的资源定位 Driver DriverRecordset1 = (Driver)Class.forName(MM_newtest_DRIVER).newInstance(); //装载数据库驱动程序 Connection ConnRecordset1 = DriverManager.getConnection(MM_newtest_STRING,MM_newtest_USERNAME,MM _newtest_PASSWORD); //建立数据库的连接 PreparedStatement StatementRecordset1 = ConnRecordset1.prepareStatement("SELECT * FROM test.user ORDER BY userID ASC"); //创建 statement 对象 ResultSet Recordset1 = StatementRecordset1.executeQuery(); //完成数据库的数据获取 boolean Recordset1_isEmpty = !Recordset1.next(); //表空 boolean Recordset1_hasData = !Recordset1_isEmpty; //不为空 Object Recordset1_data; int Recordset1_numRows = 0;//数量 %> <% //这里是记录第一条数据到最后一条数据,以及总的数据量 int Recordset1_first = 1; int Recordset1_last = 1; int Recordset1_total = -1; if (Recordset1_isEmpty) { Recordset1_total = Recordset1_first = Recordset1_last = 0; 22 / 46 欧长海 JSP 基础动态网站开发系列之五:用户登录身份验证 } if (Recordset1_numRows == 0) { Recordset1_numRows = 1; } %> <% if (Recordset1_total == -1) { // count the total records by iterating through the recordset for (Recordset1_total = 1; Recordset1.next(); Recordset1_total++); // reset the cursor to the beginning Recordset1.close(); Recordset1 = StatementRecordset1.executeQuery(); Recordset1_hasData = Recordset1.next(); // set the number of rows displayed on this page if (Recordset1_numRows < 0 || Recordset1_numRows > Recordset1_total) { Recordset1_numRows = Recordset1_total; } // set the first and last displayed record Recordset1_first = Math.min(Recordset1_first, Recordset1_total); Recordset1_last = Math.min(Recordset1_first + Recordset1_numRows - 1, Recordset1_total); } %>用户资料从 <%=(Recordset1_first)%>到<%=(Recordset1_last)%>总共 <%=(Recordset1_total)%>条记录!
24 / 46 欧长海 JSP 基础动态网站开发系列之五:用户登录身份验证
<% //关闭链接 Recordset1.close(); StatementRecordset1.close(); ConnRecordset1.close(); %> 发现这样的代码其实很常见,理解起来也不难的吧? 看看效果: (2)、userUpdate.jsp 25 / 46 欧长海 JSP 基础动态网站开发系列之五:用户登录身份验证 下面,我们来介绍更改用户信息。 具体实现如下: <%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %> <% String MM_newtest_DRIVER = "org.gjt.mm.mysql.Driver"; String MM_newtest_USERNAME = "root"; String MM_newtest_PASSWORD = ""; String MM_newtest_STRING = "jdbc:mysql://localhost:3306/test"; String MM_editAction = request.getRequestURI(); if (request.getQueryString() != null && request.getQueryString().length() > 0) { String queryString = request.getQueryString(); String tempStr = ""; for (int i=0; i < queryString.length(); i++) { if (queryString.charAt(i) == '<') tempStr = tempStr + "<"; else if (queryString.charAt(i) == '>') tempStr = tempStr + ">"; else if (queryString.charAt(i) == '"') tempStr = tempStr + """; else tempStr = tempStr + queryString.charAt(i); } MM_editAction += "?" + tempStr; } String MM_editDriver = null, MM_editConnection = null, MM_editUserName = null, MM_editPassword = null; String MM_editRedirectUrl = null; StringBuffer MM_editQuery = null; boolean MM_abortEdit = false; String MM_editTable = null, MM_editColumn = null, MM_recordId = null; String[] MM_fields = null, MM_columns = null; %> <% // 更新记录 if (request.getParameter("MM_update") != null && request.getParameter("MM_update").toString().equals("form1") && request.getParameter("MM_recordId") != null) { 26 / 46 欧长海 JSP 基础动态网站开发系列之五:用户登录身份验证 MM_editDriver = MM_newtest_DRIVER; MM_editConnection = MM_newtest_STRING; MM_editUserName = MM_newtest_USERNAME; MM_editPassword = MM_newtest_PASSWORD; MM_editTable = "test.user"; MM_editColumn = "userID"; MM_recordId = "" + request.getParameter("MM_recordId") + ""; MM_editRedirectUrl = "addok.jsp"; String MM_fieldsStr = "name|value|password|value|nick|value|sex|value|phone|value"; String MM_columnsStr = "username|',none,''|userpassword|',none,''|usernick|',none,''|userse x|',none,''|usercellphone|',none,''"; java.util.StringTokenizer tokens = new java.util.StringTokenizer(MM_fieldsStr,"|"); MM_fields = new String[tokens.countTokens()]; for (int i=0; tokens.hasMoreTokens(); i++) MM_fields[i] = tokens.nextToken(); tokens = new java.util.StringTokenizer(MM_columnsStr,"|"); MM_columns = new String[tokens.countTokens()]; for (int i=0; tokens.hasMoreTokens(); i++) MM_columns[i] = tokens.nextToken(); for (int i=0; i+1 < MM_fields.length; i+=2) { MM_fields[i+1] = ((request.getParameter(MM_fields[i])!=null)?(String)request.getParam eter(MM_fields[i]):""); } if (MM_editRedirectUrl.length() != 0 && request.getQueryString() != null) { MM_editRedirectUrl += ((MM_editRedirectUrl.indexOf('?') == -1)?"?":"&") + request.getQueryString(); } } %> <% 27 / 46 欧长海 JSP 基础动态网站开发系列之五:用户登录身份验证 if (request.getParameter("MM_update") != null && request.getParameter("MM_recordId") != null) { // create the update sql statement MM_editQuery = new StringBuffer("update ").append(MM_editTable).append(" set "); for (int i=0; i+1 < MM_fields.length; i+=2) { String formVal = MM_fields[i+1]; String elem; java.util.StringTokenizer tokens = new java.util.StringTokenizer(MM_columns[i+1],","); String delim = ((elem = (String)tokens.nextToken()) != null && elem.compareTo("none")!=0)?elem:""; String altVal = ((elem = (String)tokens.nextToken()) != null && elem.compareTo("none")!=0)?elem:""; String emptyVal = ((elem = (String)tokens.nextToken()) != null && elem.compareTo("none")!=0)?elem:""; if (formVal.length() == 0) { formVal = emptyVal; } else { if (altVal.length() != 0) { formVal = altVal; } else if (delim.compareTo("'") == 0) { // escape quotes StringBuffer escQuotes = new StringBuffer(formVal); for (int j=0; j < escQuotes.length(); j++) if (escQuotes.charAt(j) == '\'') escQuotes.insert(j++,'\''); formVal = "'" + escQuotes + "'"; } else { formVal = delim + formVal + delim; } } MM_editQuery.append((i!=0)?",":"").append(MM_columns[i]).append(" = ").append(formVal); } MM_editQuery.append(" where ").append(MM_editColumn).append(" = ").append(MM_recordId); if (!MM_abortEdit) { Driver MM_driver = (Driver)Class.forName(MM_editDriver).newInstance(); 28 / 46 欧长海 JSP 基础动态网站开发系列之五:用户登录身份验证 Connection MM_connection = DriverManager.getConnection(MM_editConnection,MM_editUserName,MM_edi tPassword); PreparedStatement MM_editStatement = MM_connection.prepareStatement(MM_editQuery.toString()); MM_editStatement.executeUpdate(); MM_connection.close(); if (MM_editRedirectUrl.length() != 0) { response.sendRedirect(response.encodeRedirectURL(MM_editRedirectUrl) ); return; } } } %> <% Driver DriverRecorduser = (Driver)Class.forName(MM_newtest_DRIVER).newInstance(); Connection ConnRecorduser = DriverManager.getConnection(MM_newtest_STRING,MM_newtest_USERNAME,MM _newtest_PASSWORD); PreparedStatement StatementRecorduser = ConnRecorduser.prepareStatement("SELECT * FROM test.user"); ResultSet Recorduser = StatementRecorduser.executeQuery(); boolean Recorduser_isEmpty = !Recorduser.next(); boolean Recorduser_hasData = !Recorduser_isEmpty; Object Recorduser_data; int Recorduser_numRows = 0; %>