第二章:项目环境搭建【基于Servlet+JSP的图书管理系统】

news2024/12/24 8:43:07

在这里插入图片描述

环境搭建

1.项目工具

  本项目涉及到的工具都有在云盘提供,自行下载即可

  • JDK8
  • IDEA2021
  • Tomcat8.5
  • MySQL的客户端工具SQLYog

2.项目搭建

  通过IDEA创建maven项目。勾选脚手架工具。选择maven-archetype-webapp

在这里插入图片描述

设置项目的基础信息

在这里插入图片描述

3.基本配置

3.1 JDK配置

  JDK使用的是JDK8。我们也需要配置下:在File中选择 Project Structure

在这里插入图片描述

然后指定JDK版本即可

在这里插入图片描述

3.2 Maven配置

  Maven会管理我们的相关jar包依赖。需要去中央仓库下载相关的jar。但是中央仓库在国外。下载速度很慢。这时我们需要添加下阿里云的镜像地址。我们先找到Maven的配置信息

在这里插入图片描述

然后把提前给大家准备的settings.xml文件放到该目录下即可

在这里插入图片描述

3.3 Tomcat配置

  Tomcat是我们的基础Web环境。先通过提供的Tomcat压缩文件。在本地解压缩一个Tomcat环境。我就在E盘的Tomcat目录下放了一个Tomcat8.5的环境。

在这里插入图片描述

然后在IDEA中配置Tomcat,点击下图中的Add Configuration 弹出下面的窗口。

在这里插入图片描述

然后点击左侧的Add new ...

在这里插入图片描述

得到下面的窗口。然后配置Tomcat8的环境

在这里插入图片描述

然后需要选择下需要部署的项目

在这里插入图片描述

在这里插入图片描述

把项目的应用路径统一设置为/

在这里插入图片描述

Tomcat服务界面介绍

在这里插入图片描述

启动Tomcat服务出现端口被占的情况。我们修改端口即可

在这里插入图片描述

看到如下的界面。表示Tomcat配置成功

在这里插入图片描述

启动Tomcat在控制台看到的乱码情况,我们只需要调整下配置文件中的编码方式

在这里插入图片描述

调整logging.properties中的如下编码方式为GBK即可

在这里插入图片描述

搞定

在这里插入图片描述

4.项目结构

  项目是一个Maven项目。所以我们需要创建相关的目录结构。比如java 和 resources

在这里插入图片描述

在这里插入图片描述

项目结构介绍

  • java:存放相关的java代码
  • resources: 存放相关的配置文件
  • webapp:web资源【图片、css、js、jsp文件】
  • target:运行时的编译目录
  • pom.xml:maven的核心文件,我们需要添加的相关的依赖都是在该文件中配置的

在这里插入图片描述

5.添加依赖

  然后我们可以在pom.xml中添加如下的相关依赖

<dependencies>

  <dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>8.0.19</version>
  </dependency>

  <dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>javax.servlet-api</artifactId>
    <version>4.0.1</version>
    <scope>provided</scope>
  </dependency>

  <!-- 通过Apache DBUtils来完成数据库的操作 -->
  <dependency>
    <groupId>commons-dbutils</groupId>
    <artifactId>commons-dbutils</artifactId>
    <version>1.6</version>
  </dependency>
  <!-- 前端页面模板使用的是JSP 那么jstl标签库是必须的 -->
  <dependency>
    <groupId>javax.servlet.jsp.jstl</groupId>
    <artifactId>jstl-api</artifactId>
    <version>1.2</version>
  </dependency>
  <dependency>
    <groupId>taglibs</groupId>
    <artifactId>standard</artifactId>
    <version>1.1.2</version>
  </dependency>
  <dependency>
    <groupId>org.glassfish.web</groupId>
    <artifactId>jstl-impl</artifactId>
    <version>1.2</version>
  </dependency>
  <!-- 添加JSON数据的管理工具 FastJSON -->
  <dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>fastjson</artifactId>
    <version>1.2.80</version>
  </dependency>
  
  <dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>4.11</version>
    <scope>test</scope>
  </dependency>
</dependencies>

注意添加了依赖后我们一定要加载依赖

在这里插入图片描述

看到下面信息表示添加成功

在这里插入图片描述

6.整合静态资源

6.1 整合登录页面

  前端页面展示这块我们就通过已经准备好的页面静态文件来实现,我们先把相关的文件导入进去。先来看看页面效果。

登录页面效果:

在这里插入图片描述

首先我们需要拷贝相关的静态资源文件

  • css
  • js
  • 图片
  • 插件

