Java Web

引言


Java作为一门成熟且功能强大的编程语言,凭借其跨平台性、稳定性及丰富的生态系统,在Web开发领域占据着重要地位。Java Web开发通过Servlet、JSP(JavaServer Pages)、Spring框架等核心技术,为开发者提供了构建动态网站、企业级应用及分布式系统的强大工具。

在金融、电商、物联网等领域,Java Web技术被广泛应用于后端服务开发,支撑着海量用户的数据处理和业务逻辑。尽管新兴语言和框架不断涌现,Java凭借其成熟的生态、活跃的社区支持以及对新技术的持续适配能力,始终保持着行业竞争力。本文将简单探讨Java Web的学习。

基础概念与技术组成


Java Web是基于B/S架构,使用Java技术解决Web开发问题的技术总和。其核心包括:

  • Servlet:处理HTTP请求的服务器端组件,生命周期涵盖init()service()destroy()
  • JSP:动态网页技术,允许在HTML中嵌入Java代码,简化页面开发,本质是编译后的Servlet。
  • MVC架构:通过Servlet(控制器)、JavaBean(模型)、JSP(视图)实现分层开发。
  • Web容器:如Tomcat,负责解析Servlet/JSP,管理请求与响应。
  • HTTP协议:理解请求方法(GET/POST)、状态码(200/404)、头信息是基础。
  • 数据库交互:JDBC直接操作数据库,或通过ORM框架(如Hibernate、MyBatis)简化映射。

  • 技术栈与工具链

  • 后端框架:Spring Boot简化配置,Spring MVC实现MVC模式,Spring Security处理安全。
  • 前端技术:HTML/CSS/JavaScript基础,结合Vue.js/React构建交互界面,AJAX实现异步通信。
  • 数据库:MySQL/PostgreSQL存储数据,Redis作为缓存提升性能。
  • 构建与依赖管理:Maven/Gradle管理项目依赖,Tomcat/Jetty部署应用。
  • 其他工具:Postman测试API,Git版本控制,Docker容器化部署。
层级技术/框架
前端HTML/CSS/JavaScript、Vue.js / React / Bootstrap
后端Java、Servlet/JSP、Spring、Spring Boot、MyBatis/Hibernate
数据库MySQL、PostgreSQL、Oracle
构建工具Maven、Gradle
部署环境Tomcat、Jetty、Nginx、Docker
安全框架Spring Security、Shiro
接口文档Swagger、Postman

学习路径建议

  1. 掌握数据类型、OOP、集合框架、异常处理、多线程、I/O流。
  2. 学习Servlet生命周期、JSP语法与EL表达式、Filter/Listener机制。
  3. 通过JDBC连接数据库,执行SQL语句,了解事务管理。
  4. HTML/CSS布局,JavaScript交互,Bootstrap快速开发响应式页面。
  5. Spring Boot整合Web开发,MyBatis简化数据库操作。
  6. 从简单博客、商城入手,实践用户认证、订单管理等功能,部署到云服务器。

学习资源推荐

  • Spring、Tomcat、MySQL的官方文档权威且更新及时。
  • 菜鸟教程、W3School适合前端基础,优快云、博客园有大量实战案例。
  • 《Head First Servlet & JSP》《Spring实战》适合系统学习。
  • GitHub上参与Java Web项目,如电商系统、CMS,提升代码能力。
  • B站等,结合案例讲解框架使用。

Java Web开发主要阶段

开发环境搭建

选择开发工具与搭建环境

  • IDE:如IntelliJ IDEA、Eclipse或NetBeans。(这里IDEA用的专业版,社区版功能等会少很多,而且有些东西也可以直接在创建项目的选择时候配置好)

  • 环境选择:JDK 17+、Maven/Gradle、Docker(可选)。(这里注意要选择好开发的环境,java的环境很严格,各个版本之间不兼容,比如java5和java8和现在的都不能兼容,所以每个项目用的什么版本的java得了解清楚,不然无法测试运行)

  • 版本控制:使用Git进行代码管理,通常搭配GitHub、GitLab或Bitbucket。

