Java EE

Apache Tomcat简介

北城余情 提交于 2020-08-12 11:51:07
Apache Tomcat是一个长期存在的开源Java Servlet容器,它实现了几个核心Java企业规范,即Java Servlet,JavaServer Pages(JSP)和WebSockets API。 Tomcat是一个Apache Software Foundation项目,它于1998年首次发布,距Java本身仅四年。Tomcat开始作为第一个Java Servlet API和JSP规范的参考实现。尽管Tomcat不再是这两种技术的参考实现,但Tomcat仍然是使用最广泛的Java服务器,它拥有经过良好测试和验证的核心引擎,并具有良好的可扩展性。 在这个简短的介绍中,您将了解为什么许多软件商店选择Tomcat来运行Java Web应用程序。您将获得Tomcat及其用法的概述,以及撰写本文时最新版本的安装说明。 Tomcat是哪种服务器? Java生态系统支持多种类型的应用程序服务器,因此让我们消除它们的歧义,看看Tomcat适用于哪些位置: 甲servlet容器是Java Servlet规范的一个实现,主要用于托管的Java小服务程序。 一个Web服务器是一种旨在从本地系统提供文件服务,如Apache服务器。 一个Java企业应用服务器是一个完全成熟的实现的Java EE(今雅加达EE)规范。 从本质上讲,Tomcat是Servlet和JSP容器。一的Java

个人作业——软件工程实践总结&个人技术博客

自古美人都是妖i 提交于 2020-08-12 10:52:50
这个作业属于哪个课程 2019学年02学期单红老师软件工程实践 这个作业要求在哪里 个人作业——软件工程实践总结&个人技术博客 这个作业的目标 个人对整个课程的总结 作业正文 本博文 其他参考文献 构建之法、慕课网 前言 最后一次写博客作用,心情怎么样 老实说最后一次作业了,写完就结束课程了,心情肯定是有一定解脱的,毕竟一个学期经常要为这个课熬夜奋战,现在终于能够休息一下了。当然内心可能也会有一些不舍吧,这个 学期因为网课的原因,一直都是采取线上上课的方式,所以目前还没和老师正式见过面,而自己的组员也是没有真正地会过面,所以有一些可惜与留恋。当然,因为做个课收获到了知识 和其他地东西,内心也是感到充实和满足的。 关于第一次作业中所回答的问题 当初为什么报 软件工程 这个专业?当初对 软件工程 这个专业的期待和想象是什么? 当初希望自己是如何投入这个专业 的学习的?曾经做过什么准备,或者立下过什么FLAG吗? 前面这个问题不需再多言,现在就说一下对于未来地展望及如何投入其中。之前的确是有着电影情节地对黑客的崇拜,不过现在更多的是希望自己能够学得更多的软件开发的知识, 努力地积累经验,以后能够有那里取做好一份软件开发的工作(比如当好一名普通的程序员或软件开发师),凭借更专业的知识获得更好的工作,获得更好的报酬肯定是每个人都想要的,当然也希望能够凭借自己的一点小知识为 社会近点绵薄之力

使用注解开发Spring MVC

折月煮酒 提交于 2020-08-12 10:11:11
目录 一 开发步骤 二 使用springMVC必须配置的三大件 三 代码参考 一 开发步骤 1 新建一个web项目 2 导入相关jar包 3 编写web.xml文件,注册DispatchServlet 4 编写springmvc配置文件 5 创建对应的控制类,controller 6 完善前端视图和controller之间的对应 7 测试运行调试 二 使用springMVC必须配置的三大件 1 处理器映射器 2 处理器适配器 3 视图解析器 通常只需要手动配置视图解析器,而处理器映射器和处理器适配器只需要开启注解驱动即可,省去了大段的xml配置。 三 代码参考 https://gitee.com/cakin24/springMVCDemo/tree/master/springmvc-03-annotation 来源: oschina 链接: https://my.oschina.net/u/4417586/blog/4312115

【赵强老师】Weblogic域和域的组成

