一个登陆界面及其功能的设计

1.网站系统开发需要掌握的技术:

1.基础内容
网页设计概述、网站设计制作的基本流程、色彩搭配在网站中的应用、网站用户界面的设计、网站广告的设计、网站中表格的使用、网站中层的应用、框架网站的制作、模板网站的制作、使用行为和Javascript制作特效、使用CSS样式表设计网页、建设数据库网站、
2、技术内
HTML语法、CSS语法、JavaScript语法
3、图像处理
Flash动画创意、GIF动画制作、网页图片处理
4、行业网站实例
个人网站、企业宣传网站、新闻资讯网站、教育网站、电子政务网站、旅游网站、免费资源网站、门户网站、电子商务网站
5、后台编程
数据库:SQLServer设计、MySQL设计、Access设计
编程语言:ASP、JSP、VBScript、JavaScript、PHP、ASP.net
编程实例:文章发布系统、留言板、BBS、会员注册系统、在线购物网站
6、网站管理
网站维护、网站规划、网站管理、商业网站全程制作、商业网站开发规范

2.程序源代码

IUserDao.java

package com.jaovo.msg.dao;
import java.util.List;

import com.jaovo.msg.model.User;
public interface IUserDao 
{
	public void add(User user);
	public void delete(int id);
	public void update(User user);
	public User load(int id);
	public User load(String username);
	public List<User> load();
}

  

UserDaoImpl.java

package com.jaovo.msg.dao;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import com.jaovo.msg.Util.DBUtil;
import com.jaovo.msg.Util.UserException;
import com.jaovo.msg.model.User;
import com.sun.javafx.sg.prism.web.NGWebView;

public class UserDaoImpl implements IUserDao
{
	//向数据库添加的方法
	@Override
	public void add(User user) 
	{
		//获得连接对象
		Connection connection=DBUtil.getConnection();
		//准备sql语句
		String sql="select count(*) from t_user where username=?";
		if(connection!=null)
		{
			System.out.print("连接成功");
		}
		else
		{
			System.out.print("连接失败");
		}
		//          查询数据的条数   条件:username=传进来的参数
		//创建语句传输对象
		PreparedStatement preparedStatement=null;
		ResultSet resultSet=null;
		try 
		{
			preparedStatement= connection.prepareStatement(sql);
			preparedStatement.setString(1, user.getUsername());
			//写几个问号,             1234,第几个问号   
			//接收结果集(数据条数)
			resultSet =preparedStatement.executeQuery();
			//遍历结果集
			while(resultSet.next())
			{
				if(resultSet.getInt(1)>0)
				//结果集的条数。获取结果集的第一条数据(这里只要一条)
				{
					throw new UserException("用户已存在");
				}
			}
			sql="insert into t_user(username,password,nickname) value(?,?,?)";
			preparedStatement=connection.prepareStatement(sql);
			preparedStatement.setString(1, user.getNickname());
			preparedStatement.setString(2, user.getPassword());
			preparedStatement.setString(3, user.getNickname());
			preparedStatement.executeUpdate();
		} 
		catch (SQLException e) 
		{
			// TODO 自动生成的 catch 块
			e.printStackTrace();
		}
		finally
		{
			//关闭资源
			DBUtil.close(resultSet);
			DBUtil.close(preparedStatement);
			DBUtil.close(connection);
		}
	}
	
	@Override
	public void delete(int id) 
	{
		
		Connection connection=DBUtil.getConnection();
		String sql="delete from t_user where id=?";
		PreparedStatement preparedStatement=null;
		
		try 
		{
			preparedStatement=connection.prepareStatement(sql);
			preparedStatement.setInt(1, id);
			preparedStatement.executeUpdate();
		} 
		catch (SQLException e) 
		{
			// TODO 自动生成的 catch 块
			e.printStackTrace();
		}
		finally 
		{
			DBUtil.close(preparedStatement);
			DBUtil.close(connection);
		}
	}

