黑马程序员最新版javaweb综合案例(前后端完整版)(代码片段)

鲁棒最小二乘支持向量机 鲁棒最小二乘支持向量机     2023-03-14     513

关键词:

JavaWeb 综合案例

学习视频链接: 黑马程序员最新版JavaWeb基础教程,Java web从入门到企业实战完整版
完整代码链接: https://github.com/HaiLei-Fly/JavaWeb-brand

1、功能介绍

案例功能:

  • 用户登录(账号密码登录)
  • 用户注册(新用户注册账号)
  • 查询所有(查询所有品牌数据)
  • 新增品牌(增加新的品牌数据)
  • 修改品牌(修改品牌数据)
  • 删除品牌(删除品牌数据)
  • 批量删除(删除多条品牌数据)
  • 分页查询(分页展示品牌数据)
  • 条件查询(通过条件精确查询品牌数据)

2、工程准备

2.1 所需环境

MySQL 8.0.22
JDK 11.0.10
MAVEN 3.6.0
Navicat 16
IDEA 2021.3.3
pom.xml文件如下

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>org.example</groupId>
    <artifactId>brand-case</artifactId>
    <version>1.0-SNAPSHOT</version>

    <packaging>war</packaging>

    <properties>
        <maven.compiler.source>11</maven.compiler.source>
        <maven.compiler.target>11</maven.compiler.target>
    </properties>

    <dependencies>
    <!--Servlet-->
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>javax.servlet-api</artifactId>
        <version>3.1.0</version>
        <scope>provided</scope>
    </dependency>


    <!--jsp-->
    <dependency>
        <groupId>javax.servlet.jsp</groupId>
        <artifactId>jsp-api</artifactId>
         <version>2.2</version>
        <scope>provided</scope>
    </dependency>

    <!--jstl-->
    <dependency>
        <groupId>jstl</groupId>
        <artifactId>jstl</artifactId>
        <version>1.2</version>
    </dependency>

    <dependency>
        <groupId>taglibs</groupId>
        <artifactId>standard</artifactId>
        <version>1.1.2</version>
    </dependency>

    <dependency>
        <groupId>org.mybatis</groupId>
        <artifactId>mybatis</artifactId>
        <version>3.5.5</version>
    </dependency>

    <!--MySQL-->
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>8.0.22</version>
    </dependency>

        <!--fastjson-->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.2.62</version>
        </dependency>


    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.tomcat.maven</groupId>
                <artifactId>tomcat7-maven-plugin</artifactId>
                <version>2.2</version>

            </plugin>
        </plugins>
    </build>

</project> 

2.2 工程结构

Maven Web开发中的项目结构如下:


Java目录结构如下:


resources和webapp目录结构如下:

3、数据库

3.1 建立连接

Navicat 与本地MySQL数据库建立连接


输入MySQL数据库密码,连接成功


新建数据库db1

3.2 建表程序

创建品牌表sql语句

