步入JAVA——环境搭建与项目通览

前言

        在这篇文章中,荔枝会介绍如何配置Java后端开发环境并借助一个Java web项目简单介绍一下Java的后端开发逻辑。与python的后端开发逻辑是类似的,Java的后端开发其实也是通过一个个类来实现的。对于像荔枝这种小白白来说,入门的第一个练手Java后端项目一般都是选择基于Tomcat Web应用服务器的JSP开发比较友好哈哈哈哈。


文章目录

前言

一、JDK下载配置和Tomcat的下载

1.1 Java的JDK选择与下载

1.2 Tomcat的下载使用

1.3 配置Tomcat的环境变量

1.4 IDEA中Tomcat的配置

二、一个Java web开发下项目

2.1 工程目录:

2.2 一个例子:

2.2.1 servlet

2.2.2 service层:

2.2.3 pojo:

2.2.4 DAO

总结


一、JDK下载配置和Tomcat的下载

1.1 Java的JDK选择与下载

        现在Java语言的JDK版本的选择有很多,使用较多的就是JDK17和JDK8。“你发任你发,我用版本8”,JDK8自从发布以来就热度不减,但是未来的趋势可能更多地去偏向于使用JDK17,毕竟垃圾回收器可以有效的提升项目的性能,荔枝在下面整理了两种JDK包的下载和配置:

JDK8下载安装

https://www.oracle.com/cn/java/technologies/downloads/

百度网盘:
链接:https://pan.baidu.com/s/1iOhPInWh2l3VNqEbQ8j0fQ 
提取码:6666

首先直接到ORACLE的官网,直接找到下载的地方选择合适的版本

 下载到指定的目录下面即可,注意地址不要带有中文,jre可以不安装。

 之后就可以配置环境变量啦,以荔枝的win10为例,点开设置——系统——关于,下拉到到最下面选择高级系统设置

点击环境变量并在系统变量中添加JAVA_HOME的配置,变量值就是你自己的JDK包下载的路径,双击path,添加%JAVA_HOME%\bin

这样基本的JDK环境就配置完成啦!

JDK17下载安装

百度网盘

链接:https://pan.baidu.com/s/1mFl221lbGBp6SPNc_qycOw 
提取码:6666

官网下载同样根据自己电脑的配置来选择合适的JDK版本,或者直接在荔枝的百度网盘链接下载 

其余的操作都是一样的,需要注意的是安装完JDK17之后再环境变量哪里会默认有路径的配置,这时候我们也是仅仅需要配置好JAVA_HOME即可。

1.2 Tomcat的下载使用

         首先我们需要直到Tomcat的概念:Tomcat是由Apache公司开源的一个轻量级的网络应用服务器,简单的去理解就是Tomcat其实就是提供一个服务让别人也能够访问到你本机上运行的HTML网页。

下载地址:

https://tomcat.apache.org/download-80.cgi

选择合适的版本下载安装即可,记住在安装Tomcat之前必须要保证前面Java的JDK已经下载并配置好JAVA_HOME了,Tomcat下载下来之后就是一个压缩包,解压之后就可以

 接着在命令行工具中测试一下环境安装的有没有问题,启动Tomcat:首先cd进入Tomcat下载的路径输入startup,会看到弹出Tomcat窗口证明一切正常,安装成功。

1.3 配置Tomcat的环境变量

        Tomcat在系统变量中的配置还是更上面配置JDK的方法是一样的,首先将安装的根路径命名为·一个变量CATALINA HOME,之后再在path变量中去配置真实的系统环境变量。

 这样子系统的Tomcat就配置完毕了

1.4 IDEA中Tomcat的配置

点击Edit Configurations编辑, 

        之前没有配置过的可以点击Configiure来选择Tomcat的安装地址, 之后可以改变一下下面Tomcat的运行端口8080,荔枝因为之前8080端口被占用了,所以我改了一个端口。

 配置好后运行一下项目,项目也就可以正常跑起来了。


二、一个Java web开发下项目

