目录javascript
1.前端页面html
3.工具类Daojava
4.Servlet类mysql
5.JDBC工具类web
6.XML文件sql
7.项目源码数据库
这里主要用JSP方式实现了基本的注册功能。项目名称为NWPU_JavaWeb_Project。项目目录的组织结构为:服务器
前端页面比较简陋,只实现了基本的跳转以及输入的功能。但有几点须要注意的地方。oracle
首先,要设置编码方式,这里设置编码方式为UTF-8。
其次,在jsp页面中有一段自动生成的代码:
这里用out.print(path + "------" + basePath);方式输出一下,在页面上的输出结果为:
由于项目名称是:NWPU_JavaWeb_Project,因此这么一输出就了解path和basePath是什么意思了。
index.jsp的代码(当前未实现登陆功能):
<body> <center> This is my JSP's index page. <br> <a href="<%=path%>/user/admin/register.jsp">注册</a> <br> <a href="<%=path%>/user/admin/login.jsp">登陆</a> </center> </body>
register.jsp的代码:
<html> <head> <base href="<%=basePath%>"> <title>register 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"> <!-- 表单验证 --> <script type="text/javascript"> function isValid(form){ if(form.username.value==""){ alert("用户名不能为空!"); return false; } if(form.userpwd.value!=form.userpwd1.value){ alert("两次输入的密码不一样!"); return false; } if(form.userpwd.value==""){ alert("密码不能为空!"); return false; } if(form.userpwd1.value==""){ alert("请再次输入密码!"); return false; } return true; } </script> </head> <body> <center> <form method="post" action="<%=path%>/servlet/UserServlet?param=1" onSubmit="return isValid(this);"> <table> <caption>用户注册</caption> <tr> <td>用户名:</td> <td><input type="text" name="username" size="21"></td> </tr> <tr> <td>密码:</td> <td><input type="password" name="userpwd" size="21"></td> </tr> <tr> <td>确认密码:</td> <td><input type="password" name="userpwd1" size="21"></td> </tr> <tr> <td><input type="submit" value="注册" /></td> <td><input type="reset" value="重置"></td> </tr> </table> </form> </center> </body> </html>
User.java的代码:
package com.nwpu.beans; public class User { private String userName; private String userPWD; public User(String userName, String userPWD) { this.userName = userName; this.userPWD = userPWD; } public String getUserName() { return userName; } public void setUserName(String userName) { this.userName = userName; } public String getUserPWD() { return userPWD; } public void setUserPWD(String userPWD) { this.userPWD = userPWD; } }
UserDao.java的代码:
package com.nwpu.dao; import java.sql.Connection; import java.sql.Statement; import com.nwpu.beans.User; import com.nwpu.db.DBUtil; public class UserDao { // 用户注册 public int register(User user) { int work = -1; Connection conn = DBUtil.getConnection(); Statement stmt = null; try { stmt = conn.createStatement(); String sql = "INSERT INTO user(username, userpwd) VALUES('" + user.getUserName() + "','" + user.getUserPWD() + "')"; System.out.println("------注册用户:------\n" + sql); work = stmt.executeUpdate(sql); if (work > 0) { System.out.println("------注册成功------"); } else { System.out.println("------注册失败------"); } } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } finally { DBUtil.closeConnection(stmt, conn); } return work; } }
UserServlet.java的代码:
package com.nwpu.servlet; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import com.nwpu.beans.User; import com.nwpu.dao.UserDao; public class UserServlet extends HttpServlet { /** * */ private static final long serialVersionUID = 1L; public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { int param = Integer.parseInt(request.getParameter("param")); switch (param) { // 注册user case 1: this.register(request, response); break; // 查询user case 2: break; default: break; } } // 注册 private void register(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { int work = -1; request.setCharacterEncoding("UTF-8"); //response.setCharacterEncoding("UTF-8");//并无用 PrintWriter out = response.getWriter(); // 获取对象 String userName = new String(request.getParameter("username").getBytes( "ISO-8859-1"), "UTF-8"); System.out.print(userName+"---"); String userPWD = request.getParameter("userpwd"); System.out.print(userPWD+"---"); String userPWD1 = request.getParameter("userpwd1"); System.out.println(userPWD1); // 服务器验证 /* if (!isValid(userName, userPWD, userPWD1)) { out.print("注册失败!"); return; } */ // 打印 System.out.println(userName + "***" + userPWD); // 注入对象 User user = new User(userName, userPWD); UserDao dao = new UserDao(); work = dao.register(user);// 返回受影响的条数 if (work > 0) { String msg="注册成功!"; String url="index.jsp"; //加了,弹窗就不乱码了 out.print("<html><head><meta charset='UTF-8'>"); out.println("<script>"); out.println("alert('" + msg + "');"); out.println("window.location='" + url + "'"); out.println("</script>"); out.print("</head></html>"); } out.flush(); out.close(); } private boolean isValid(String userName, String userPWD, String userPWD1) { if (userName == "") { return false; } if (userPWD != userPWD1) { return false; } if (userPWD == "") { return false; } if (userPWD1 == "") { return false; } return true; } public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { this.doPost(request, response); } public UserServlet() { super(); } public void destroy() { super.destroy(); // Just puts "destroy" string in log // Put your code here } public void init() throws ServletException { // Put your code here } }
DBUtil.java的代码:
package com.nwpu.db; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; /** * @author yylin * */ public class DBUtil { // 链接mySql数据库 private static String mySqlDriver = "com.mysql.jdbc.Driver";// 数据库链接字符串 // “nwpu_db”是数据库名 // ?characterEncoding=utf-8 设置jdbc链接的编码方式以保证插入数据不会乱码 private static String mySqlURL = "jdbc:mysql://localhost:3306/nwpu_db?characterEncoding=UTF-8"; private static String mySqlUserName = "root"; private static String mySqlUserPSW = "123654"; // 链接SQLServer数据库 private static String sqlServerDriver = "com.microsoft.sqlserver.jdbc.SQLServerDriver";// 数据库链接字符串 private static String sqlServerURL = "jdbc:sqlserver://localhost:1434; DatabaseName=testJDBC";// “testJDBC”是数据库名 private static String sqlServerUserName = "sa"; private static String sqlServerUserPSW = "123654"; // 链接Oracle数据库 private static String oracleDriver = "oracle.jdbc.driver.OracleDriver";// 数据库链接字符串 private static String oracleSqlURL = "jdbc:oracle:thin:@localhost:1521:orcl";// “orcl”是数据库名 private static String oracleSqlUserName = "scott"; private static String oracleSqlUserPSW = "tiger"; // 须要链接的数据库字符串 private static String driverName = mySqlDriver; private static String DBURL = mySqlURL; private static String userName = mySqlUserName; private static String userPSW = mySqlUserPSW; // 链接数据库 public static Connection getConnection() { Connection conn = null; try { Class.forName(driverName);// 加载JDBC驱动 conn = DriverManager.getConnection(DBURL, userName, userPSW);// 链接数据库 } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } return conn; } // 关闭链接,Statement方法 public static void closeConnection(ResultSet rs, Statement stmt, Connection conn) { try { if (rs != null) { rs.close(); rs = null; } if (stmt != null) { stmt.close(); stmt = null; } if (conn != null) { conn.close(); conn = null; } } catch (SQLException e) { e.printStackTrace(); } } // 关闭链接,PreparedStatement方法 public static void closeConnection(PreparedStatement pstmt, Connection conn) { try { if (pstmt != null) { pstmt.close(); pstmt = null; } if (conn != null) { conn.close(); conn = null; } } catch (SQLException e) { e.printStackTrace(); } } //关闭链接,Statement方法 public static void closeConnection(Statement stmt, Connection conn) { // TODO Auto-generated method stub try { if (stmt != null) { stmt.close(); stmt = null; } if (conn != null) { conn.close(); conn = null; } } catch (SQLException e) { e.printStackTrace(); } } //关闭链接,conn方法 public static void closeConnection(Connection conn) { // TODO Auto-generated method stub try { if (conn != null) { conn.close(); conn = null; } } catch (SQLException e) { e.printStackTrace(); } } }
xml文件代码:
<?xml version="1.0" encoding="UTF-8"?> <web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"> <display-name></display-name> <servlet> <description>This is the description of my J2EE component</description> <display-name>This is the display name of my J2EE component</display-name> <!-- 类名 --> <servlet-name>UserServlet</servlet-name> <!-- 所在的包 --> <servlet-class>com.nwpu.servlet.UserServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>UserServlet</servlet-name> <!-- 访问的网址 --> <url-pattern>/servlet/UserServlet</url-pattern> </servlet-mapping> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> </web-app>