JSP实现基本的注册功能

目录

1.前端页面

2.实体类beans

3.工具类Dao

4.Servlet类

5.JDBC工具类

6.XML文件

7.项目源码


这里主要用JSP方式实现了基本的注册功能。项目名称为NWPU_JavaWeb_Project。项目目录的组织结构为:

1.前端页面

前端页面比较简陋,只实现了基本的跳转以及输入的功能。但有几点需要注意的地方。

首先,要设置编码方式,这里设置编码方式为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>

2.实体类beans

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;
	}
}

3.工具类Dao

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;
	}
}

4.Servlet类

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
	}
}

5.JDBC工具类

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();
			}
		}
}

6.XML文件

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>

7.项目源码

项目源代码

猜你喜欢

转载自blog.csdn.net/w7239/article/details/82710340
今日推荐