-- 删除tb_brand表
drop table if exists tb_brand;
-- 创建tb_brand表
create table tb_brand
(
    -- id 主键
    id           int primary key auto_increment,
    -- 品牌名称
    brand_name   varchar(20),
    -- 企业名称
    company_name varchar(20),
    -- 排序字段
    ordered      int,
    -- 描述信息
    description  varchar(100),
    -- 状态:0:禁用  1:启用
    status       int
);
-- 添加数据
insert into tb_brand (brand_name, company_name, ordered, description, status)
values 
       ('华为', '华为技术有限公司', 100, '万物互联', 1),
       ('小米', '小米科技有限公司', 50, 'are you ok', 1),
       ('格力', '格力电器股份有限公司', 30, '让世界爱上中国造', 1),
       ('阿里巴巴', '阿里巴巴集团控股有限公司', 10, '买买买', 1),
       ('腾讯', '腾讯计算机系统有限公司', 50, '玩玩玩', 0),
       ('百度', '百度在线网络技术公司', 5, '搜搜搜', 0),
       ('京东', '北京京东世纪贸易有限公司', 40, '就是快', 1),
       ('小米', '小米科技有限公司', 50, 'are you ok', 1),
       ('三只松鼠', '三只松鼠股份有限公司', 5, '好吃不上火', 0),
       ('华为', '华为技术有限公司', 100, '万物互联', 1),
       ('小米', '小米科技有限公司', 50, 'are you ok', 1),
       ('格力', '格力电器股份有限公司', 30, '让世界爱上中国造', 1),
       ('阿里巴巴', '阿里巴巴集团控股有限公司', 10, '买买买', 1),
       ('腾讯', '腾讯计算机系统有限公司', 50, '玩玩玩', 0),
       ('百度', '百度在线网络技术公司', 5, '搜搜搜', 0),
       ('京东', '北京京东世纪贸易有限公司', 40, '就是快', 1),
       ('华为', '华为技术有限公司', 100, '万物互联', 1),
       ('小米', '小米科技有限公司', 50, 'are you ok', 1),
       ('格力', '格力电器股份有限公司', 30, '让世界爱上中国造', 1),
       ('阿里巴巴', '阿里巴巴集团控股有限公司', 10, '买买买', 1),
       ('腾讯', '腾讯计算机系统有限公司', 50, '玩玩玩', 0),
       ('百度', '百度在线网络技术公司', 5, '搜搜搜', 0),
       ('京东', '北京京东世纪贸易有限公司', 40, '就是快', 1),
       ('小米', '小米科技有限公司', 50, 'are you ok', 1),
       ('三只松鼠', '三只松鼠股份有限公司', 5, '好吃不上火', 0),
       ('华为', '华为技术有限公司', 100, '万物互联', 1),
       ('小米', '小米科技有限公司', 50, 'are you ok', 1),
       ('格力', '格力电器股份有限公司', 30, '让世界爱上中国造', 1),
       ('阿里巴巴', '阿里巴巴集团控股有限公司', 10, '买买买', 1),
       ('腾讯', '腾讯计算机系统有限公司', 50, '玩玩玩', 0),
       ('百度', '百度在线网络技术公司', 5, '搜搜搜', 0),
       ('京东', '北京京东世纪贸易有限公司', 40, '就是快', 1),
       ('华为', '华为技术有限公司', 100, '万物互联', 1),
       ('小米', '小米科技有限公司', 50, 'are you ok', 1),
       ('格力', '格力电器股份有限公司', 30, '让世界爱上中国造', 1),
       ('阿里巴巴', '阿里巴巴集团控股有限公司', 10, '买买买', 1),
       ('腾讯', '腾讯计算机系统有限公司', 50, '玩玩玩', 0),
       ('百度', '百度在线网络技术公司', 5, '搜搜搜', 0),
       ('京东', '北京京东世纪贸易有限公司', 40, '就是快', 1),
       ('小米', '小米科技有限公司', 50, 'are you ok', 1),
       ('三只松鼠', '三只松鼠股份有限公司', 5, '好吃不上火', 0),
       ('华为', '华为技术有限公司', 100, '万物互联', 1),
       ('小米', '小米科技有限公司', 50, 'are you ok', 1),
       ('格力', '格力电器股份有限公司', 30, '让世界爱上中国造', 1),
       ('阿里巴巴', '阿里巴巴集团控股有限公司', 10, '买买买', 1),
       ('腾讯', '腾讯计算机系统有限公司', 50, '玩玩玩', 0),
       ('百度', '百度在线网络技术公司', 5, '搜搜搜', 0),
       ('京东', '北京京东世纪贸易有限公司', 40, '就是快', 1)
        ;


创建用户表sql语句

-- 删除tb_brand表
drop table if exists tb_user;
-- 创建tb_brand表
create table tb_user
(
    -- id 主键
    id           int primary key auto_increment,
    -- 用户名称
    username   varchar(20),
    -- 用户密码
    password varchar(20)
);
-- 添加数据
insert into tb_user (username, password)
values 
       ('ming', '1234567890'),
       ('wang', '1234567890')
			 ;


连接数据库配置文件,在resources目录下创建 mybatis-config.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>

    <typeAliases>
        <package name="com.hailei.pojo"/>
    </typeAliases>

    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.cj.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql:///db1?useSSL=false"/>
                <property name="username" value="root"/>
                <property name="password" value="12345678"/>
            </dataSource>
        </environment>
    </environments>
    <mappers>
       <!--扫描mapper-->
        <package name="com.hailei.mapper"/>
    </mappers>
