欢迎来到Jsp编程课时十三——分解原理:构建自己的思路,目标更好的理解对数据的增伤改查的原理和过程。

简介: 欢迎来到Jsp编程课时十三——分解原理:构建自己的思路,目标更好的理解对数据的增伤改查的原理和过程。

数据的增删改查是如何完成的呢?过程你知道吗?流程你会画吗?MVC你真的学会了吗?其中运用的原理你真的知道吗?让我们更深层次的去了解。


第一部分:回顾java基础.面向对象与面向过程。

上面图中详细描绘了面向过程的思想。

一条路线:以自己为主线,亲力亲为的完成一项任务。

上面的主线是老师亲力亲为的去一个个的催学生健康打卡。


面向对象的思想:将一项任务进行分解,让多个对象去完成。

上面的图是

老师将健康打卡的任务交给执行负责人。

执行负责人将健康打卡任务交给班长。

班长将健康打卡任务交给寝室长。

寝室长健康打卡将任务交给寝室成员 。

这就是对面向对象最好的理解。


上面我们理解了面向对象的基本理论。那请看下面的图。你是真的理解了吗?如果下面的图你了解的话,流程明白的话。说明你真的明白了。


注意:上面的图是利用了面向对象的思想哦。


实操部分


观察流程你要思考?建几个包几个类几个jsp导入那些框架,用那种方案连接数据库。


实操目标要将上面的图中数据显示在浏览器中。

第一步:你要有一个页面去显示数据。所以定义一个jsp文件用于显示mysql中的数据。

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>学生信息对话列表</title>
<style type="text/css">
*{
/* background: linear-gradient(to right,red,pink,blue); */
background:white
font-size:30px;
font-weight: bold;
}
input{
           color: white; 
           font-weight: bold;
            padding-bottom:10px; 
            padding-top: 5px;  
            padding-left:10px;
            padding-right:10px;
            border-width: 0px;
}
.in1{
  background-color: lightcyan;
  color: black;
}
.in2{
  background-color: darkcyan;
  color: black;
}
.in3{
background-color:red ;
color: black;
}
in4{
background-color:black;
color: white;
}
caption {
font-size: 40px;
font-weight:bold ;
border: 2px solid pink;
background: white;
text-shadow: 3px 1px paleturquoise;
}
th{
font-size: 40px;
font-weight:bold ;
border: 2px solid pink;
background: white;
text-shadow: 3px 1px red;
}
tr{
font-size: 20px;
font-weight: bold;
border-radius: 6px;
background: lightcyan;
}
td{
font-size: 20px;
font-weight: bold;
border-radius: 6px;
background: pink;
}
</style>
</head>
<body>
  <!-- 使用表格展示从数据库中获取的所有学生信息 -->
  <div align="center">
    <table border="3" style="width: 900px;text-align: center;border-collapse: collapse;">
      <caption>学生书籍信息列表</caption>
      <tr>
        <th>书籍编号</th>
        <th>书籍名称</th>
        <th>书籍价格</th>
        <th>书籍数量</th>
        <th>书籍作者</th>
        <th>操作</th>
      </tr>
      <c:forEach items="${studentbook}" var="book" varStatus="v">
        <tr>
          <td>${book.id}</td>
          <td>${book.bookname}</td>
          <td>${book.bookprick}</td>
          <td>${book.boooknumber}</td>        
          <td>${book.bookautor}</td>
          <td style="width: 400px;">
          <a href="bookaddstudent2.jsp"><input type="button" value="增加"  class="in1"></a>&nbsp;
          <a href="bookUpdateStudent.jsp?index=${v.count-1 }"><input type="button" value="修改" class="in2"></a>&nbsp;
          <a href="bookDeleteStudent?id=${stu.id }"><input type="button" value="删除" class="in3"></a>&nbsp;
          </td>
        </tr>
      </c:forEach>
    </table>
  </div>