	@Override
	public void update(User user) 
	{
		Connection connection=DBUtil.getConnection();
		//准备sql语句
		String sql="update t_user set password=?,nickname=? where id=?";
		//创建语句传输对象
		PreparedStatement preparedStatement=null;
		try 
		{
			preparedStatement =connection.prepareStatement(sql);
			preparedStatement.setString(1, user.getPassword());
			preparedStatement.setString(2, user.getNickname());
			preparedStatement.setInt(3, user.getId());
			preparedStatement.executeUpdate();
		} 
		catch (SQLException e) 
		{
			// TODO 自动生成的 catch 块
			e.printStackTrace();
		}
		finally
		{
			DBUtil.close(preparedStatement);
			DBUtil.close(connection);
		}
		
	}

	@Override
	public User load(int id) 
	{
		Connection connection=DBUtil.getConnection();
		//准备sql语句
		String sql="selet * from t_user where id=?";
		//selet *  获取数据库所有的列
		//创建语句传输对象
		PreparedStatement preparedStatement=null;
		ResultSet resultSet=null;
		User user=null;
		try 
		{
			preparedStatement=connection.prepareStatement(sql);
			preparedStatement.setInt(1, id);
			resultSet=preparedStatement.executeQuery();
			while(resultSet.next())
			{
				user=new User();
				user.setId(id);
				user.setUsername(resultSet.getString("username"));
				//从结果集获得的username
				user.setPassword(resultSet.getString("password"));
				user.setNickname(resultSet.getString("nickname"));
			}
		} 
		catch (SQLException e) 
		{
			// TODO 自动生成的 catch 块
			e.printStackTrace();
		}
		finally
		{
			DBUtil.close(preparedStatement);
			DBUtil.close(connection);
		}
	return user;
	}

	@Override
	public User load(String username) 
	{
		//自己写
		// TODO 自动生成的方法存根
		return null;
	}

	@Override
	public List<User> load() 
	{
		Connection connection=DBUtil.getConnection();
		//准备sql语句
		String sql="selet * from t_user";
		//selet *  获取数据库所有的列
		//创建语句传输对象
		PreparedStatement preparedStatement=null;
		ResultSet resultSet=null;
		//集合中只能放入user对象
		List<User> users=new ArrayList<User>();
		User user=null;
		try 
		{
			preparedStatement=connection.prepareStatement(sql);
			resultSet=preparedStatement.executeQuery();
			while(resultSet.next())
			{
				user=new User();
				user.setId(resultSet.getInt("id"));
				user.setUsername(resultSet.getString("username"));
				user.setPassword(resultSet.getString("password"));
				user.setNickname(resultSet.getString("nickname"));
				users.add(user);
			}
		} 
		catch (SQLException e) 
		{
			// TODO 自动生成的 catch 块
			e.printStackTrace();
		}
		finally
		{
			DBUtil.close(preparedStatement);
			DBUtil.close(connection);
		}
	return users;
	}
	
}

  

User.java

package com.jaovo.msg.model;

public class User 
{
	private int id;
	private String username;
	private String nickname;
	private String password;
	public int getId() {
		return id;
	}
	public void setId(int id) 
	{
		this.id = id;
	}
	public String getUsername() 
	{
		return username;
	}
	public void setUsername(String username) 
	{
		this.username = username;
	}
	public String getNickname() 
	{
		return nickname;
	}
	public void setNickname(String nickname) 
	{
		this.nickname = nickname;
	}
	public String getPassword() 
	{
		return password;
	}
	public void setPassword(String password) 
	{
		this.password = password;
	}
}

  

DBUtil.java

