Skip to content

Daily Plan

更新: 5/3/2025 字数: 0 字 时长: 0 分钟

  • [ ]

Daily Study

更新: 5/3/2025 字数: 0 字 时长: 0 分钟

JSP学习

JSP是什么

SP (JavaServer Pages) 是一个由 Sun Microsystems(现为 Oracle 的一部分)开发的技术,用于为 Java 应用程序构建动态 web 页面。JSP 允许开发者将 Java 代码和特定的预定义标签嵌入到 HTML、XML 或其他类型的文档中。这些标签和代码在服务端执行,并生成动态内容,然后该内容被送到客户端的浏览器显示。

以下是 JSP 的主要特点:

  1. 动态内容:与静态 HTML 页面相反,JSP 允许创建根据用户请求动态生成的 web 页面。

  2. 标签扩展:除了支持标准的 JSP 标签之外,开发者还可以创建自定义标签来满足特定的需求。

  3. 集成 Java:JSP 允许在页面中直接嵌入 Java 代码。这些代码在服务器端执行并动态生成内容。

  4. 分离业务逻辑和表示层:与 servlets 相比,JSP 更加强调将业务逻辑(Java 代码)与表示层(HTML/CSS)分开,使得 web 页面的维护和开发变得更容易。

  5. 支持表达式语言 (EL) 和 JSTL:表达式语言让访问数据变得更容易,而 JavaServer Pages Standard Tag Library (JSTL) 提供了一组丰富的标签,用于常见的 web 开发任务,如循环和条件判断。

JSP 是 Java EE 规范的一部分,通常与 servlets 一起使用,以创建动态、企业级的 web 应用程序。

举例:

假设你要创建一个名为 welcome.jsp 的文件,当用户访问这个文件时,他们会被问到他们的名字,并在提交后,页面会显示他们的名字以及当前的日期和时间。

  1. welcome.jsp
jsp
   <!DOCTYPE html>
<html>
<head>
    <title>Welcome Page</title>
</head>
<body>
    <form action="showWelcome.jsp" method="post">
        Please enter your name: 
        <input type="text" name="username">
        <input type="submit" value="Submit">
    </form>
</body>
</html>

在上述代码中,我们创建了一个简单的表单,询问用户的名字,并在提交时将数据发送到 showWelcome.jsp。 2. showWelcome.jsp

jsp
<!DOCTYPE html>
<html>
<head>
    <title>Hello, <%= request.getParameter("username") %>!</title>
</head>
<body>
    Hello, <%= request.getParameter("username") %>!
    <br>
    Today's date is: <%= new java.util.Date() %>
</body>
</html>

showWelcome.jsp 中,我们使用了 <%= ... %> 语法,这是 JSP 的表达式标签。它允许我们将 Java 代码的输出嵌入到 HTML 中。在这个例子中,我们从请求中获取用户名,并显示当前的日期和时间。

用户首先访问 welcome.jsp 页面,输入他们的名字,然后被重定向到 showWelcome.jsp,该页面显示他们的名字和当前日期。

Spring boot

1. 什么是 Spring Boot?

Spring Boot 是一个基于 Spring 框架的开源 Java 应用程序工具,用于简化 Spring 应用程序的创建、开发和部署过程。它提供了一种从头开始创建 Spring 应用程序的快速和简便的方式,而无需关心整个 Spring 生态系统的复杂性。

2. Spring Boot 的主要特点:

  • 自动配置:Spring Boot 会自动为应用程序提供必要的默认配置,从而减少了大量的配置工作。
  • 独立运行:可以直接运行应用程序,无需外部服务器。
  • 生产准备特性:如健康检查、指标等都已内置。
  • 无代码生成:整个过程都不需要代码生成,也无需 XML 配置。
  • 内置的应用服务器:如 Tomcat、Jetty 等,可以将应用程序打包成一个可执行的 JAR 或 WAR 文件。