2.1 工程目录:

  • src:后台代码目录接口
  • dao:持久层代码
  • pojo:实体类
  • service:业务层代码,接口和impl
  • servlet:控制器
  • util:工具类 

2.2 一个例子:

2.2.1 servlet

路由入口

package com.atm.servlet;
import...
/**
*管理员登录
*/
@WebServlet("/login")
public class AdminLoginServlet extends HttpServlet{protected void doPost(HttpServletRequest request,HttpServletResponse response)throws ServletException,IOException{//1,获得请求参数String name = request.getParameter("name");String password = request.getParameter("password");//2.调用业务层代码处理AdminUserService adminUserService = new AdminUserServiceImpl();try{Manager manager = adminUserService.findManager(name,password);if(manager =null){//登录失败request.setAttribute(s:"error",o:"用户登录失败");request.getRequestDispatcher(s:"changepage/login.jsp").forward(request,response);}else{//登录成功跳转到后台用户列表页response.sendRedirect(s:"list");}}catch(Exception e){e.printStackTrace();}}protected void doGet(HttpServletRequest request,HttpServletResponse response)throws ServletException,IOException{doPost(request,response);}
}

        注意在调用业务层的代码逻辑时使用的是 AdminUserServiceImpl 的构造函数创建了一个对象,并将该对象赋值给 adminUserService。由于 AdminUserServiceImpl 类实现了 AdminUserService 接口,因此可以将 AdminUserServiceImpl 对象赋值给 AdminUserService 类型的变量。

2.2.2 service层:

业务接口

package com.atm.service;
/**
*管理员业务接口
*/    
public interface AdminUserService{/***根据账户密码查询管理员*@aparam name*@aparam name*@aparam name*@return*/public Manager findManager(String name,String password) throws Exception;
}

impl

        接口的实现类,实现接口的所有抽象方法。接口中只定义了接口的签名,并没有具体的实现逻辑,因此需要一个接口实现类来实现具体的接口逻辑。

package com.atm.service.impl;
import com.atm.pojo.Manager;
import com.atm.service.AdminUserService;public class AdminUserServiceImpl implements AdminUserService{@Overridepublic Manager findManager(String name,String password) throws Exception {return adminUserDao.findManager(name,password);}
}

2.2.3 pojo:

封装实体类,主要是来操作相关的数据库代码

package com.atm.pojo;
public class Manager{private Integer id;private String name;private string password;public Integer getId(){return id;}public void setId(Integer id)this.id = id;}public String getName(){return name;}
}

2.2.4 DAO

        完成管理员用户的持久层操作,dao层主要是实现业务的基础逻辑,像这里的查询数据库并将查询到的数据封装在一个Manager对象里面并返回。

public class AdminUserDao{/***根据用户名和密码查询用川*@param name*@param password*@return*@throws Exception*/public Manager findMananger(String name,String password)throws Exception{Connection connection = DBUtils.getConnection();PreparedStatement preparedStatement = connection.prepareStatement(sql:"select * from manage where name=?and password=?");preparedstatement.setstring(parameterIndex:1,name);preparedstatement.setstring(parameterIndex:2,password);ResultSet resultSet = preparedStatement.executeQuery();Manager manager = null;if(resultSet.next()){manager = new Manager();manager.setId(resultSet.getInt(columnIndex:1));manager.setName(resultSet.getstring(columnIndex:2));manager.setPassword(resultSet.getstring(columnIndex:3));}return manager;}}

总结

        在这篇文章中,荔枝主要简单记录了一下Java后端开发的基本配置以及相应的一个小项目中一个登录功能的代码,荔枝也是想通过这个小的项目来帮助自己回顾一下相应的基础Java后端开发知识,希望能帮助到小伙伴们~~~

今朝已然成为过去,明日依然向往未来!我是小荔枝,在技术成长的路上与你相伴,码文不易,麻烦举起小爪爪点个赞吧哈哈哈~~~ 比心心♥~~~

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

GitHub快速上手--GitHub高效操作教程