本小妞迷上赌 提交于 2020-08-12 09:58:26
一、什么是Weblogic WebLogic是美国Oracle公司出品的一个application server,确切的说是一个基于Java EE架构的中间件,WebLogic是用于开发、集成、部署和管理大型分布式Web应用、网络应用和数据库应用的Java应用服务器。将Java的动态功能和Java Enterprise标准的安全性引入大型网络应用的开发、集成、部署和管理之中。 要学习Weblogic,首先需要了解什么是分布式系统和J2EE标准。在一个分布式系统中,一组独立的计算机展现给用户的是一个统一的整体,就好像是一个系统似的。系统拥有多种通用的物理和逻辑资源,可以动态的分配任务,分散的物理和逻辑资源通过计算机网络实现信息交换。系统中存在一个以全局的方式管理计算机资源的分布式操作系统。通常,对用户来说,分布式系统只有一个模型或范型。在操作系统之上有一层软件中间件(middleware)负责实现这个模型。一个著名的分布式系统的例子是万维网(World Wide Web),在万维网中,所有的一切看起来就好像是一个文档(Web页面)一样。 要实现应用系统的分布式,就需要遵循硬件标准和软件标准。这里我们重点讨论软件标准,即:J2EE标准。下图为大家展示了Java EE标准和Weblogic直接的关系。 二、什么是域和域的组成 WebLogic Server中的域是逻辑上相关的一组

Weblogic集群(一)

陌路散爱 提交于 2020-08-12 09:53:36
Weblogic集群 集群概念 WebLogic Server 集群是一组相互协作的 WebLogic Server 实例 集群提供了:高可用性、负载均衡、可扩展性 集群图解如下所示: 什么样服务能被集群以及什么样服务不能被集群 能被集群的服务 一个集群的服务是一组在集群中的多个服务器上都可用的 API 或接口 WebLogic Server 提供了以下的集群服务: Web 应用、 EJB 和 RMI 对象、 JNDI 树 其中 JNDI 树如下所示: WebLogic Server 也为以下资源提供了部分的集群特性: JDBC 连接、 JDBC 连接工厂、 JMS Connection Factories 不能被集群的服务 WebLogic Server 不提供对以下资源的集群:文件服务、时钟服务 这些服务仍然可以部署在集群中的某个服务器上,但不能享受以下特性:负载均衡、容错 集群架构 基本的集群架构 一个基本的集群将静态HTTP、表示层逻辑、业务层逻辑和对象置于一个集群中 多层架构的集群 Web层和业务逻辑层的服务放在两个不同的集群中 配置集群 配置集群的系统需求 Cluster 的配置需要: 各服务器在同一个局域网中 ( 同一子网中 ) 各服务器可通过 IP muticast 访问到 (UDP) 各服务器用静态 IP 地址 各服务器版本必须一致 各 WebLogic

java中属性命名get字母大小写问题

会有一股神秘感。 提交于 2020-08-12 08:46:34
java文件 company.java private int sTime; public void setSTime (int sTime) { this.sTime = sTime; } public int getSTime() { return sTime; } jsp文件 list.jsp ${company.sTime} 报错 Property 'sTime' not found on type com.entity.Company 1、背景 本文讲的普通JavaBean只是一个拥有Property(域/类变量)及其setter/getter的普通Java类。 有一定Java开发经验的人可能会知道,普通JavaBean的Property(域/类变量)的命名不能采用以下形式:aA***或者Aa***,如:"aDdress"或"Address",否则,在web应用中会报无法找到这个Property(因为根据"规则",需要找的是"ADdress"或"address")。但对于其中的原因,一般人都不明白,难道这是Sun公司当初定的规范吗? Java开源以后,我们终于可以解开其中的谜: 2、普通JavaBean处理涉及到相关类 在web应用中,Servlet容器或者EJB容器一般会使用java.beans包中的类来加载这些JavaBean。 BeanInfo(接口) |

3 月,跳不动了?

China☆狼群 提交于 2020-08-12 07:55:20
不少单位已经开始复工了,跳槽季已经开始。虽说大多数互联网企业,像腾讯、字节跳动等,都已经开通远程面试环节,而且薪资有走高的趋势。但据目前看,面试难度大了许多,甚至有朋友面试后怀疑:自己真的落伍了? 比如,面试高级开发岗位时,面试官不仅考察基础能力,更会重点考察高并发、分布式等架构相关的技术背后的思考逻辑,比如:微服务,负载均衡,Redis,RPC等。(今年 Java 面试到底聚焦在知识点?文末扫码获取) 但这些技术包含了 N 多优化、N 多细节,对于一些 coding 的朋友,由于接触不到一线实战架构设计,想必并不是很了解。 刚好,趁着这段时间,整理了一套 “ 微服务+分布式 ” 的视频干货,讲解很透彻。今天分享给大家。这份资料 尤其适合 以下人群: 1.没有用过微服务技术,只会用传统的 SSM 框架 2.用过 Spring Cloud、Dubbo等技术,但是只限于使用,遇到问题基本无法解决 3.从来没有系统学习微服务、分布式架构,觉得架构设计是遥不可及的 4.对于微服务、分布式技术有所了解,但尚没有设计高可用高并发的实践经历 学完这份视频你将获得哪些收获? 理解当下最火热的微服务架构原理及其开源框架; 触及一线大厂所配备的微服务核心技术内幕知识; 对照自己掌握知识点进行查漏补缺,帮助扫除知识盲区、重构知识体系。 视频围绕“ 如何设计高可用高并发的微服务架构? ”的主题

超详细JVM性能优化案例全面讲解,值得收藏

陌路散爱 提交于 2020-08-12 07:44:59
对vm-性能优化不太熟悉,掌握不透彻的小伙伴可以借此学习一下。对vm-性能优化很熟悉,掌握很好的小伙伴可以当作复习巩固,写的不一定你们都会哟! 话不多说,咱们直接上干货!注意:除了本文讲的案例。我还整理了最新5套JAVA架构项目实战教程及大厂面试题库,需要的可以进裙 783802103,裙文件下,没基础勿进哦! 类加载机制深度剖析 1、类加载过程 多个java文件经过编译打包生成可运行jar包,最终由java命令运行某个主类的main函数启动程序,这里首先需要通过类加载器把主类加载到JVM。 主类在运行过程中如果使用到其它类,会逐步加载这些类。 注意,jar包里的类不是一次性全部加载的,是使用到时才加载。 类加载到使用整个过程有如下几步: 加载 >> 验证 >> 准备 >> 解析 >> 初始化 >> 使用 >> 卸载 加载:在硬盘上查找并通过IO读入字节码文件,使用到类时才会加载,例如调用类的main()方法,new对象等等,在加载阶段会在内存中生成一个代表这个类的java.lang.Class对象,作为方法区这个类的各种数据的访问入口 验证:校验字节码文件的正确性 准备:给类的静态变量分配内存,并赋予默认值 解析:将符号引用替换为直接引用,该阶段会把一些静态方法(符号引用,比如main()方法)替换为指向数据所存内存的指针或句柄等(直接引用),这是所谓的静态链接过程

serlvet配置xml和@WebServlet

走远了吗. 提交于 2020-08-12 06:00:14
简单介绍 XML元素不仅是大小写敏感的,而且它们还对出现在其他元素中的次序敏感。例如,XML头必须是文件中的第一项,DOCTYPE声明必须是第二项,而web-app元素必须是第三项。在web-app元素内,元素的次序也很重要。服务器不一定强制要求这种次序,但它们允许(实际上有些服务器就是这样做的)完全拒绝执行含有次序不正确的元素的Web应用。这表示使用非标准元素次序的web.xml文件是不可移植的。 前提:要引入好包 xml配置中各节点的含义: <!-- servlet的配置 --> < servlet > <!-- servlet的内部名称,自定义。尽量有意义 --> < servlet-name > Book </ servlet-name > <!-- servlet的类全名: 包名+简单类名 --> < servlet-class > web.Bookservlet </ servlet-class > </ servlet > <!-- servlet的映射配置 --> < servlet-mapping > <!-- servlet的内部名称,一定要和上面的内部名称保持一致!! --> < servlet-name > Book </ servlet-name > <!-- 访问路径 http://localhost:8080/Bookservlet --> <!--

Tomcat启动流程简析

北城余情 提交于 2020-08-12 05:10:35
Tomcat是一款我们平时开发过程中最常用到的Servlet容器。本系列博客会记录Tomcat的整体架构、主要组件、IO线程模型、请求在Tomcat内部的流转过程以及一些Tomcat调优的相关知识。 力求达到以下几个目的: 更加熟悉Tomcat的工作机制,工作中遇到Tomcat相关问题能够快速定位,从源头来解决; 对于一些高并发场景能够对Tomcat进行调优; 通过对Tomcat源码的分析,吸收一些Tomcat的设计的理念,应用到自己的软件开发过程中。 1. Bootstrap启动入口 在前面分析 Tomcat启动脚本 的过程中,我们最后发现startup.bat最后是通过调用Bootstrap这个类的main方法来启动Tomcat的,所以先去看下Bootstrap这个类。 public static void main(String args[]) { synchronized (daemonLock) { if (daemon == null) { // Don't set daemon until init() has completed Bootstrap bootstrap = new Bootstrap(); try { //创建Bootstrap对象,代用init方法 bootstrap.init(); } catch (Throwable t) {