3. 为什么选择 Spring Boot?

  • 简化配置:自动配置和基于 Java 的配置使得设置应用程序变得非常简单。
  • 快速开发:内置的开发工具和运行时依赖帮助开发人员更快速地开发应用。
  • 管理依赖关系:它提供了一个基于 Maven 或 Gradle 的项目构建系统,帮助管理项目依赖关系。
  • 微服务支持:通过 Spring Cloud,Spring Boot 非常适合构建微服务应用程序。

4. 开始使用:

要开始使用 Spring Boot,你通常会通过 Spring Initializr 生成一个基本的项目结构,然后加入你需要的依赖关系。从那里,你可以开始编写代码并使用 Spring Boot 的各种功能。

5. 核心组件:

  • Spring Data:简化了数据库交互。
  • Spring MVC:用于构建 Web 和 RESTful 应用程序。
  • Spring Security:为你的应用程序提供安全性。

6. Spring Boot 与 Spring 的关系:

虽然 Spring Boot 是基于 Spring 的,但它并不是要替代 Spring。相反,它简化了基于 Spring 的应用程序的开发过程。你仍然可以访问 Spring 的所有功能,并根据需要进行定制。

三大组件的介绍

1. Spring Data

定义: Spring Data 是一个用于简化数据库访问并支持云服务的框架。它为数据访问提供了统一的编程模型,支持关系型数据库、非关系型数据库、Map-Reduce 框架和基于云的数据服务。

主要特点:

  • Repository 抽象: 通过简单地扩展预定义的接口,可以轻松创建 CRUD 操作。
  • 自定义查询方法: 只需在接口中定义方法名,Spring Data 会自动实现查询。
  • 模板化的查询执行: 提供了一个模板类来封装存储特定的异常并转换它们为 Spring 的 DataAccessException。

示例: 假设你有一个 User 实体,并且想要为其创建 CRUD 操作:

javaCopy code

@Entity public class User { @Id private Long id; private String name; private String email; } public interface UserRepository extends JpaRepository<User, Long> { User findByName(String name); }

在上面的代码中,UserRepositoryUser 实体提供了 CRUD 操作,并且还提供了一个按名称查找用户的方法。

2. Spring MVC

定义: Spring MVC 是 Spring 框架的一部分,用于构建 Web 应用程序。它分离了应用程序的不同部分,并提供了一种模块化方法来构建 Web 用户界面。

主要特点:

  • 模型-视图-控制器 (MVC) 架构: 分离表示、逻辑和数据。
  • 数据绑定: 自动绑定请求参数到 JavaBean 对象。
  • 注解驱动: 使代码更简洁、更具可读性。

示例: 创建一个简单的控制器来返回一个欢迎消息:

jsp
@RestController
public class WelcomeController {
    @GetMapping("/welcome")
    public String welcome() {
        return "Welcome to Spring Boot!";
    }
}

3. Spring Security

定义: Spring Security 提供了一系列的认证、授权、防护攻击等安全特性,以保护 Spring Boot 应用程序。

主要特点:

  • 身份验证和授权: 基于角色的访问控制。
  • 防止跨站请求伪造 (CSRF): 提供了内置的防护措施。
  • 安全头部、CORS 和会话管理.

示例:Spring Security 中配置一个简单的内存用户存储并设置 HTTP Basic 认证:

jsp
@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
    @Override
    protected void configure(AuthenticationManagerBuilder auth) throws Exception {
        auth.inMemoryAuthentication()
            .withUser("user").password("{noop}password").roles("USER");
    }

    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http.authorizeRequests()
            .anyRequest().authenticated()
            .and()
            .httpBasic();
    }
}

在上面的配置中,我们为用户名为 "user" 的用户设置了一个密码 "password",并给予了 "USER" 角色。所有请求都需要认证,并使用 HTTP Basic 认证方式。

这三个核心组件是 Spring Boot 中非常强大的工具,它们各自处理数据访问、Web 接口和安全性,确保应用程序的健壮性和安全性。

Daily Problem

更新: 5/3/2025 字数: 0 字 时长: 0 分钟

菜就多练

本站访客数 人次 本站总访问量