在这里插入图片描述

然后在webapp目录下创建login.jsp文件。然后把静态资源文件中的login-v2.html中的HTML代码拷贝到login.jsp文件中。

在这里插入图片描述

如果要修改登录页面的背景图片。你只需要添把更新的图片保存到webapp/img目录中。同时覆盖文件名login-background.jpg

在这里插入图片描述

然后搞定!

6.2 整合首页页面

  先来看下主页面的布局效果

在这里插入图片描述

然后我们需要在webapp目录下创建两个jsp文件[main.jsp、home.jsp]

在这里插入图片描述

  然后分别把模板资源中的index.html中的代码拷贝到main.jsp中。然后把index_v2.html中的资源拷贝到home.jsp中。同时修改main.jsp中对首页资源的访问从原来的index_v2.html修改为home.jsp即可.
在这里插入图片描述搞定!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/683080.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

前端Vue自定义服务说明弹窗弹框 自下而上底部弹框

前端Vue自定义服务说明弹窗弹框 自下而上底部弹框&#xff0c; 请访问uni-app插件市场地址&#xff1a;https://ext.dcloud.net.cn/plugin?id13108 效果图如下&#xff1a; # cc-serviceDialog 自定义服务说明弹窗 自下而上 底部弹窗 #### 使用方法 使用方法 <!-- 服务…

开发吐槽,谁说测试是二等公民,我们才是好吧

很多测试都认为自己是团队中的二等公民&#xff0c;从而各种看衰作贱自己。 这不&#xff0c;昨天在知乎上就看到一篇帖子&#xff1a;一女测试在团队中各种嘲讽自己的测试团队&#xff0c;“测试是低人一等的职业”&#xff0c;时刻劝说大家转开发。最后团队领导受不了&#…

机器学习:简介与类型

从翻译应用、商品推荐、医疗诊断到自动驾驶汽车&#xff0c;机器学习 (ML) 作为一种技术&#xff0c;都有用武之地。机器学习提供了一种解决问题、回答复杂问题以及创建新内容的新方式。机器学习可以预测天气、估算行程时间、推荐歌曲、自动补全句子、汇总文章以及生成全新的图…

【数据结构】串的基本定义及操作

&#x1f387;[数据结构]串的基本定义及操作&#x1f387; &#x1f308;积薪高于山&#xff0c;焉用先后别 &#x1f308; &#x1f31f; 正式开始学习数据结构啦~此专栏作为学习过程中的记录&#x1f31f; 文章目录 &#x1f387;[数据结构]串的基本定义及操作&#x1f387;&…

【运维心得】SAP EPM Add-In加载错误的另类解决方案

关键字&#xff1a;SAP BPC EPM OFFICE WPS 今天又解决了一个诡异的问题&#xff0c;记录一下&#xff0c;以备将来能够用上。 目录 问题现象 网上的方法 启发和解决 结论 问题现象 财务SAP系统需要BPC模块做报表&#xff0c;安装了OfficeEPM Add-In以后&#xff0c;结果…

抖音私域怎么做?

“私域流量”是如今备受市场瞩目的话题之一。众所周知&#xff0c;腾讯、阿里巴巴、抖音等互联网巨头已经开始布局私域资源&#xff0c;因此许多企业都希望在这些平台上获取生意增长。作为具有6亿日活跃用户的短视频平台&#xff0c;抖音也为企业提供了私域运营的阵地。那么&am…

2023年湖北黄冈人社局初、中级职称怎么评?申报条件是什么?启程别

2023年湖北黄冈人社局初、中级职称怎么评&#xff1f;申报条件是什么&#xff1f;启程别 想要评过人社局的初、中级职称&#xff0c;首先要满足申报条件&#xff0c;其次是要准备好申报资料&#xff0c;最后等待申报时间提交资料&#xff0c;等待结果。湖北目前改外全面线上申报…

SAP从入门到放弃系列之BOM技术类型-派生BOM-Part5

文章导航目录 一、概述二、基本概念-BOM技术类型三、BOM技术类型详解3.1、BOM技术类型-简单BOM&多重BOM 3.2、BOM技术类型-派生BOM 四、测试示例&#xff1a;4.1、数据准备4.2、创建派生BOM4.3、调整BOM组&#xff0c;更新派生BOM 一、概述 本来想在介绍BOM组的时候写这个…

hbase协处理器编码实例

