Java初学者项目实战:创建一个简易的个人网站

Java不适合直接创建纯静态个人网站,需搭配Spring Boot与Thymeleaf实现动态页面;新手易因静态资源路径、视图配置错误导致404;推荐GitHub Pages托管静态简历网站。

Java 本身不直接“创建个人网站”——它不是前端渲染语言,也不是静态站点生成器。如果你用 Java 做个人网站,实际走的是「后端服务 + 前端页面」路线,比如用 Spring Boot 提供接口和页面跳转,用 Thymeleaf 或 JSP 渲染 HTML。但对初学者来说,这容易陷入配置地狱、路径混乱、404 多到怀疑人生。

为什么直接用 Java 写个人网站容易卡在第一步

新手常以为“写个 Java 类 → 运行 → 网站就出来了”,结果发现:localhost:8080 打不开,index.html 放哪都不加载,Whitelabel Error Page 反复出现。根本原因是:Spring Boot 默认不自动托管静态资源,且视图解析器没配对,连最基础的 HTML 都返回 404。

  • 静态资源(HTML/CSS/JS)必须放在 src/main/resources/staticsrc/main/resources/templates(后者需模板引擎配合)
  • src/main/resources/static/index.html 可直访,但无法使用 Java 变量或逻辑
  • 想让 Java 控制内容(比如动态显示“欢迎,张三”),就得用 templates + Thymeleaf,且控制器方法必须返回字符串视图名,不能是 voidString 拼接 HTML
  • @RestController 返回 JSON,不会走视图解析;要用 @Controller

最简可行路径:Spring Boot + Thymeleaf 渲染单页

这是平衡“能跑起来”和“带点 Java 逻辑”的最小闭环。不用数据库,不搞登录,只让首页显示时间、姓名、技能列表。

步骤如下:

  • 用 start.spring.io 选 Spring WebThymeleaf 依赖,生成项目
  • 确保 pom.xml 包含 spring-boot-starter-thymeleafspring-boot-starter-web
  • src/main/resources/templates/ 下新建 index.html,开头加:
    
    
  • 写一个控制器类,比如 MainController.java,内容为:
    @Controller
    public class MainController {
        @GetMapping("/")
        public String home(Model model) {
            model.addAttribute("name", "李四");
            model.addAttribute("skills", Arrays.asList("Java", "Git", "HTML"));
            model.addAttribute("now", LocalDateTime.now());
            return "i

    ndex"; // 对应 templates/index.html } }
  • 启动应用,访问 http://localhost:8080 即可看到渲染结果

常见 404 场景与修复点

不是代码写错,而是路径/命名/配置三者没对齐:

  • templates/index.html 写成 templates/Index.htmltemplates/index.htm → Thymeleaf 默认只认 .html 小写后缀
  • 控制器返回 "index",但文件放在 static/ 下 → static 是纯静态目录,不走 Thymeleaf 解析
  • 忘了在 application.properties 加:
    spring.thymeleaf.cache=false
    spring.thymeleaf.enabled=true
    (开发时关缓存,否则改了 HTML 不生效)
  • IDE 没编译 resources 目录 → 检查 Maven 的 Resources 是否被标记为 “Sources Root”(IntelliJ 右键目录 → Mark as → Resources Root)

如果真只想“放个个人网站”:别用 Java

纯展示型网站(简历、作品集、博客简介),推荐直接用 GitHub Pages + HTML/CSS/JS。零部署、零服务器、免费、秒上线。Java 在这里没有优势,只有额外复杂度:你得装 JDK、Maven、IDE、理解 Spring 生命周期、处理 CORS、调端口、打包 JAR……而最终用户看到的,只是和 GitHub Pages 一模一样的静态页面。

真正需要 Java 的场景是:你要做登录态管理、读取本地 Markdown 渲染文章、调用天气 API 显示实时数据、或者把网站当练手项目来学 MVC 分层——这些才值得为 Java 多花三天配置时间。