Java Web 三层架构入门

[java][基础]JSP <head></head><body><%%></body> 阅读详情

本文面向于具有一定Java基础并且会基本使用相关开发工具的朋友
意在能对Java web有一个基本了解

学完本文你将掌握
基本的Java web三层架构模式
前后端是如何相互交流的

在开始之前希望你已经安装并配置好相关的基础环境
我们需要用到:Java、MySQL、Tomcat

如果你已经准备好了,那让我们开始吧!!!

Steps1、项目的创建和相关依赖包的导入

首先让我们创建一个全新的Java web项目,创建项目时你需要勾选web application

在这里插入图片描述

创建完成后你将看到如下项目结构

在这里插入图片描述

如果你的External Libraries中没有Java和Tomcat资源,请检查IDEA的相关配置,这里不再赘述

接下来我们导入相关依赖

在这里插入图片描述

如果你没有MySql驱动包请前往这个链接https://dev.mysql.com/downloads/connector/j/ 下载

至此Steps1完成

Steps2、项目的基本框架搭建

在这里插入图片描述
知识点浅讲1
经典的Java web的三层架构:
WEB层:包含JSP和Servlet等与WEB相关的内容,多数内容往往是用户能直接接触到的
业务层:业务层中不包含JavaWeb API,它只关心业务逻辑,在本例中它的存在感可能是最低的,但是在大型项目中它往往是最复杂了
数据层:封装了对数据库的访问细节
浅讲1完

本例中以web和servlet包下的内容作为WEB层,service包下的内容为业务层,dao包下的内容作为数据层,domain包下的内容对应相关数据库表

创建Servlet可以使用如下方法
在这里插入图片描述

如果是直接创建的Java class应该确保你的Servlet继承了HttpServlet,并且实现了doPost()和doGet()方法

知识点浅讲2
关于doPost()和doGet()方法:
请尝试回想一下表单的提交方式,如果有印象估计你已经能猜到这两个方法的作用了
对doPost()方法就是用来处理post提交的而doGet()方法就是用来处理get提交的
浅讲2完

如果你使用的是Servlet3.0以下的版本,这时是不能使用@WebServlet()注解的,你需要在web.xml中做以下配置
在这里插入图片描述

知识点浅讲3
服务器是怎么通过浏览器发出的URL得知该访问那个Servlet的?
当你启动Tomcat服务,在地址栏中输入http://localhost:8080/UserServlet并按下回车后会发生什么?

在这里插入图片描述
虽然什么都没有,但这时其实你已经访问到了servlet包下的UserServlet注意到了吗这里的/UserServlet刚好对应上了中标签的内容。当匹配到相应的后服务器会根据中的内容去的中找到能与之匹配的值,然后通过找到相应的servlet,如果找不到则会出现404错误。而Servlet3.0后注解的作用只是为了简化配置
浅讲3完

最终的类应该如下图,servlet3.0以下则没有@WebServlet()
在这里插入图片描述

接下来我们需要提供各层之间的依赖关系和基本内容

我们从最底层的UserDao类(dao层)开始。因为其作用是对数据库的操作,所以我们先让它能连接上数据库
package dao;  
  
import domain.User;  
  
import java.sql.Connection;  
import java.sql.DriverManager;  
import java.sql.PreparedStatement;  
import java.sql.SQLException;  
  
public class UserDao {
   
     
    /** 
     * 1、给出链接数据库的三大参数 
     * url、username、password 
     */  
    //如果你的MySQL为默认设置那么jdbc:mysql://localhost:3306/为固定写法,后面的practice为数据库名  
    private static final String url = "jdbc:mysql://localhost:3306/practice";  
    //这里根据自己的MySQL用户名填写  
    private static final String username = "";  
    //这里根据自己的MySQL密码填写  
    private static final String password = "";  
  
    private static Connection connection;  
    private static PreparedStatement preparedStatement;  
  