</configuration>

4、用户登录功能

整体流程:

  • (1) 前端login.jsp页面加载完成后,通过表单发送请求和数据给Web层的LoginServlet
  • (2) 在LoginServlet中接收请求和数据(用户名和密码)
  • (3) LoginServlet接收到请求和数据后,调用Service层完成根据用户名和密码查询用户对象
  • (4) 在Service层需要编写UserService类,在类中实现login方法,方法中调用Dao层的UserMapper
  • (5) 在UserMapper接口中,声明一个根据用户名和密码查询用户信息的方法
  • (6) Dao层把数据查询出来以后,将返回数据封装到User对象,将对象交给Service层
  • (7) Service层将数据返回给Web层
  • (8) Web层获取到User对象后,判断User对象,如果为Null,则将错误信息响应给登录页面,如果不为Null,则跳转到列表页面,并把当前登录用户的信息存入Session携带到列表页面

4.1 后端实现

dao方法实现:

在java目录下的 com.hailei.mapper.UserMapper 接口中定义抽象方法,并使用 @Select 注解编写 sql 语句

/**
     * 根据用户名和密码查询用户对象
     * @param username
     * @param password
     * @return
     */
    @Select("select * from tb_user where username = #username and password = #password")
    User select(@Param("username") String username,@Param("password")  String password);

service方法实现:

在java目录下的 com.hailei.service 下再创建 impl 包;impl 表示是放 service 层接口的实现类的包。 在该包下创建名为 UserServiceImpl

public class UserServiceImpl implements UserService 
    SqlSessionFactory factory = SqlSessionFactoryUtils.getSqlSessionFactory();

    /**
     * 登录方法
     * @param username
     * @param password
     * @return
     */

    public User login(String username, String password)
        //2. 获取SqlSession
        SqlSession sqlSession = factory.openSession();
        //3. 获取UserMapper
        UserMapper mapper = sqlSession.getMapper(UserMapper.class);
        //4. 调用方法
        User user = mapper.select(username, password);

        //释放资源
        sqlSession.close();

        return  user;
    

在java目录下的 com.hailei.service 包下创建 UserService 接口,在该接口中定义登录的抽象方法

/**
     * 登录方法
     * @param username
     * @param password
     * @return
     */

    User login(String username, String password);

servlet方法实现:

在java目录下的 com.hailei.web.servlet 包下定义名为 LoginServlet 的登录的 servlet

@WebServlet("/loginServlet")
public class LoginServlet extends HttpServlet 
    private UserService service = new UserServiceImpl();

    查看详情  

黑马程序员前端-css综合案例:学成在线模块添加(代码片段)

...么是网页?什么是HTML?网页怎么形成?黑马程序员前端-CSS入门总结黑马程序员前端-CSS之emmet语法黑马程序员前端-CSS的复合选择器黑马程序员前端-CSS的显示模式黑马程序员前端-CSS背景黑马程序员前端-CSS三大特性࿱... 查看详情

黑马程序员前端-html+css综合案例:土豆网鼠标经过显示遮罩(代码片段)

前面的按照顺序的笔记已经更新了22篇内容了,因为篇幅问题,请看文末。今天开始学习综合案例目录1、学习目标2、核心原理3、参考代码4、往期汇总我们先来看看综合案例的效果图:​1、学习目标练习元素和显示... 查看详情

黑马程序员最全ssm框架用户角色案例(ssm整合版)(代码片段)

SSM框架用户角色案例学习视频链接:黑马程序员最全SSM框架教程|Spring+SpringMVC+MyBatis全套教程(spring+springmvc+mybatis)完整代码链接:https://github.com/HaiLei-Fly/SSM_Test1、原生JavaWeb对应MVC架构MVC全名是ModelViewController&# 查看详情

javaweb010--springbootweb综合案例(部门管理&员工管理)

目录SpringBootWeb综合案例一、准备工作1、需求说明&环境搭建①、需求说明②、环境搭建2、开发规范①、接口文档②、开发规范--Restful(表述性状态转换)③、开发规范--统一响应结果④、开发流程二、部门管理1、查询... 查看详情

黑马前端pinkhtml综合案例:圣诞节的那些事小说排行榜案例注册页面(代码片段)

