jsp小练习01--jdbc小练习01

目录

jsp小练习01

jdbc小练习01 

 设计数据库

以下是一个基本的登录页面(login.jsp):

以下是checklogin.jsp页面的示例代码:

以下是main.jsp页面的示例代码:

以下是add.jsp页面的示例代码:

以下是doadd.jsp页面的示例代码:

以下是edit.jsp页面的示例代码:

以下是doedit.jsp页面的示例代码,用于实现更新名片信息的功能。

以下是search.jsp的示例代码:

以下是delete.jsp的示例代码:

以下是recycle.jsp的示例代码:

以下是recover.jsp的示例代码:


jsp小练习01

用jsp设计:.应用Date函数读取系统当前时间,根据不同的时间段,在浏览器输出不同的问候语,例如上午0~12点之间输出“早上好”,同时把系统的年、月、日、小时、分、秒和星期输出到用户的浏览器。

<%@ page language="java" %>
<%@ page import="java.util.*" %>
<%@ page import="java.text.*" %>



  问候语


  <%
    // 获取当前的时间
    Date now = new Date();
    SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss E");
    String currentTime = dateFormat.format(now);
    // 获取当前的小时数
    Calendar c = Calendar.getInstance();
    int hour = c.get(Calendar.HOUR_OF_DAY);
    // 根据不同时间段输出不同的问候语
    String greeting;
    if (hour >=0 && hour < 12) {
        greeting = "早上好";
    } else if (hour >= 12 && hour < 18) {
        greeting = "下午好";
    } else {
        greeting = "晚上好";
    }
    // 输出问候语和时间
    out.println("

" + greeting + "

"); out.println("

现在是:" + currentTime + "

"); %>

jdbc小练习01 

利用JDBC设计:

1.设计一个简单的网上名片管理系统,实现名片的增、删、改、查等操作。该名片管理系统包括如下功能:

1)用户登录与注册

用户登录:在登录时,如果用户名和密码正确,进入系统页面。

用户注册:新用户应该先注册,然后再登录该系统。

2)名片管理

增加名片:以仿真形式(按常用的名片格式)增加名片信息。

修改名片:以仿真形式(按常用的名片格式)修改名片信息。

查询名片:以模糊查询方式查询名片。

删除名片:名片的删除由2种方式,即把名片移到回收站,把名片彻底删除。

3)回收站管理

还原:把回收站中的名片还原回收。

彻底删除:把名片彻底从回收站删除。

浏览/查询:可以模糊查询、浏览回收站中的名片。

 设计数据库

首先,需要设计数据库表来存储名片信息和用户信息。以下是名片信息表和用户信息表的设计:

名片信息表cards:

jsp小练习01--jdbc小练习01_第1张图片

 用户信息表users:

jsp小练习01--jdbc小练习01_第2张图片

接着,需要编写JSP页面来实现登录、注册、名片管理和回收站管理功能。

以下是一个基本的登录页面(login.jsp):

<%@ page language="java" %>
<%@ page import="java.sql.*" %>



  登录 - 网上名片管理系统


  

网上名片管理系统 - 登录

用户名:
密码:

在该页面中,用户输入用户名和密码后提交表单,将会跳转到checklogin.jsp页面进行校验

以下是checklogin.jsp页面的示例代码:

<%@ page language="java" %>
<%@ page import="java.sql.*" %>



  登录结果 - 网上名片管理系统


  <%
    String username = request.getParameter("username");
    String password = request.getParameter("password");
    
    // 连接数据库进行验证
    String url = "jdbc:mysql://localhost:3306/cards?useSSL=false";
    String user = "root";
    String pass = "password";
    Connection conn = DriverManager.getConnection(url, user, pass);
    Statement stmt = conn.createStatement();
    String sql = "SELECT * FROM users WHERE username='" + username + "' AND password='" + password + "'";
    ResultSet rs = stmt.executeQuery(sql);
    if (rs.next()) {
      // 登录成功
      session.setAttribute("userid", rs.getInt("id"));
      response.sendRedirect("main.jsp"); // 跳转到主页面
    } else {
      // 登录失败
      out.println("

用户名或密码错误,请重新登录!

"); out.println("返回登录页面"); } rs.close(); stmt.close(); conn.close(); %>

在该页面中,首先获取从login.jsp传递过来的用户名和密码。然后,连接数据库进行验证。如果用户名和密码正确,则将用户ID存储在session中,并跳转到main.jsp页面否则,返回登录页面。

以下是main.jsp页面的示例代码:

<%@ page language="java" %>
<%@ page import="java.sql.*" %>



  网上名片管理系统


  <%
    int userid = (int) session.getAttribute("userid");
    
    // 连接数据库,获取用户信息和名片信息
    String url = "jdbc:mysql://localhost:3306/cards?useSSL=false";
    String user = "root";
    String pass = "password";
    Connection conn = DriverManager.getConnection(url, user, pass);
    Statement stmt = conn.createStatement();
    
    // 获取用户信息
    String sql = "SELECT * FROM users WHERE id='" + userid + "'";
    ResultSet rs = stmt.executeQuery(sql);
    if (rs.next()) {
      String username = rs.getString("username");
      out.println("

网上名片管理系统 - " + username + "

"); } rs.close(); // 显示已有名片信息 sql = "SELECT * FROM cards WHERE userid='" + userid + "'"; rs = stmt.executeQuery(sql); while (rs.next()) { int id = rs.getInt("id"); String name = rs.getString("name"); String company = rs.getString("company"); String phone = rs.getString("phone"); String mobile = rs.getString("mobile"); String fax = rs.getString("fax"); String email = rs.getString("email"); String address = rs.getString("address"); out.println("

名片" + id + "

"); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println("
姓名:" + name + "
公司:" + company + "
电话:" + phone + "
手机:" + mobile + "
传真:" + fax + "
邮箱:" + email + "
地址:" + address + "
"); out.println("编辑 "); out.println("删除
"); } rs.close(); // 关闭数据库连接 stmt.close(); conn.close(); %> 新增名片 回收站 退出登录

在该页面中,首先根据session中保存的用户ID查询用户信息,然后显示已有的名片信息。

同时,在该页面中提供了三个链接,用于新增名片、回收站和退出登录。

以下是add.jsp页面的示例代码:

<%@ page language="java" %>
<%@ page import="java.sql.*" %>



  新增名片 - 网上名片管理系统


  

网上名片管理系统 - 新增名片

姓名:
公司:
电话:
手机:
传真:
电子邮件:
地址:

该页面用于输入新增名片的信息。表单提交后将会跳转到doadd.jsp页面进行数据库操作

以下是doadd.jsp页面的示例代码:

<%@ page language="java" %>
<%@ page import="java.sql.*" %>



  新增名片结果 - 网上名片管理系统


  <%
    int userid = (int) session.getAttribute("userid");
    String name = request.getParameter("name");
    String company = request.getParameter("company");
    String phone = request.getParameter("phone");
    String mobile = request.getParameter("mobile");
    String fax = request.getParameter("fax");
    String email = request.getParameter("email");
    String address = request.getParameter("address");
    
    // 连接数据库,执行插入操作
    String url = "jdbc:mysql://localhost:3306/cards?useSSL=false";
    String user = "root";
    String pass = "password";
    Connection conn = DriverManager.getConnection(url, user, pass);
    Statement stmt = conn.createStatement();
    String sql = "INSERT INTO cards (name, company, phone, mobile, fax, email, address, userid) VALUES ('" + name + "', '" + company + "', '" + phone + "', '" + mobile + "', '" + fax + "', '" + email + "', '" + address + "', '" + userid + "')";
    stmt.executeUpdate(sql);
    stmt.close();
    conn.close();
    
    // 返回主页面
    response.sendRedirect("main.jsp");
  %>


在该页面中,首先获取表单提交过来的新增名片信息,然后连接数据库执行插入操作。插入成功后,将会跳转到主页面。

以下是edit.jsp页面的示例代码:

<%@ page language="java" %>
<%@ page import="java.sql.*" %>



  编辑名片 - 网上名片管理系统


  

网上名片管理系统 - 编辑名片

<% int id = Integer.parseInt(request.getParameter("id")); int userid = (int) session.getAttribute("userid"); // 连接数据库,获取名片信息 String url = "jdbc:mysql://localhost:3306/cards?useSSL=false"; String user = "root"; String pass = "password"; Connection conn = DriverManager.getConnection(url, user, pass); Statement stmt = conn.createStatement(); String sql = "SELECT * FROM cards WHERE id='" + id + "' AND userid='" + userid + "'"; ResultSet rs = stmt.executeQuery(sql); if (rs.next()) { String name = rs.getString("name"); String company = rs.getString("company"); String phone = rs.getString("phone"); String mobile = rs.getString("mobile"); String fax = rs.getString("fax"); String email = rs.getString("email"); String address = rs.getString("address"); out.println("
"); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println("
姓名:
公司:
电话:
手机:
传真:
电子邮件:
地址:
"); out.println("
"); } else { out.println("

无权访问此名片!

"); } rs.close(); stmt.close(); conn.close(); %>

在该页面中,首先获取从main.jsp传递过来的名片ID和用户ID,并连接数据库查询名片信息。如果查询到符合条件的名片,则将名片信息显示到表单中,并在form标签中添加隐藏的id字段。表单提交后将会跳转到doedit.jsp页面进行数据库操作。如果无权访问此名片,则输出无权访问的提示信息。

以下是doedit.jsp页面的示例代码用于实现更新名片信息的功能。

<%@ page language="java" %>
<%@ page import="java.sql.*" %>



  编辑名片 - 网上名片管理系统


  

网上名片管理系统 - 编辑名片

<% int id = Integer.parseInt(request.getParameter("id")); int userid = (int) session.getAttribute("userid"); String name = request.getParameter("name"); String company = request.getParameter("company"); String phone = request.getParameter("phone"); String mobile = request.getParameter("mobile"); String fax = request.getParameter("fax"); String email = request.getParameter("email"); String address = request.getParameter("address"); // 连接数据库,更新名片信息 String url = "jdbc:mysql://localhost:3306/cards?useSSL=false"; String user = "root"; String pass = "password"; Connection conn = DriverManager.getConnection(url, user, pass); Statement stmt = conn.createStatement(); String sql = "UPDATE cards SET name='" + name + "', company='" + company + "', phone='" + phone + "', mobile='" + mobile + "', fax='" + fax + "', email='" + email + "', address='" + address + "' WHERE id='" + id + "' AND userid='" + userid + "'"; int rows = stmt.executeUpdate(sql); if (rows == 1) { out.println("

名片更新成功!

"); } else { out.println("

名片更新失败!

"); } stmt.close(); conn.close(); %>

在该页面中,首先获取从编辑名片页面传递过来的名片ID和用户ID,以及提交的新的名片信息然后连接数据库,执行UPDATE语句更新名片信息。如果更新成功,则输出更新成功的提示信息,否则输出更新失败的提示信息。最后关闭数据库连接。


以下是doedit.jsp页面的完整示例代码,包括表单校验和重定向到main.jsp页面的功能。

<%@ page language="java" %>
<%@ page import="java.sql.*" %>



  编辑名片 - 网上名片管理系统
  


  

网上名片管理系统 - 编辑名片

<% int id = Integer.parseInt(request.getParameter("id")); int userid = (int) session.getAttribute("userid"); String name = request.getParameter("name"); String company = request.getParameter("company"); String phone = request.getParameter("phone"); String mobile = request.getParameter("mobile"); String fax = request.getParameter("fax"); String email = request.getParameter("email"); String address = request.getParameter("address"); // 表单校验 if (name == null || company == null || phone == null || mobile == null || name.equals("") || company.equals("") || (phone.equals("") && mobile.equals(""))) { response.sendRedirect("edit.jsp?id=" + id); return; } // 连接数据库,更新名片信息 String url = "jdbc:mysql://localhost:3306/cards?useSSL=false"; String user = "root"; String pass = "password"; Connection conn = DriverManager.getConnection(url, user, pass); Statement stmt = conn.createStatement(); String sql = "UPDATE cards SET name='" + name + "', company='" + company + "', phone='" + phone + "', mobile='" + mobile + "', fax='" + fax + "', email='" + email + "', address='" + address + "' WHERE id='" + id + "' AND userid='" + userid + "'"; int rows = stmt.executeUpdate(sql); if (rows == 1) { response.sendRedirect("main.jsp"); } else { out.println("

名片更新失败!

"); } stmt.close(); conn.close(); %>

以下是查询名片、删除名片和回收站管理的示例代码。其中,模糊查询使用LIKE子句实现,删除名片分为将名片移动到回收站和彻底删除两种,回收站管理包括还原和彻底删除。

查询名片的功能可以在main.jsp页面上添加一个查询表单,用户输入关键字后提交,调用search.jsp页面进行查询。

以下是search.jsp的示例代码:

<%@ page language="java" %>
<%@ page import="java.sql.*" %>



  查询名片 - 网上名片管理系统
  


  

网上名片管理系统 - 查询名片

<% String keyword = request.getParameter("keyword"); if (keyword == null) { keyword = ""; } // 连接数据库,查询名片信息 String url = "jdbc:mysql://localhost:3306/cards?useSSL=false"; String user = "root"; String pass = "password"; Connection conn = DriverManager.getConnection(url, user, pass); Statement stmt = conn.createStatement(); String sql = "SELECT * FROM cards WHERE name LIKE '%" + keyword + "%' OR company LIKE '%" + keyword + "%' ORDER BY id DESC"; ResultSet rs = stmt.executeQuery(sql); // 输出查询结果 if (!rs.next()) { out.println("

没有符合条件的名片!

"); } else { out.println(""); out.println(""); do { int id = rs.getInt("id"); String name = rs.getString("name"); String company = rs.getString("company"); String phone = rs.getString("phone"); String mobile = rs.getString("mobile"); out.println(""); } while (rs.next()); out.println("
ID姓名公司电话手机操作
" + id + "" + name + "" + company + "" + phone + "" + mobile + "编辑 删除
"); } rs.close(); stmt.close(); conn.close(); %>

在该页面中,根据用户输入的关键字(模糊查询),构造SELECT语句查询名片信息,并输出查询结果。如果没有符合条件的名片,则输出相应提示信息。

删除名片的功能可以通过在主页面中添加“删除”链接实现。点击该链接后,调用delete.jsp进行名片删除,根据用户选择的方式将名片移动到回收站或彻底删除。

以下是delete.jsp的示例代码:

<%@ page language="java" %>
<%@ page import="java.sql.*" %>



  删除名片 - 网上名片管理系统


  

网上名片管理系统 - 删除名片

<% int id = Integer.parseInt(request.getParameter("id")); String action = request.getParameter("action"); if (action == null) { action = ""; } // 连接数据库,删除名片信息 String url = "jdbc:mysql://localhost:3306/cards?useSSL=false"; String user = "root"; String pass = "password"; Connection conn = DriverManager.getConnection(url, user, pass); Statement stmt = conn.createStatement(); int rows = 0; if (action.equals("discard")) { // 将名片移动到回收站 rows = stmt.executeUpdate("UPDATE cards SET discard=1 WHERE id='" + id + "'"); } else { // 彻底删除名片 rows = stmt.executeUpdate("DELETE FROM cards WHERE id='" + id + "'"); } if (rows == 1) { response.sendRedirect("main.jsp"); } else { out.println("

名片删除失败!

"); } stmt.close(); conn.close(); %>

在该页面中,根据用户选择的操作(移动到回收站或彻底删除),构造UPDATE或DELETE语句删除名片信息,并在成功删除后重定向到主页面main.jsp。

回收站管理的功能可以添加一个链接或按钮在主页面中,点击后进入recycle.jsp页面进行回收站管理。

以下是recycle.jsp的示例代码:

<%@ page language="java" %>
<%@ page import="java.sql.*" %>



  回收站管理 - 网上名片管理系统
  


  

网上名片管理系统 - 回收站管理

<% String keyword = request.getParameter("keyword"); if (keyword == null) { keyword = ""; } // 连接数据库,查询回收站中的名片信息 String url = "jdbc:mysql://localhost:3306/cards?useSSL=false"; String user = "root"; String pass = "password"; Connection conn = DriverManager.getConnection(url, user, pass); Statement stmt = conn.createStatement(); String sql = "SELECT * FROM cards WHERE discard=1 AND name LIKE '%" + keyword + "%' OR company LIKE '%" + keyword + "%' ORDER BY id DESC"; ResultSet rs = stmt.executeQuery(sql); // 输出查询结果 if (!rs.next()) { out.println("

回收站中没有名片!

"); } else { out.println(""); out.println(""); do { int id = rs.getInt("id"); String name = rs.getString("name"); String company = rs.getString("company"); String phone = rs.getString("phone"); String mobile = rs.getString("mobile"); out.println(""); } while (rs.next()); out.println("
ID姓名公司电话手机操作
" + id + "" + name + "" + company + "" + phone + "" + mobile + "还原 彻底删除
"); } rs.close(); stmt.close(); conn.close(); %>

在该页面中,根据用户输入的关键字(模糊查询),构造SELECT语句查询回收站中的名片信息,并输出查询结果。其中,每条查询结果均包含一个“还原”链接和一个“彻底删除”链接,分别调用recover.jsp和delete.jsp进行还原和彻底删除操作。

还原名片的功能可以在recover.jsp页面中实现,调用UPDATE语句将名片从回收站中还原。

以下是recover.jsp的示例代码:

<%@ page language="java" %>
<%@ page import="java.sql.*" %>



  还原名片 - 网上名片管理系统


  

网上名片管理系统 - 还原名片

<% int id = Integer.parseInt(request.getParameter("id")); // 连接数据库,还原名片 String url = "jdbc:mysql://localhost:3306/cards?useSSL=false"; String user = "root"; String pass = "password"; Connection conn = DriverManager.getConnection(url, user, pass); Statement stmt = conn.createStatement(); int rows = stmt.executeUpdate("UPDATE cards SET discard=0 WHERE id='" + id + "'"); if (rows == 1) { response.sendRedirect("recycle.jsp"); } else { out.println("

名片还原失败!

"); } stmt.close(); conn.close(); %>

在该页面中,根据用户选择的操作,构造UPDATE语句将名片从回收站中还原,并在成功还原后重定向到回收站管理页面recycle.jsp。

彻底删除名片的功能在delete.jsp页面中已经实现,当用户选择彻底删除时,将直接调用DELETE语句删除名片信息。

你可能感兴趣的:(Javaweb网站练习,html)