JavaEE知识总结

  1. Mabatis主要优点有哪些

    • 小巧简单易学,没有任何第三方依赖
    • Mybatis相当灵活,不会对应用程序或者数据库的现有设计强加任何影响。
    • SQL写在XML里,从程序代码中彻底分离,降低耦合度,便于统一管理和优化,更易于单元测试,并可重用
    • 提供映射标签,支持对象与数据库字段关系映射
    • 支持编写动态SQL语句
  2. 什么是数据持久化以及ORM

    • 数据持久化就是将内存中的数据模型转化为存储模型,以及将存储模型转化为内存中的数据模型的统称,数据模型可以是任何数据结构或数据模型,例如JavaBean对象;存储模型可以是关系型数据库表,XML文件,二进制文件等。
    • ORM是对象/关系映射,用来把对象模型表示的对象映射到基于SQL的关系模型数据库结构中去。这样,只需简单的操作实体对象的属性和方法,而不需要和复杂的SQL语句打交道,将程序中的对象自动持久化到关系数据库中。
  3. 什么是IOCDI

    • IOC全称是Inversion of Control,含义是控制反转。IOC是指程序中对象的获取方式发生反转,由最初的new方式转变为由第三方框架创建,注入,它降低了对象之间的耦合度
    • DI全称是Dependency Injection,含义是依赖注入,指自身对象中的内置对象是通过注入的方式进行创建,注入的方式主要有两种,即setter注入,它降低了对象之间的耦合度
  4. 什么是组件扫描

    • 指定一个包路径,Spring容器会自动扫描该包和其子包下的所有组件类,当发现组件类定义前有特定的注解标记时,就将该组件纳入到Spring容器中。等价于原来在XML配置中的定义功能
  5. 请列出Spring中关于组件创建的注解标记(至少5种)

    • @Component (把普通pojo实例化到spring容器中,相当于配置文件中的<bean id = "" class = ""/>)

    • @Autowired (注入属性)

    • @Repository (dao)

    • @Service (service)

    • @Controller(controller)

      这些加了注解的类都纳入了spring容器中管理

      下面写这个引入component的扫描组件

      <context:component-scan base-package="com.spring">

  6. 举例说明什么是构造器注入

    package ex;
    public class A{
       private int a;
       public A(){}
       public A(int a){}
       public int getA(){return a;}
       public void setA(){this.a = a;}
    }
    
    // 配置文件中
    <bean id="a" class="ex.A">
    <constructor-arg name="a" value="1"></constructor-arg>
    </bean>
  7. 简述SpringMvc的工作流程

    • 首先用户发送请求->前端控制器(DispatcherServlet),前端控制器根据请求信息(如URL)来决定选择哪一个页面控制器(Controller)进行处理并把请求委托给他
    • 页面控制器接收到请求后,进行功能处理,首先需要收集和绑定请求参数到一个对象,这个对象在SpringMVC中叫命令对象,并进行验证,然后将命令对象委托给业务对象进行处理;处理完毕后返回一个ModelAndView
  8. 简述Spring框架的好处

    • 降低组件之间的耦合度,实现软件各层之间的解耦
    • 可以使用容器提供的众多服务,如:事务管理服务,消息服务等等
    • 容器提供单例模式支持,开发人员不再需要自己编写实现代码
    • 容器提供AOP技术,利用它很容易实现如权限拦截,运行期监控等功能
  9. 写出SrpingMVCController向页面传值的方法

    • 使用HttpServletRequest对象,调用setAttribute()传值
    • 使用HttpSession对象,调用setAttribute()传值
    • 使用ModelAndView对象,调用addObject()传值
    • 使用Model对象,调用addAttribute()传值
    • 使用RedirectAttributes对象,调用addFlashAttrubute()传值
  10. 简述SpringMVC如何和ajax进行交互返回json对象

    1. 前端ajax方法设置dataType:"json"
    2. 项目添加jackson-corejackson-databind依赖
    3. SpringMVC配置文件中添加json转换器的配置
    4. Controller中接收ajax的方法的上方添加@ResponseBody注解
    5. 该方法直接返回的ObjectList对象等数据类型
  11. 简述Servlet的生命周期

    1. Servlet生命周期:Servlet加载->实例化->服务->销毁
    2. init()->service()->destory()
    3. init()destory()都仅执行一次
  12. 简述请求转发和请求重定向的区别

    • 转发是服务器行为,重定向是客户端行为
    • 转发过程:客户浏览器发送http请求->Web服务器接收此请求->调用内部的一个方法在容器内部完成请求处理和转发动作->将目标资源发给客户;在这里,转发的路径必须是同一个Web容器下的url,其不能转向其他的web路径中去,中间传递的是自己容器内的request。在客户浏览器路径栏显示的任然是其第一次访问的路径,也就是说客户是感觉不到服务器做了转发的。转发行为是浏览器只做了一次访问请求。
    • 重定向过程:客户浏览器发送http请求->Web服务器接收后发送302状态码相应及对应新的location给客户浏览器->客户浏览器发送是302响应,则自动再发送一个新的http请求,请求url是新的location地址->服务器根据此请求寻找资源并发送给客户。在这里location可以重定向到任意URL,既然是浏览器重新发出了请求,则就没有什么request传递的概念了。在客户浏览器路径栏显示的是其重定向的路径,客户可以观察到地址的变化的。重定向行为是浏览器做了至少两次访问请求。
  13. 简述JDBC的主要工作原理

    1. 使用Class.forName()方法加载数据库JDBC驱动
    2. 通过DriverManager.getConnection()方法获取数据库的连接对象Connection
    3. 通过Connection对象创建相关的Statement对象
    4. 使用Statement对象executeUpdate()方法执行添加,修改以及删除的SQL语句
    5. 使用statement对象executeQuery()方法执行SQL查询语句,该方法返回ResultSet对象
    6. 关闭数据库连接