配置服务:

  • Web服务器:如Apache Tomcat、Jetty等。

  • 数据库服务器:如MySQL、PostgreSQL、Oracle等。

(根据个人需求与习惯选择相对的)

项目创建

  • 创建Maven或Gradle项目,配置依赖和构建工具。

  • 设置项目的目录结构,通常包括src、resources、webapp等目录。

  • 添加依赖(pom.xml),例如引入 Spring Boot、MyBatis、MySQL 等依赖。

编码与实现

  • 后端开发

    • 编写Servlet或使用框架:根据需求选择合适的技术。如:Servlet和JSP,编写Servlet处理HTTP请求,使用JSP生成动态网页内容。

    • 框架使用:如Spring Boot、Spring MVC、Hibernate等框架,提高开发效率和代码质量。

    • 处理请求和响应:编写Java类和方法,实现业务逻辑和页面跳转。

  • 前端开发

    • HTML/CSS/JavaScript:编写静态页面和动态交互功能。

    • 前端框架:如Vue.js、React、Angular等,提升前端开发效率和用户体验。

  • 数据库开发

    • 编写SQL语句,实现数据的增删改查操作。

    • 与数据库交互:使用JDBC或ORM框架(如MyBatis、Hibernate)进行数据库访问。

测试与调试

  • 调试工具
    • 使用IDE内置的调试功能。
  • 单元测试

    • 使用JUnit、TestNG等工具对Java类和方法进行单元测试。

  • 集成测试

    • 测试各个模块之间的交互和集成后的系统功能。

  • 系统测试

    • 测试整个系统的功能、性能等方面的问题。

部署与发布

  • 打包应用

    • 使用Maven或Gradle将项目打包成WAR文件。

  • 部署到服务器

    • 将WAR文件部署到生产环境的Web服务器(如Tomcat)。

  • 配置服务器

    • 配置服务器的运行环境,包括JDK、数据库连接、日志等。

简单入门项目介绍

使用Spring Boot做一个简单的数据库访问,增删改查。

Spring Boot:简化配置,快速搭建项目。

选择需要用的JDK环境,java版本

然后下一步选择用到的依赖,后续再根据需要选择用到的依赖手动添加或者依赖的版本。

这里用到的是Spring Web和MySQL Driver

项目结构

mybatis下的文件结构

代码

连接数据库

#???
spring:
  datasource:
    druid:
      driver-class-name: com.mysql.cj.jdbc.Driver
      url: jdbc:mysql://localhost:3306/mybatis
      username: root
      password: 123456

#mybatis
mybatis:
  #  Mapper?????? classpath????? resources ???
  mapper-locations: classpath:/mapper/*.xml
  #  ???????
  type-aliases-package: com.example.mybatis.pojo
  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

封装信息

private int id;
private String username;
private String email;
private String password;
private String phone;
private String address;
private int age;
private int gender;
private Date createdAt;
private Date updatedAt;

数据访问

@RestController
public class UserController {

    @Autowired
    private UserMapper userMapper;

    @GetMapping("getUserById")
    public User getUserById(int id) {
        return userMapper.selectUserById(id);
    }

    @GetMapping("getUserByName")
    public User getUserByName(String name) {
        return userMapper.selectUserByName(name);
    }

    //根据用户名删除用户
    @GetMapping("getUserByUsername")
    public void deleteUserByUsername(String username) {

    }
}

 功能模块

@Mapper
    public interface UserMapper {
    
        @Select("select * from user where id = #{id}")
        User selectUserById(int id);
    
        @Select("select * from user where username = #{name}")
        User selectUserByName(String name);
    
        @Delete("delete from user where username = #{username}")
        int deleteUserByUsername(String username);
    
    }

 数据库操作语句

在java中进行的对数据库的操作增删改查的语句

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.example.mybatis.mapper.UserMapper">

    <select id="selectUserById" resultType="User">
        SELECT * FROM user
        WHERE id = #{id}
    </select>
    <select id="selectUserByName" resultType="com.example.mybatis.pojo.User">
        SELECT * FROM user
        WHERE username = #{name}
    </select>
    <delete id="deleteUserByUsername">
        DELETE FROM user
        WHERE username = #{username}
    </delete>

</mapper>

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值