<h3 style="color:white; background: black;">
MVC全名是Model View Controller,<br>
@@1模型(model)<br>
@@2-视图(view)<br>
@@3-控制器(controller)的缩写,<br>
一种软件设计典范,<br>
用一种业务逻辑、数据、界面显示分离的方法组织代码,<br>
将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,<br>
不需要重新编写业务逻辑。<br>
MVC被独特的发展起来用于映射传统<br>
的输入、处理和输出功能在一个逻辑<br>
的图形化用户界面的结构中。<br>
</h3>
</body>
</html>

第二步定义一个页面解决乱码问题这里运用到了,Servlect的过滤器。/*全部拦截。

package com.student.filter;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.annotation.WebFilter;
/**
 * 用于拦截所有浏览器请求
 */
@WebFilter("/*")
public class MyFilter implements Filter {
    /**
     * Default constructor. 
     */
    public MyFilter() {
        // TODO Auto-generated constructor stub
    }
  /**
   * @see Filter#destroy()
   */
  public void destroy() {
    // TODO Auto-generated method stub
  }
  /**
   * @see Filter#doFilter(ServletRequest, ServletResponse, FilterChain)
   */
  public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
    //设置请求和响应的字符编码格式为UTF-8
    response.setContentType("text/html");
    response.setCharacterEncoding("UTF-8");
    request.setCharacterEncoding("UTF-8");
    chain.doFilter(request, response);
  }
  /**
   * @see Filter#init(FilterConfig)
   */
  public void init(FilterConfig fConfig) throws ServletException {
    // TODO Auto-generated method stub
  }
}

第三步.定义一个控制层的Servlect,用于发送信息,和接收信息。

首先你要明确你的数据库中发给servlect控制层时,用什么方式存放起来。方案一:实体类。方案二:四大域,利用list集合存放MAP集合的方式存放起来。

请看代码

package com.student.controller;
import java.io.IOException;
import java.util.List;
import java.util.Map;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import com.student.service.IStudentService;
import com.student.service.StudentServiceImp;
/**
 * Servlet implementation class HomeServlet
 */
@WebServlet("/HomeServlet")
public class HomeServlet extends HttpServlet {
  private static final long serialVersionUID = 1L;
    /**
     * @see HttpServlet#HttpServlet()
     */
    public HomeServlet() {
        super();
        // TODO Auto-generated constructor stub
    }
  /**
   * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
   */
  protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    //将浏览器的任务接收,发给业务逻辑层处理
    IStudentService service=new StudentServiceImp();
    List<Map<String, Object>> oList=service.getStudents();
    HttpSession session =request.getSession();
  }
  /**
   * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
   */
  protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    // TODO Auto-generated method stub
    doGet(request, response);
  }
}


控制层将任务发送给了逻辑层接口,而逻辑层的接口要发送给数据访问层的接口,数据访问层的接口将查询命令发送给数据访问层的实体类。在这之前要实现连接数据库。然后将数据层层返回个控制层的Servlect.


代码编译

package comstudentbookservlice;
import java.util.List;
import java.util.Map;
public interface IStudentBookservlice {
  List<Map<String, Object>> getStudentBooks();
}
package comstudentbookservlice;
import java.util.List;
import java.util.Map;
import comstudentbookdao.IStudentBookdao;
import comstudentbookdao.StudentBookdaoImp;
public class StudentBookserviceImp implements IStudentBookservlice {
  @Override
  public List<Map<String, Object>> getStudentBooks() {
    return ;
  }
}
package comstudentbookdao;
import java.util.List;
import java.util.Map;
public interface IStudentBookdao {
  List<Map<String, Object>> getStudentBooks();
}
package comstudentbookdao;
import java.util.List;
import java.util.Map;
import com.student.utils.DBUtil;
public class StudentBookdaoImp implements IStudentBookdao {
  @Override
  public List<Map<String, Object>> getStudentBooks() {
    return ;
  }
}

控制层将任务发送给了逻辑层接口,而逻辑层的接口要发送给数据访问层的接口,数据访问层的接口将查询命令发送给数据访问层的实体类。在这之前要实现连接数据库。然后将数据层层返回个控制层的Servlect.理思路。


请看下面的代码。


 