    static {
   
     
        try {
   
     
            Class.forName("com.mysql.cj.jdbc.Driver");  
            connection = DriverManager.
javaweb三层架构源代码 实现Java的MVC三层架构, servlet是控制层 View是界面层 Model是模型层 立即下载

相关推荐

Java Web 三层架构详解

针对当前Web应用程序开发面临的问题,结合目前比较流行的开源框架Spring、Struts和Hibernate,提出了一种开发J2EE Web应用的轻量级解决方案,以帮助开发人员在短期内搭建结构清晰、可复用性好、维护方便的Web应用程序。

JavaWeb三层架构和五层架构介绍

开发业务应用角度对程序的划分,其分层逻辑来源于“高内聚低耦合”的思想,在开发中针对这种有三层架构和五层架构

GEO数据库数据下载方法总结

#GEO数据下载 GEO是生信分析经常用到的数据库。经常需要从中获取表达矩阵,平台信息,meta信息等,本博文总结了几种下载GEO数据的方法,各有优劣,实际应用过程中自行选择适合自己的。 ##方法一:直接从浏览器中下载 以数据集GSE1001为例, 可以直接点击“Series Matrix Files”获取该样本txt格式的表达谱数据,一般我们认为这种处理过的表达谱数据是没有问题的,当然,具体情况具体分析。 打开下载的文件可以看到许多“#”开头的行,这些是注释信息,一般关注这些注释信息中的“data pr

sakoko_的博客 4万+

WinCC与施耐德PLC的Modbus TCP通信实战指南

本文详细解析了西门子WinCC与施耐德PLC通过Modbus TCP协议实现通信的完整实战流程。内容涵盖硬件网络配置、Modbus地址映射核心规则、WinCC驱动连接建立、变量创建及高级数据访问技巧,并提供了常见故障排查思路,帮助工程师高效解决跨品牌设备通信难题。

weixin_29194693的博客 1005

告别Vivado自带编辑器!手把手教你用Sublime Text 4 + Icarus Verilog搭建FPGA开发环境(Windows 10/11)

本文详细介绍如何在Windows 10/11系统下,使用Sublime Text 4和Icarus Verilog搭建高效的FPGA开发环境,替代Vivado自带编辑器。通过配置语法检查、代码高亮和智能补全等功能,提升Verilog开发效率,实现专业级工作流。

weixin_30684743的博客 429

MOOS-ivp 实验三 MOOS简介(1)

系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 例如:第一章 Python 机器学习入门之pandas的使用 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录系列文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结 前言 提示:这里可以添加本文要记录的大概内容: 例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。 提示:以下是本篇文章正文内容,下面案例

weixin_44151170的博客 7434

宽带阻抗匹配的工程实现-第一步,端口驻波仿真

其实阻抗匹配我工作以来经常说,也经常做,但是基本上都是直接在印制板上进行调试。现在想先用仿真软件直接设计出来,才发现很多东西嘴上说容易,想做出来太难了。所以准备写一些文章,记录一下碰到的问题。

pp_0604的博客 2379

Unity Shader Graph 2D - Procedural程序化图形转动的环状六边形

Hexagon又称六边形,在游戏中是十分常见的基础形状,本文将使用程序化的六边形来制作多个环状六边形叠加的转动动画效果,实践Unity Shader Graph中的常用节点功能。

Giver的博客 1930

XRoboToolkit —— 基于 PICO 4 Ultra 的机器人遥操作方案(一)

视觉-语言-动作模型(Vision-Language-Action models)的快速发展催生了对大规模、高质量机器人演示数据集的迫切需求。尽管遥操作是数据采集的主要方法,但现有方法存在可扩展性有限、设置流程复杂以及数据质量不佳等问题。本文提出XRoboToolkit,这是一个基于OpenXR标准的跨平台扩展现实(XR)机器人遥操作框架。该系统具备低延迟立体视觉反馈、基于优化的逆运动学算法,并支持多种跟踪模态,包括头部、控制器、手部及辅助运动追踪器。

2506_90492529的博客 3318

Unity小游戏接入抖音敏感词检测

摘要: 本文介绍了Unity小游戏接入抖音敏感词检测的方法。抖音官方提供了两种API:SensitiveWordCheck用于检测敏感词,ReplaceSensitiveWords用于替换敏感词。此外,若使用键盘输入事件,可通过tt.onKeyboardComplete监听回调,平台会自动屏蔽敏感词(替换为*)。接入官方字库可有效避免审核驳回,适用于小游戏中的用户输入功能(如起名系统)。附官方文档链接及参数说明。

类人_猿的博客 4596

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

yuanzhizhuo
博客等级 码龄9年 1粉丝 1原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值