欢迎来到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.理思路。


请看下面的代码。


 



上面的流程以完毕。

运行结果图

增删改查自行思考。

相关文章
|
7月前
|
自然语言处理 Java 数据库连接
掌握JSP页面编程:动态生成Web内容
【4月更文挑战第3天】Java Server Pages (JSP) 是一种用于创建动态Web内容的Java技术,它结合HTML并允许在页面中嵌入Java代码。JSP支持代码片段、表达式语言(EL)和JSTL标签库,简化动态内容生成。当服务器接收到请求时,执行JSP中的Java代码并将结果嵌入HTML返回给客户端。示例展示了如何显示当前日期和时间。JSP可与Servlet、JavaBeans、数据库等结合,用于构建功能丰富的交互式Web应用。
147 5
掌握JSP页面编程:动态生成Web内容
|
7月前
|
Java 应用服务中间件
jsp数据交互(一)
jsp数据交互(一)
|
存储 Java 关系型数据库
JSP考试质量分析系统myeclipse开发mysql数据库bs框架java编程web网页结构
JSP 考试质量分析系统是一套完善的web设计系统,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,开发环境为TOMCAT7.0,Myeclipse8.5开发,数据库为Mysql5.0,使用java语言开发,系统主要采用B/S模式开发。
227 1
|
3月前
|
Java 关系型数据库 MySQL
毕设项目&课程设计&毕设项目:springboot+jsp实现的房屋租租赁系统(含教程&源码&数据库数据)
本文介绍了一款基于Spring Boot和JSP技术的房屋租赁系统,旨在通过自动化和信息化手段提升房屋管理效率,优化租户体验。系统采用JDK 1.8、Maven 3.6、MySQL 8.0、JSP、Layui和Spring Boot 2.0等技术栈,实现了高效的房源管理和便捷的租户服务。通过该系统,房东可以轻松管理房源,租户可以快速找到合适的住所,双方都能享受数字化带来的便利。未来,系统将持续优化升级,提供更多完善的服务。
毕设项目&课程设计&毕设项目:springboot+jsp实现的房屋租租赁系统(含教程&源码&数据库数据)
|
4月前
|
安全 Java 关系型数据库
毕设项目&课程设计&毕设项目:基于springboot+jsp实现的健身房管理系统(含教程&源码&数据库数据)
本文介绍了一款基于Spring Boot和JSP技术实现的健身房管理系统。随着健康生活观念的普及,健身房成为日常锻炼的重要场所,高效管理会员信息、课程安排等变得尤为重要。该系统旨在通过简洁的操作界面帮助管理者轻松处理日常运营挑战。技术栈包括:JDK 1.8、Maven 3.6、MySQL 8.0、JSP、Shiro、Spring Boot 2.0等。系统功能覆盖登录、会员管理(如会员列表、充值管理)、教练管理、课程管理、器材管理、物品遗失管理、商品管理及信息统计等多方面。
|
4月前
|
XML JSON Java
使用IDEA+Maven搭建整合一个Struts2+Spring4+Hibernate4项目,混合使用传统Xml与@注解,返回JSP视图或JSON数据,快来给你的SSH老项目翻新一下吧
本文介绍了如何使用IntelliJ IDEA和Maven搭建一个整合了Struts2、Spring4、Hibernate4的J2EE项目,并配置了项目目录结构、web.xml、welcome.jsp以及多个JSP页面,用于刷新和学习传统的SSH框架。
93 0
使用IDEA+Maven搭建整合一个Struts2+Spring4+Hibernate4项目,混合使用传统Xml与@注解,返回JSP视图或JSON数据,快来给你的SSH老项目翻新一下吧
|
6月前
|
缓存 小程序 前端开发
Java服务器端技术探秘:Servlet与JSP的核心原理
【6月更文挑战第23天】Java Web开发中的Servlet和JSP详解:Servlet是服务器端的Java小程序,处理HTTP请求并响应。生命周期含初始化、服务和销毁。创建Servlet示例代码展示了`doGet()`方法的覆盖。JSP则侧重视图,动态HTML生成,通过JSP脚本元素、声明和表达式嵌入Java代码。Servlet常作为控制器,JSP处理视图,遵循MVC模式。优化策略涉及缓存、分页和安全措施。这些技术是Java服务器端开发的基础。
66 9
|
6月前
|
前端开发 安全 Java
Java服务器端开发实战:利用Servlet和JSP构建动态网站
【6月更文挑战第23天】**Servlet和JSP在Java Web开发中扮演关键角色。Servlet处理业务逻辑,管理会话,JSP则结合HTML生成动态页面。两者协同工作,形成动态网站的核心。通过Servlet的doGet()方法响应请求,JSP利用嵌入式Java代码创建动态内容。实战中,Servlet处理数据后转发给JSP展示,共同构建高效、稳定的网站。虽然新技术涌现,Servlet与JSP仍为Java Web开发的基石,提供灵活且成熟的解决方案。**
75 8
|
6月前
|
搜索推荐 Java 数据库连接
探索Java Web开发:Servlet与JSP的协同工作原理
【6月更文挑战第23天】Java Web开发中,Servlet和JSP协同打造动态网站。Servlet是服务器端的Java程序,处理HTTP请求并执行复杂逻辑;JSP则结合HTML和Java,生成动态内容。Servlet通过`doGet()`等方法响应请求,JSP在首次请求时编译成Servlet。两者常搭配使用,Servlet处理业务,JSP专注展示,通过`RequestDispatcher`转发实现数据渲染。这种组合是Java Web应用的基础,即使新技术涌现,其价值仍然重要,为开发者提供了强大的工具集。
67 7
|
6月前
|
前端开发 小程序 Java
深入解析Java Servlet与JSP:构建高效服务器端应用
【6月更文挑战第23天】Java Servlet和JSP是Web开发的关键技术,用于构建高效服务器端应用。Servlet处理HTTP请求,执行业务逻辑,而JSP专注于动态HTML生成。两者结合,借助MVC架构,实现逻辑与视图分离,提高代码可读性和性能。尽管有新框架出现,Servlet和JSP仍是许多项目的基础。
114 7