java 概论

简介: 目前市面上的软件分为两种:C/S架构: ‘C’指客户端,S指服务器。一般我们使用的都是CS架构的软件,例qq,播放器等等 特点有:1.软件使用前必须需要安装 2.软件更新时,客户端和服务器必须都得更新 3.CS架构不能跨平台使用,例如安卓手机上的软件在苹果手机上不能使用 4.c/s客户端和服务器的通信采用的自由协议,相对安全,例如在手机上安装app时出现“是否同意安装该应用等等”B/S架构:‘B’指浏览器,S指服务器。平常我们常用的京东、淘宝、12306等等 特点:1.软件使用前不需要安装 2.软件客户端无需更新 3.可以跨平台使用 4.b/s的通信采用的是通用的HTML协议,相对不安全

目前市面上的软件分为两种:

C/S架构: ‘C’指客户端,S指服务器。一般我们使用的都是CS架构的软件,例qq,播放器等等 特点有:1.软件使用前必须需要安装 2.软件更新时,客户端和服务器必须都得更新 3.CS架构不能跨平台使用,例如安卓手机上的软件在苹果手机上不能使用 4.c/s客户端和服务器的通信采用的自由协议,相对安全,例如在手机上安装app时出现“是否同意安装该应用等等”
B/S架构:‘B’指浏览器,S指服务器。平常我们常用的京东、淘宝、12306等等 特点:1.软件使用前不需要安装 2.软件客户端无需更新 3.可以跨平台使用 4.b/s的通信采用的是通用的HTML协议,相对不安全
我们将使用Servlet开发B/S架构的WEB应用程序
WEB资源被分为:
[1 ] 静态web资源
供人们浏览时的数据始终是不变的;浏览器能直接看懂例如:html、jsp、jpg

[2 ] 动态web资源
供人们浏览的数据是由程序产生的,不同事件点访问web页面看到的内容各不相同;要先转换成html,再在浏览器显示;java中,动态web开发技术统称为javaweb;例如Servlet、jsp

5.在Sun的Java Servlet规范中,对java web应用做了这样的定义:
“java web应用由一组servlet、HTML页、类、以及其他可以被绑定的资源构成。他可以在各种供应商提供的实现Servlet规范的servlet容器中运行。”
[3] Java Web应用中可以包含如下内容:
ServletJSP
实用类
静态文档例如HTML、图片等
描述Web应用的信息
Servlet容器
[ 1 ] Servlet容器为Java Web应用提供运行时环境,他负责管理Servlet和JSP的生命周期,以及管理它们的共享数据。
[ 2 ] Servlet容器也成为Java Web应用容器,或者Servlet/JSP容器。
[ 3 ] 目前最流行的Servlet容器软件包括:Tomcat、J2EE服务器(如Weblogic)中也提供了内置的Servlet容器
Tomcat容器
tomcat是一个免费的开源代码的Servlet容器,属于轻量级应用服务器,是开发和调试JSP程序的首选;
官网:http://tomcat.apache.org
Tomcat的目录结构
运行Tomcat
配置JAVA_HOME
如无效可将编辑的JAVA_HOME
双击bin目录下的startup.bat文件
在地址栏中输入http://localhost:8080/
关闭Tomcat & 配置 Tomcat 的端口号
双击 bin 目录下的shutdown.bat 文件关闭 Tomcat 服务器
修改 Tomcat 默认的端口号:
[ 1 ] 打开conf 目录下的 server.xml 文件
[ 2 ] 修改端口号

注:修改完端口号需要重启Tomcat
Tomcat 的管理程序
Tomcat 提供了一个管理程序:manager,用于部署到 Tomcat 服务器中的web 应用程序
要访问 manager web 应用程序,需要添加具有管理员权限的账号,编辑 conf目录下的 tomcat-users.xml 文件,添加 manager-gui角色,设置用户名和密码
<?xml version="1.0" encoding="UTF-8">




创建一个静态网站
在webapps目录下创建一个目录(命名必须不包括中文和空格),这个目录称之为项目目录
在项目目录下创建一个html文件
启动tomcat
WEB程序结构
一个web应用程序是由一组 Servlet、HTML页面、类以及其他的资源组成的运行在 web 服务器上的完整的应用程序,以一种结构化的有层次的目录形式存在一个web应用程序是由一组 Servlet、HTML页面、类以及其他的资源组成的运行在 web 服务器上的完整的应用程序,以一种结构化的有层次的目录形式存在
组成web应用程序的这些文件要部署在相应的目录层次中,根目录代表整个web应用程序的”根“
通常web应用程序的目录放在webapps目录下,在webapps目录下的每一个子目录都是一个独立的web应用程序,子目录的名字就是web应用程序的名字,也就是web应用程序的”根“。用户通过web应用程序的”根“来访问web应用程序中的资源
Web程序结构
Web项目
eclipse创建并发布一个web项目
[ 1 ] New—>Dynamic Web project—>项目名
[ 2 ] WebContent新建一个index.jsp
[ 3 ] Export—>WAR file(E:\tomcat\apache-tomcat-8.0.9\webapps\docs\WEB-INF)
[ 4 ] 项目发布到tomcat的webapps,启动tomcat
[ 5 ] 测试项目:http://localhost:8080/项目名
原文链接:https://blog.csdn.net/wenteng8225/article/details/84075085

