首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

Spring Boot整合JSP實現登錄頁面功能

     編輯:Java 相關知識

Spring Boot 默認推薦使用 Thymeleaf 等模板引擎,但許多遷移項目仍需使用 JSP。本文詳細說明如何在 Spring Boot 中配置 JSP 視圖解析、控制器跳轉及表單提交處理,構建一個簡單的登錄頁面。

一、POM 依賴配置

需引入 Tomcat 嵌入式 JSP 引擎與 JSTL,標記為 provided 避免打包衝突:

<dependency>
    <groupId>org.apache.tomcat.embed</groupId>
    <artifactId>tomcat-embed-jasper</artifactId>
    <scope>provided</scope>
</dependency>
<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>jstl</artifactId>
    <scope>provided</scope>
</dependency>

二、視圖解析器配置

package com.xxxx.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.*;
import org.springframework.web.servlet.view.InternalResourceViewResolver;

@Configuration
public class JspConfig implements WebMvcConfigurer {
    @Bean
    public InternalResourceViewResolver viewResolver() {
        InternalResourceViewResolver resolver = new InternalResourceViewResolver();
        resolver.setPrefix("/WEB-INF/views/");
        resolver.setSuffix(".jsp");
        return resolver;
    }

    @Override
    public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {
        configurer.enable();
    }
}

三、目錄結構規範

src/main
├── java
│   └── com.xxxx
│       ├── config
│       ├── controller
│       └── service
├── resources
└── webapp
    └── WEB-INF
        └── views
            └── login.jsp

注意:JSP 必須放在 src/main/webapp/WEB-INF/views/ 下,而非 resources/templates。

四、登錄頁面 login.jsp

<%@ taglib prefix="c" uri="https://java.sun.com/jsp/jstl/core" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<h1>Login Page</h1>
<form action="/account/valid" method="post">
    <input type="text" name="name" placeholder="用戶名">
    <input type="password" name="password" placeholder="密碼">
    <input type="submit" value="登錄">
</form>
</html>

五、控制器與服務層

package com.xxxx.controller;

import com.xxxx.service.AccountService;
import com.xxxx.entity.Account;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;

@Controller
@RequestMapping("/account")
public class AccountController {
    @Autowired private AccountService accountService;

    @RequestMapping("/login")
    public String login() { return "login"; }  // 返回視圖名 login.jsp

    @RequestMapping("/valid")
    @ResponseBody
    public String valid(Account account) {
        return accountService.valid(account) ? "Login Success!" : "Login Failed!";
    }
}
package com.xxxx.service;

import com.xxxx.entity.Account;
import org.springframework.stereotype.Service;

@Service
public class AccountService {
    public boolean valid(Account account) {
        return "admin".equals(account.getName()) && "123456".equals(account.getPassword());
    }
}
package com.xxxx.entity;

public class Account {
    private String name;
    private String password;
    // Getter/Setter 略
}

六、運行效果

  1. 訪問 https://localhost:8080/account/login 顯示登錄頁
  2. 輸入 admin / 123456 提交,返回 Login Success!
  3. 其他帳號返回 Login Failed!

通過上述配置,Spring Boot 即可無縫支持 JSP 開發模式,適合舊項目遷移或團隊習慣 JSP 的場景。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved