Java面试50问,女面试官最喜欢问的居然是它!

[] 什么是Java的JSP?


JavaServer Pages(JSP)是一种用于生成动态网页的技术,它是Java EE规范的一部分。JSP允许开发者将Java代码嵌入HTML页面中,这些嵌入的Java代码在服务器端执行,生成动态内容,然后将生成的HTML发送给客户端浏览器。

JSP的主要特点包括:

1. 页面结构:JSP页面的结构是基于HTML的,可以包含标准的HTML标签和JavaScript代码。

2. Java代码嵌入:JSP允许在HTML页面中嵌入Java代码片段,这些代码片段在服务器端执行。

3. 模板元素:JSP提供了几种模板元素,如JSP注释、脚本元素(脚本片段、表达式和声明)。

4. 自定义标签:JSP允许开发者创建自定义标签库,以简化页面编码和提高重用性。

5. 自动处理请求:JSP页面通常映射到一个Servlet,当请求到达时,JSP引擎自动将JSP页面编译成Servlet,然后由Servlet处理请求。

6. 生命周期:JSP页面的生命周期从编译开始,到页面被卸载结束。在生命周期的不同阶段,可以执行初始化、处理请求和销毁等操作。

7. 模型-视图-控制器(MVC):JSP通常用于实现MVC架构中的视图层,负责生成用户界面。

JSP的基本语法元素包括:

- JSP指令:用于控制JSP页面的指令,如<%@ page %>、<%@ include %>等。
- 脚本元素:
  - 脚本片段(Scriptlet):<% ... %>,用于嵌入任何Java代码。
  - 表达式(Expression):<%= ... %>,用于输出Java变量的值。
  - 声明(Declaration):<%! ... %>,用于声明变量或方法。
- 注释:
  - JSP注释:<%-- ... --%>,用于添加JSP页面的注释,这些注释不会发送给客户端。
  - HTML注释:<!-- ... -->,用于添加HTML注释,这些注释会发送给客户端。

JSP的一个简单示例:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>My JSP Page</title>
</head>
<body>
    <h1>Hello, JSP!</h1>
    <p><%= "Current time: " + new java.util.Date() %></p>
</body>
</html>

在上述示例中,JSP页面包含了HTML标签和一个JSP表达式,用于输出当前时间。

JSP为快速开发动态Web应用程序提供了一种简单而强大的方式,但它也有一些缺点,如性能问题、代码移植性差等。为了解决这些问题,许多开发者选择使用模板引擎(如Thymeleaf)或更现代的框架(如Spring MVC)。

JSP是一种在服务器端生成动态网页的技术,对于希望使用Java构建Web应用程序的开发者来说,了解JSP是非常重要的。然而,对于现代的Web开发,许多开发者也选择使用更高级的框架和库,以提高开发效率和应用程序的性能。


[] 什么是Java的EJB?


Java的EJB(Enterprise JavaBeans)是一个用于开发分布式应用程序的Java框架,它是Java EE(Java Enterprise Edition)规范的一部分。EJB提供了一种创建具有事务管理、安全性、远程访问和生命周期管理的业务逻辑组件的标准方法。

EJB的主要目标是简化企业级应用程序的开发,通过容器管理的组件(Container-Managed Components,CMC)模型,将业务逻辑与底层的基础设施和系统级服务分离。这样,开发者可以专注于实现业务逻辑,而不必处理底层的复杂性。

EJB的主要特点包括:

1. 容器管理:EJB容器负责管理EJB组件的生命周期,包括实例化、销毁、事务管理、安全性和持久性等。

2. 事务管理:EJB提供了声明式和编程式的事务管理,允许开发者在不编写复杂事务代码的情况下,控制事务的边界和行为。

3. 安全性:EJB容器提供了安全性支持,允许开发者通过声明式安全控制对EJB组件的访问。

4. 远程访问:EJB允许通过远程接口进行访问,使得客户端可以跨越网络与EJB组件交互。

5. 生命周期管理:EJB定义了明确的生命周期,包括创建、使用和销毁等阶段,容器负责管理这些生命周期事件。

6. 依赖注入:EJB 3.0及以后的版本支持依赖注入,使得组件之间的依赖关系可以自动装配。

7. 异构客户端访问:EJB组件可以通过多种方式被客户端访问,包括RMI-IIOP(CORBA)、RMI(Java)和Web服务等。

EJB有几种类型:

1. 会话Bean(Session Beans):表示业务逻辑的操作,可以是无状态(Stateless)或有状态(Stateful)。

2. 消息驱动Bean(Message Driven Beans):用于处理异步消息,通常用于消息队列。

3. 实体Bean(Entity Beans):代表数据库中的持久化数据,可以映射到数据库表。

EJB的一个简单示例:

import javax.ejb.Stateless;

@Stateless
public class MyBean {
    public void doBusinessLogic() {
        // 业务逻辑代码
    }
}

在上述示例中,MyBean是一个无状态的会话Bean。

EJB为构建企业级应用程序提供了强大的支持,但它也有一些缺点,如性能开销、复杂性等。随着Java EE的发展,EJB的使用逐渐减少,许多开发者选择使用更轻量级和更简单的技术,如Spring框架。

EJB是一种用于构建企业级Java应用程序的技术,对于希望使用Java构建复杂、可伸缩的应用程序的开发者来说,了解EJB是非常重要的。然而,对于现代的Java EE开发,许多开发者也选择使用更现代的框架和库,以提高开发效率和应用程序的性能。

  • 40
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值