相关文章
|
5月前
|
监控 数据可视化 Java
【JAVA】分布式链路追踪技术概论
【JAVA】分布式链路追踪技术概论
73 2
|
6月前
|
监控 数据可视化 Java
【JAVA】分布式链路追踪技术概论
skywalking拥有更加的强大和细粒度的图形监控界面。
97 2
|
6月前
|
监控 负载均衡 Java
深入探究Java微服务架构:Spring Cloud概论
**摘要:** 本文深入探讨了Java微服务架构中的Spring Cloud,解释了微服务架构如何解决传统单体架构的局限性,如松耦合、独立部署、可伸缩性和容错性。Spring Cloud作为一个基于Spring Boot的开源框架,提供了服务注册与发现、负载均衡、断路器、配置中心、API网关等组件,简化了微服务的开发、部署和管理。文章详细介绍了Spring Cloud的核心模块,如Eureka、Ribbon、Hystrix、Config、Zuul和Sleuth,并通过一个电商微服务系统的实战案例展示了如何使用Spring Cloud构建微服务应用。
103583 9
|
存储 Java 调度
手撕JAVA(2)多线程(1)概论
1.概念 程序 存储在磁盘上的一段指令的集合,是静态的。 进程 运行中的程序,指计算机在某个数据集合上的一次运行活动,每个进程都有独立的资源空间,是操作系统进行资源分配与调度的基本单位。 (数据集合包含两方便,一是数据,二是硬件资源,如CPU,IO等) 线程 又称轻量级进程,是为了提高资源利用率以及CPU的并发度,而对进程进行的一种优化。线程是进程中的一个个的实体,是进程的一个个的执行单元。同一进程的线程共享该进程的资源,即电脑所分配的资源空间。
90 0
|
存储 Java API
【java规则引擎】drools6.5.0中kie的概论
什么是KIE? KIE是jBoss里面一些相关项目的统称,下图就是KIE代表的一些项目,其中我们比较熟悉的就有jBPM和Drools。 这些项目都有一定的关联关系,并且存在一些通用的API,比如说涉及到构建(building)、部署(deploying)和加载 (loading)等方面的,这些API就都会以KIE作为前缀来表示这些是通用的API。
2412 0
|
IDE Java API
Java零基础入门:概论(一)
Java零基础入门:概论(一)
136 0
Java零基础入门:概论(一)
|
8天前
|
安全 Java 测试技术
Java并行流陷阱:为什么指定线程池可能是个坏主意
本文探讨了Java并行流的使用陷阱,尤其是指定线程池的问题。文章分析了并行流的设计思想,指出了指定线程池的弊端,并提供了使用CompletableFuture等替代方案。同时,介绍了Parallel Collector库在处理阻塞任务时的优势和特点。
|
17天前
|
安全 Java
java 中 i++ 到底是否线程安全?
本文通过实例探讨了 `i++` 在多线程环境下的线程安全性问题。首先,使用 100 个线程分别执行 10000 次 `i++` 操作,发现最终结果小于预期的 1000000,证明 `i++` 是线程不安全的。接着,介绍了两种解决方法:使用 `synchronized` 关键字加锁和使用 `AtomicInteger` 类。其中,`AtomicInteger` 通过 `CAS` 操作实现了高效的线程安全。最后,通过分析字节码和源码,解释了 `i++` 为何线程不安全以及 `AtomicInteger` 如何保证线程安全。
java 中 i++ 到底是否线程安全?
|
4天前
|
安全 Java 开发者
深入解读JAVA多线程:wait()、notify()、notifyAll()的奥秘
在Java多线程编程中,`wait()`、`notify()`和`notifyAll()`方法是实现线程间通信和同步的关键机制。这些方法定义在`java.lang.Object`类中,每个Java对象都可以作为线程间通信的媒介。本文将详细解析这三个方法的使用方法和最佳实践,帮助开发者更高效地进行多线程编程。 示例代码展示了如何在同步方法中使用这些方法,确保线程安全和高效的通信。
23 9
|
7天前
|
存储 安全 Java
Java多线程编程的艺术:从基础到实践####
本文深入探讨了Java多线程编程的核心概念、应用场景及其实现方式,旨在帮助开发者理解并掌握多线程编程的基本技能。文章首先概述了多线程的重要性和常见挑战,随后详细介绍了Java中创建和管理线程的两种主要方式:继承Thread类与实现Runnable接口。通过实例代码,本文展示了如何正确启动、运行及同步线程,以及如何处理线程间的通信与协作问题。最后,文章总结了多线程编程的最佳实践,为读者在实际项目中应用多线程技术提供了宝贵的参考。 ####