一、前言 如果你正在看我的这篇文章,说明你已经对GitHub有了一些基础的了解,下面我们将详细叙述每一步的操作,以保证你能够快速上手GitHub,完成对代码的管理。 二、创建仓库 登录GitHub账号,点击页面右上角的加号&am…

idea创建web项目没有jsp选项,不识别jsp,没有tomcat选项

如果你的idea的web项目中没有jsp选项 同时也不识别jsp 那么建议你检查一下你的idea是否为社区版 如果是社区版那么没有jsp的问题无法解决,这只是无法识别,但是语句对的可以正常运行 解决这个问题建议换个idea 至于tomcat, 在plugins中搜s…

人工智能与Chat GPT

一本书全面掌握ChatGPT,既有向ChatGPT提问的技巧, 也有构建自己的ChatGPT模型的方法,涵盖开发背景、关联技术、使用方法、应用形式、实用案例等 人工智能是我们这个时代最热门的话题,人们既希望它能代替我们做一些工作&#xff0c…

Azure 中 Linux的时间同步问题

问题概述 Azure环境中,将群集主机放置在不同的可用区。由于网络限制比较严格没有开启外部或内部NTP时间同步,而是考虑用Azure主机的时间同步,但群集会由于时间差异而出现异常告警信息。 问题分析 问题主要是以下原因形成: 自…

Android Glide预加载RecyclerViewPreloader,ViewPreloadSizeProvider,kotlin

Android Glide预加载RecyclerViewPreloader,ViewPreloadSizeProvider,kotlin implementation com.github.bumptech.glide:glide:4.15.1implementation ("com.github.bumptech.glide:recyclerview-integration:4.14.2") {// Excludes the support library …

【新版系统架构】第十二章-信息系统架构设计理论和实践

软考-系统架构设计师知识点提炼-系统架构设计师教程(第2版) 第一章-绪论第二章-计算机系统基础知识(一)第二章-计算机系统基础知识(二)第三章-信息系统基础知识第四章-信息安全技术基础知识第五章-软件工程…

python接口自动化(二十三)--unittest断言——上(详解)

简介 在测试用例中,执行完测试用例后,最后一步是判断测试结果是 pass 还是 fail,自动化测试脚本里面一般把这种生成测试结果的方法称为断言(assert)。用 unittest 组件测试用例的时候,断言的方法还是很多的…

SpringBoot配置动态定时任务

1.配置ScheduledTask 主要是实现SchedulingConfigurer,动态传入cron。 package com.hzl.boot.config;import lombok.Data; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.context.annotation.Propert…

多模态系列论文----最详细的多模态论文总结(BLIP、BEIT、CoCa等)

1 多模态概述 多模态指的是多种模态的信息数据,包括:文本、图像、视频、音频等。多模态任务是指需要同时处理两种或多种不同类型的数据的任务。近年来,随着深度学习技术的发展,多模态任务取得了显著的进步。特别是VIT&#xff08…

模拟Toast 自定义提示框

模拟Toast 自定义提示框 前言 为满足产品需求,发现现在的ToastUtils不是太重就是不太满足需求,这边写个简单易用的工具,几十行代码解决的问题,还要啥轮子。 功能如下: 自动消失相对锚点位置 可配置,正中间&#x…

RTOS任务切换过程中堆栈的使用情况

我们知道 Cortex-M3 系列单片机内部有双堆栈机制。即 Cortex‐M3 拥有两个堆栈指针:主堆栈(MSP)和进程堆栈(PSP)。任一时刻只能使用其中的一个。通过控制寄存器 CONTROL 中的选择位进行控制。 两个堆栈指针如下&#…

SparkJDBC性能优化指南

前言 本文以Mysql为例。Spark作为一种强大且广泛应用于大数据处理的分布式计算框架,有着出色的性能和可伸缩性。在使用Spark处理大规模数据时,往往需要与关系型数据库MySQL进行交互。然而,由于MySQL和Spark本身的特性之间存在一些差异,直接使用Spark读写MySQL的默认配置可…