<think>好的,用户需要JavaEE知识点的总结。首先,我得回顾一下之前的引用内容,看看有哪些信息可以利用。引用1提到JavaEE是企业版,提供企业级开发的类,通常作为第三方库,官方指定标准,厂商实现。还分JavaSE复杂知识和JavaWeb开发,包括Servlet和Spring。引用2列举了JavaEE包含的技术,比如JDBC、JMS、EJB等。引用3看起来像是目录,可能涉及Servlet、MVC、Filter等。用户想要一个系统的总结,所以需要把这些技术点分类整理。可能需要分为核心概念、核心技术、开发模式、重要组件、性能与扩展、现代演进等部分。确保每个部分涵盖关键知识点,比如JavaSE基础、JavaWeb开发中的Servlet和Spring,还有EJB、JTA等企业级技术。要注意用户提到的引用中有些内容可能不太准确,比如Servlet现在实际使用场景不多,更多转向Spring。需要指出这一点。同时,要区分传统JavaEE和现代Spring框架的关系,说明技术演进。还要考虑用户可能想了解JavaEE的应用场景和常见架构,比如B/S架构、三层架构、MVC模式。会话跟踪技术如Cookie和Session,以及Filter和Listener这些组件也很重要。 最后,生成相关问题,帮助用户深入理解。比如版本演变、与Spring的区别、核心技术对比等。确保问题覆盖用户可能感兴趣的后续学习方向。</think>### JavaEE 知识点总结 #### 一、核心概念 1. **JavaEE定位** JavaEE(Java Enterprise Edition)是面向企业级应用开发的平台,提供分布式、高并发、事务管理等能力[^1]。其核心特点是**标准化接口与厂商实现分离**,例如`Servlet`规范由官方定义,具体实现由Tomcat、Jetty等服务器提供[^1]。 2. **技术分层** - **JavaSE基础**:多线程、IO、集合框架等底层支持[^1]。 - **企业级扩展**:JDBC(数据库连接)、JMS(消息服务)、JTA(分布式事务)等[^2]。 --- #### 二、核心技术 1. **Web开发** - **Servlet/JSP**:传统动态网页技术,Servlet处理请求,JSP实现视图渲染[^3]。 ```java public class HelloServlet extends HttpServlet { protected void doGet(HttpServletRequest req, HttpServletResponse resp) { resp.getWriter().write("Hello JavaEE"); } } ``` - **现代替代方案**:Spring MVC框架逐渐取代原生Servlet,简化开发流程[^1]。 2. **分布式与中间件** - **RMI/IIOP**:实现跨语言远程方法调用(CORBA兼容)[^2]。 - **JNDI**:统一资源命名与目录服务,用于管理数据库连接池等资源[^2]。 3. **组件模型** - **EJB(Enterprise JavaBeans)**:服务器端组件,支持事务、安全、分布式计算(但Spring通过POJO轻量化替代了EJB的复杂模型)[^2]。 --- #### 三、开发模式与架构 1. **B/S架构** - **静态资源**:HTML/CSS/JavaScript。 - **动态资源**:Servlet/JSP生成动态内容[^3]。 2. **分层架构** - **MVC模式**:分离模型(Model)、视图(View)、控制器(Controller)。 - **三层架构**:表现层(Web)、业务层(Service)、数据层(DAO)[^3]。 --- #### 四、关键组件与技术 1. **数据库交互** - **JDBC**:通过`DriverManager`连接数据库,执行SQL语句[^2]。 - **ORM框架**:Hibernate、MyBatis简化数据库操作(非JavaEE原生,但广泛使用)。 2. **会话管理** - **Cookie/Session**:跟踪用户状态,Cookie存储客户端,Session存储服务端[^3]。 - **URL重写**:解决浏览器禁用Cookie时的会话保持问题。 3. **过滤器与监听器** - **Filter**:拦截请求,实现权限控制、日志记录等[^3]。 - **Listener**:监听ServletContext、Session等对象生命周期事件[^3]。 --- #### 五、性能与扩展 1. **事务管理** - **JTA**:支持跨数据库、消息队列的分布式事务(如银行转账场景)[^2]。 - **JTS**:定义事务管理器的底层协议[^2]。 2. **连接器架构(JCA)** 集成非Java系统(如ERP、CRM),通过适配器实现数据交互[^2]。 --- #### 六、现代演进 1. **轻量化趋势** - **Spring生态**:Spring Boot简化配置,Spring Cloud支持微服务架构。 - **Jakarta EE**:JavaEE 8之后由Eclipse基金会接管,更名为Jakarta EE,持续更新规范。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值