上面的流程以完毕。

运行结果图

增删改查自行思考。

相关文章
|
28天前
|
自然语言处理 Java 数据库连接
掌握JSP页面编程:动态生成Web内容
【4月更文挑战第3天】Java Server Pages (JSP) 是一种用于创建动态Web内容的Java技术,它结合HTML并允许在页面中嵌入Java代码。JSP支持代码片段、表达式语言(EL)和JSTL标签库,简化动态内容生成。当服务器接收到请求时,执行JSP中的Java代码并将结果嵌入HTML返回给客户端。示例展示了如何显示当前日期和时间。JSP可与Servlet、JavaBeans、数据库等结合,用于构建功能丰富的交互式Web应用。
掌握JSP页面编程:动态生成Web内容
|
2月前
|
Java 应用服务中间件
jsp数据交互(一)
jsp数据交互(一)
11 0
|
7月前
|
存储 Java 关系型数据库
JSP考试质量分析系统myeclipse开发mysql数据库bs框架java编程web网页结构
JSP 考试质量分析系统是一套完善的web设计系统,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,开发环境为TOMCAT7.0,Myeclipse8.5开发,数据库为Mysql5.0,使用java语言开发,系统主要采用B/S模式开发。
185 1
|
7月前
|
Java 数据库连接 数据库
JSP奖学金管理系统myeclipse开发sqlserver数据库bs框架java编程jdbc
JSP 奖学金管理系统是一套完善的web设计系统,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,开发环境为TOMCAT7.0,Myeclipse8.5开发,数据库为SQLSERVER2008,使用java语言开发,系统主要采用B/S模式开发。
37 0
|
7月前
|
Java 关系型数据库 MySQL
JSP居民信息采集系统yeclipse开发mysql数据库bs框架java编程jdbc
JSP 居民信息采集系统是一套完善的web设计系统,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,开发环境为TOMCAT7.0,Myeclipse8.5开发,数据库为Mysql5.0,使用java语,言开发系统主要采用B/S模式开发。
36 0
|
2月前
|
前端开发 Java 数据库
【Spring原理进阶】SpringMVC调用链+JSP模板应用讲解
【Spring原理进阶】SpringMVC调用链+JSP模板应用讲解
|
7月前
|
存储 Java 关系型数据库
JSP考试质量分析系统myeclipse开发mysql数据库bs框架java编程web网页结构
JSP 考试质量分析系统是一套完善的web设计系统,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,开发环境为TOMCAT7.0,Myeclipse8.5开发,数据库为Mysql5.0,使用java语言开发,系统主要采用B/S模式开发。
126 0
|
7月前
|
Java 关系型数据库 MySQL
JSP学生交流论坛系统myeclipse开发mysql数据库bs框架java编程jdbc
JSP 学生交流论坛系统是一套完善的web设计系统,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,开发环境为TOMCAT7.0,Myeclipse8.5开发,数据库为Mysql5.0,使用java语,言开发系统主要采用B/S模式开发。 https://www.bilibili.com/video/BV1jB4y1q7Ut?spm_id_from=333.999.0.0
74 0
|
5月前
|
存储 Java
JSP原理以及基本语法
JSP原理以及基本语法
|
7月前
|
Java 关系型数据库 MySQL
JSP考试报名管理系统myeclipse开发mysql数据库bs框架java编程web网页结构
二、功能介绍 (1)权限管理:对权限信息进行添加、删除、修改和查看 (2)用户管理:对用户信息进行添加、删除、修改和查看 (3)公告管理:对公告信息进行添加、删除、修改和查看 (4)考试科目管理:对考试科目信息进行添加、删除、修改和查看 (5)考试安排管理:对考试安排信息进行添加、删除、修改和查看 (6)报名管理:对报名信息进行添加、删除、修改和查看,审核, (7)用户登录、身份验证 三、注意事项 1、管理员账号:admin密码:admin 数据库配置文件DBO.java 角色:普通用户,管理员 2、开发环境为TOMCAT7.0,Myeclipse8.5开发,数据库为Mysql
110 0