Observer协处理器通常在一个特定的事件&#xff08;诸如Get或Put&#xff09;之前或之后发生&#xff0c;相当于RDBMS中的触发器。Endpoint协处理器则类似于RDBMS中的存储过程&#xff0c;因为它可以让你在RegionServer上对数据执行自定义计算&#xff0c;而不是在客户端上执行…

MATLAB 之 对话框设计实例和菜单设计

这里写目录标题 一、对话框设计实例1. 数值转化2. 图形演示 二、菜单设计1. 建立用户菜单2. 菜单对象常用属性3. 快捷菜单 一、对话框设计实例 在上一篇博客当中&#xff0c;我们介绍了控件的基本操作&#xff0c;这是建立对话框的基础。下面我们举两个例子&#xff0c;用以说…

软件测试工程师最常用的Linux系统命令大全(汇总)

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 cd命令 这是一个…

最新导则下生态环评报告编制技术

根据生态环评内容庞杂、综合性强的特点&#xff0c;依据生态环评最新导则&#xff0c;将内容分为4大篇章(报告篇、制图篇、指数篇、综合篇)、 10大专题(生态环评报告编制、土地利用图的制作、植被类型及植被覆盖度图的制作、物种适宜生境分布图的制作、生物多样性测定、生物量…

开窗函数之聚合、取特定值、排名

一&#xff0c; 聚合开窗函数sum(score) over(partition by name ) 二&#xff0c;开窗函数之first_value&#xff0c;last_value&#xff0c;lead&#xff0c;lag 三&#xff0c;排名开窗函数ROW_NUMBER、DENSE_RANK、RANK 一&#xff0c;开窗函数的语法 开窗函数的语法为&am…

Pinia理解【Vue3】

什么是Pinia Pinia是Vue的专属的最新状态管理库&#xff0c;是Vuex状态管理工具的替代品 优势&#xff1a; 提供了更加简单的API (去掉了mutation)提供符合组合式风格的API(和Vue3新语法统一)去掉了 modules 的概念&#xff0c;每一个 store 都是一个独立的模块搭配 TypeScr…

RabbitMQ Exchange类型和工作模式介绍

RabbitMQ Exchange类型和工作模式介绍 一RabbitMQ Exchange类型1.1.Fanout1.2.Direct1.3.Topic1.4.Headers 二 RabbitMQ 工作模式介绍2.1.work工作模式(资源的竞争)2.2.publish/subscribe发布订阅(共享资源)2.3.routing路由模式应用--direct交换器 2.4.topic 主题模式(路由模式…

一键轻松造数据:通过Postman实现表单提交

一、原始需求的诞生 在测试的过程中&#xff0c;需要大量的表单。于是我选择了通过postman发送表单提交的接口来造数据。 如上图所示&#xff0c;表单提交接口所需的参数以及请求体中需模拟的IP地址。参数为 {{}} 的表示需要不同的实参&#xff0c;至于原因就不在这里赘述了。如…

618手机大战:各大品牌花式秀战报,但难掩冷淡行情

在手机出货量持续下行的态势下&#xff0c;各大手机厂商普遍对618这个年中大促寄予厚望&#xff0c;希望通过各种促销手段&#xff0c;扭转销售颓势。 比如&#xff0c;今年5月下旬&#xff0c;小米、荣耀、OPPO、vivo等厂商就已经开启了降价、分期免息等优惠活动&#xff0c;…

Vue3自定义指令实现按钮权限

一、需求前提 登录成功后&#xff0c;后端直接返回了用户的所有权限&#xff08;路由权限按钮权限&#xff09;&#xff0c;在已经实现菜单权限的基础上&#xff0c;实现每个页面的按钮权限&#xff0c;树形数据结构如下&#xff1a; { "roles": ["admin&q…

嵌入式实时操作系统的设计与开发New(六)

aCoral的优先级与数字大小成反比&#xff0c;即&#xff1a;数字越大&#xff0c;优先级越低。 #define MAX_PRIO_NUM ((CFG_MAX_THREAD1) & 0xff) #define MINI_PRIO CFG_MAX_THREAD //最低优先级40typedef enum{ACORAL_INIT_PRIO; //init线程独有的0优先级ACORAL_MAX_PR…

如何刷新 DNS 缓存 (macOS, Linux, Windows)

如何刷新 DNS 缓存 (macOS, Linux, Windows) Unix Linux Windows 如何刷新 DNS 缓存 (macOS, FreeBSD, RHEL, CentOS, Debian, Ubuntu, Windows) 请访问原文链接&#xff1a;https://sysin.org/blog/how-to-flush-dns-cache/&#xff0c;查看最新版。原创作品&#xff0c;转载…