文章目录综合案例1:圣诞节的那些事目标代码综合案例2:小说排行榜案例目标代码综合案例3:注册页面目标代码综合案例1:圣诞节的那些事视频p30-31目标代码<!DOCTYPEhtml><htmllang="en"><head><... 查看详情

webapis综合案例-tab栏切换丨黑马程序员(代码片段)

前期更新笔记内容: WebAPI基本认知/   获取DOM元素 /  设置/修改DOM元素内容和元素属性 / 定时器-间歇函数 / 事件基础 /   高阶函数 / 环境对象学过了以上内容,今天我们来做一个综合的案例:Tab栏切换 需... 查看详情

servletapi的使用案例-前后端交互的表白墙(代码片段)

...析问题我们之前学习前端的时候写过一个表白墙的页面的案例,但是这个页面是存在问题的问题1.如果刷新页面或者关闭页面重开,之前的数据就丢失了2.这些输入的数据都是在本地上的,一个机器输入了数据,其他机器是看不见的需... 查看详情

回到javaweb的第十四天(黑马旅游网案例)

        这里难道6+3+3不是12吗?12不是放得下吗?                     重写 查看详情

4w字笔记:javaweb综合案例

↑↑Java语法基础—>小型项目练习—>MySQL更多学习内容均更新在专栏了,记得关注专栏哦↑↑🍬JDBC:从CRUD开始,理解JDBC中的各个对象作用,掌握Druid的使用🍬Maven从安装到手把手教学进行项目管理... 查看详情

传智播客javaweb程序设计任务教程黑马程序员课后答案合集

【传智播客】Javaweb程序设计任务教程黑马程序员第一章课后答案【传智播客】Javaweb程序设计任务教程黑马程序员第二章课后答案【传智播客】Javaweb程序设计任务教程黑马程序员第三章课后答案【传智播客】Javaweb程序设计任务... 查看详情

springboot2.x开发案例之前后端分离鉴权

前言阅读本文需要一定的前后端开发基础,前后端分离已成为互联网项目开发的业界标准使用方式,通过Nginx代理+Tomcat的方式有效的进行解耦,并且前后端分离会为以后的大型分布式架构、弹性计算架构、微服务架构、多端化服... 查看详情

javaweb项目放弃jsp?为什么要前后端解耦?为什么要前后端分离?

前戏前后端分离已成为互联网项目开发的业界标准使用方式,通过nginx+tomcat的方式(也可以中间加一个nodejs)有效的进行解耦,并且前后端分离会为以后的大型分布式架构、弹性计算架构、微服务架构、多端化服务(多种客户端... 查看详情

javaweb:vue&element&综合案例

↑↑Java语法基础—>小型项目练习—>MySQL更多学习内容均更新在专栏了,记得关注专栏哦↑↑🍬JDBC:从CRUD开始,理解JDBC中的各个对象作用,掌握Druid的使用🍬Maven从安装到手把手教学进行项目管理... 查看详情

javaweb(黑马程序员:数据库部分)

一、JavaWeb介绍1、网站的工作原理2、JavaWeb技术栈二、数据库1、SQL分类2、DDL(操作数据库、表等)2.1操作数据库2.2操作表2.2.1查询表2.2.2创建表2.2.3删除表2.2.4修改表2.2.5数据类型3、DML(对表中的数据进行增删改)3.1添加数据3.2修改数据... 查看详情

ck2040-spring高效开发带前后端开发完整电商平台

CK2040-Spring高效开发带前后端开发完整电商平台随笔背景:在很多时候,很多入门不久的朋友都会问我:我是从其他语言转到程序开发的,有没有一些基础性的资料给我们学习学习呢,你的框架感觉一下太大了,希望有个循序渐... 查看详情

黑马程序员_轻松掌握javaweb视频-视频列表

1第一天-java基础增强 查看详情

《黑马旅游网》综合案例九旅游线路查询(代码片段)

参数传递header.html:(注入导入js/getParameter.js文件)<!--头部start--><scriptsrc="js/getParameter.js"></script><script>//给搜索按钮绑定单击事件,获取搜索输入框的内容$("#search-button").click(function()//线路名称varrname=$("#search_inp... 查看详情