package com.jaovo.msg.Util;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
public class DBUtil 
{
	public static Connection getConnection()
	{
		try 
		{
			Class.forName("com.mysql.jdbc.Driver").newInstance();
		}
		catch(InstantiationException|IllegalAccessException | ClassNotFoundException e)
		{
			e.printStackTrace();
		}
		String user="root";
		String password="root";
		String url="jdbc:mysql://localhost:3306/jaovo_msg";
		Connection connection=null;
		try 
		{
			//2 创建连接对象
			connection=DriverManager.getConnection(url, user, password);
		}
		catch (SQLException e) 
		{
			// TODO 自动生成的 catch 块
			e.printStackTrace();
		}
		return connection;
	}
	//关闭资源方法
	public static void close(Connection connection)
	{
		try 
		{
			if(connection!=null) 
			{
				connection.close();
			}

		} 
		catch (SQLException e) 
		{
			// TODO 自动生成的 catch 块
			e.printStackTrace();
		}
		
	}
	public static void close(PreparedStatement PreparedStatement)
	{
		try 
		{
			if(PreparedStatement!=null) 
			{
				PreparedStatement.close();
			}

		} 
		catch (SQLException e) 
		{
			// TODO 自动生成的 catch 块
			e.printStackTrace();
		}
		
	}
	public static void close(ResultSet resultSet)
	{
		try 
		{
			if(resultSet!=null) 
			{
				resultSet.close();
			}

		} 
		catch (SQLException e) 
		{
			// TODO 自动生成的 catch 块
			e.printStackTrace();
		}
		
	}
}

  

UserExceptiong.java

package com.jaovo.msg.Util;

public class UserException extends RuntimeException
{

	public UserException() 
	{
		super();
		// TODO 自动生成的构造函数存根
	}

	public UserException(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace) 
	{
		super(message, cause, enableSuppression, writableStackTrace);
		// TODO 自动生成的构造函数存根
	}

	public UserException(String message, Throwable cause) 
	{
		super(message, cause);
		// TODO 自动生成的构造函数存根
	}

	public UserException(String message) 
	{
		super(message);
		// TODO 自动生成的构造函数存根
	}

	public UserException(Throwable cause) 
	{
		super(cause);
		// TODO 自动生成的构造函数存根
	}
	
}

  

add.jsp

<%@page import="com.jaovo.msg.Util.UserException"%>
<%@page import="com.jaovo.msg.dao.UserDaoImpl"%>
<%@page import="com.jaovo.msg.model.User"%>
<%@ 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">
<html>
<%
	//接收客户端传递过来的参数
	String username = request.getParameter("username");
	String password = request.getParameter("password");
	String nickname = request.getParameter("nickname");
	if(username == null || "".equals(username.trim())){
		request.setAttribute("error", "用户名不能为空");
	
%>
	<jsp:forward page="addInput.jsp"></jsp:forward>
<%
	}
	User user = new User();
	user.setUsername(username);  
	user.setPassword(password);
	user.setNickname(nickname);
	
	UserDaoImpl userDao = new UserDaoImpl();
	try{
	userDao.add(user);
%> 

	<a href="addInput.jsp">继续添加</a><br>
	<a href="#">用户列表</a>
<%
	}catch(UserException e)
	{
%>
	<h2 style="color:red ; font-size:50px">发生错误 : <%=e.getMessage() %></h2>
	<%
	}
	%>
</html>

  

addInput.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">
<html>
<head>
    <title>用户添加页面</title>
</head>
<body>
	<%=request.getAttribute("error") %>
    <form action="add.jsp" method="get">
        <table align="center" border = "1" width="500">
            <tr>
                <td>用户名称:</td>
                <td>
                    <input type="text" name = "username"/>
                </td>
            </tr>
                <tr>
                <td>用户密码:</td>
                <td>
                    <input type="password" name="password"/>
                </td>
            </tr>
            <tr>
                <td>用户昵称:</td>
                <td>
                    <input type="text" name="nickname"/>
                </td>
            </tr>
            <tr align="center">
                <td colspan="2">
                    <input type="submit" value="提交"/>
                    <input type="reset" value="重置"/>
                </td>
            </tr>
        </table>
    </form>
</body>
</html>

3.运行结果:

 

4.由于编译代码时的粗心,导致许多错误系统并未检测出来,但缺导致了连接数据库的问题。

5.希望在这门课结课的时候,可以独立自主的做出一个独立的系统,实现对信息的多方面的使用,每周花费至少10个小时的时间用于学习

 

posted @ 2017-11-23 16:24  cts1234  阅读(499)  评论(0编辑  收藏  举报