1. B/S和C/S模式
1.1 C/S模式
Client/Server架构,即客户端/服务器架构。是大家熟知的软件系统体系结构,通过将任务合理分配到Client端和Server端,降低了系统的通讯开销,需要安装客户端才可进行管理操作。
1.2 B/S模式
B/S结构(Browser/Server,浏览器/服务器模式)是WEB兴起后的一种网络结构模式,WEB浏览器是客户端最主要的应用软件。这种模式统一了客户端,将系统功能实现的核心部分集中到服务器上,简化了系统的开发、维护和使用。
B/S结构程序的工作原理
从用户的操作开始,用户在浏览器页面提交表单操作,向服务器发送请求,服务器接收并处理请求,然后把用户请求的数据(网页文件、图片、声音等等)返回给浏览器,至此一次请求完成。
1.3 B/S和C/S区别
2.服务器
无论BS模式还是CS模式都需要使用到服务器。
服务器,也称伺服器,是提供计算服务的设备。由于服务器需要响应服务请求,并进行处理,因此一般来说服务器应具备承担服务并且保障服务的能力。
服务器的构成包括处理器、硬盘、内存、系统总线等,和通用的计算机架构类似,但是由于需要提供高可靠的服务,因此在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面要求较高。在网络环境下,根据服务器提供的服务类型不同,分为文件服务器,数据库服务器,应用程序服务器,WEB服务器等。
服务器就是 提供服务的设备。是由硬件和软件两部分组成。
硬件服务器:构成包括处理器、硬盘、内存、系统总线等组成的电脑主机
软件服务器:web服务器 Tomcat
数据库服务器 MySQL Oracle
缓存服务器 Redis (NoSql)
反向代理服务器 Nginx 负载均衡
正向代理服务器 Node
文件服务器 ftp服务器
3.web 服务器
3.1.IIS
IIS(Internet信息服务)英文InternetInformationServer的缩写。它是微软公司主推的服务器。IIS的特点具有:安全性,强大,灵活。
3.2.Tomcat
Tomcat是Apache软件基金会(ApacheSoftwareFoundation)的Jakarta项目中的一个核心项目,由Apache、Sun和其他一些公司及个人共同开发而成。Tomcat技术先进、性能稳定,而且免费,因而深受Java爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web应用服务器。
3.3.Zeus
Zeus是一个运行于Unix下的非常优秀的Web服务器,据说性能超过Apache,是效率最高的Web服务器之一。
3.4.Nginx
Nginx不仅是一个小巧且高效的HTTP服务器,也可以做一个高效的负载均衡反向代理,通过它接受用户的请求并分发到多个Mongrel进程可以极大提高Rails应用的并发能力。
3.5. Apache
Apache是世界使用排名第一的Web服务器软件。它几乎可以运行在所有的计算机平台上。由于Apache是开源免费的,因此有很多人参与到新功能的开发设计,不断对其进行完善。Apache的特点是简单、速度快、性能稳定,并可做代理服务器来使用。
3.6.Lighttpd
Lighttpd是由德国人JanKneschke领导开发的,基于BSD许可的开源WEB服务器软件,其根本的目的是提供一个专门针对高性能网站,安全、快速、兼容性好并且灵活的webserver环境。具有非常低的内存开销,CPU占用率低,效能好,以及丰富的模块等特点。支持FastCGI,CGI,Auth,输出压缩(outputcompress),URL重写,Alias等重要功能。
4.Tomcat 服务器
4.1 tomcat服务器简介
TomcatApache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。由于有了Sun 的参与和支持,最新的Servlet 和JSP 规范总是能在Tomcat 中得到体现,Tomcat 5支持最新的Servlet 2.4 和JSP 2.0 规范。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。
Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache 服务器,可利用它响应HTML(标准通用标记语言下的一个应用)页面的访问请求。实际上Tomcat 是Apache 服务器的扩展,但运行时它是独立运行的,所以当你运行tomcat 时,它实际上作为一个与Apache 独立的进程单独运行的。
诀窍是,当配置正确时,Apache 为HTML页面服务,而Tomcat 实际上运行JSP 页面和Servlet。另外,Tomcat和IIS等Web服务器一样,具有处理HTML页面的功能,另外它还是一个Servlet 和 JSP 容器,独立的Servlet容器是Tomcat的默认模式。不过,Tomcat处理静态HTML的能力不如Apache服务器。目前Tomcat最新版本为10。
4.2 下载和安装
下载后解压
打开bin目录
点击startup.bat 启动tomcat
打开浏览器输入localhost:8080
4.3 Tomcat文件夹构成
4.4 Tomcat项目部署和发布
两种方式:
①:webapps方式
将你的项目拷贝到webapps目录下 然后访问
tomcat默认端口号8080。 ip地址:8080/html05/页
②:配置文件方式
conf--->server.xml 打开 添加以下代码 --》保存---》重启tomcat
<Context docBase="项目在电脑中的路径" path="/haha 访问路径" reloadable="true"/>
配置好路径后:直接浏览器访问:
ip地址:端口号/haha/资源文件
4.5 静态网页和动态网页
所谓的动态网页,是指跟静态网页相对的一种网页编程技术。
静态网页,随着html代码的生成,页面的内容和显示效果就基本上不会发生变化了——除非你修改html页面代码。而动态网页则不然,页面代码虽然没有变,但是显示的内容却是可以随着时间、环境或者数据库操作的结果而发生改变的。值得强调的是,不要将动态网页和页面内容是否有动感混为一谈。这里说的动态网页,与网页上的各种动画、滚动字幕等视觉上的动态效果没有直接关系,动态网页也可以是纯文字内容的,也可以是包含各种动画的内容,这些只是网页具体内容的表现形式,无论网页是否具有动态效果,只要是采用了动态网站技术生成的网页都可以称为动态网页。总之,动态网页是基本的html语法规范与Java、VB、VC等高级程序设计语言、数据库编程等多种技术的融合,以期实现对网站内容和风格的高效、动态和交互式的管理。因此,从这个意义上来讲,凡是结合了HTML以外的高级程序设计语言和数据库技术进行的网页编程技术生成的网页都是动态网页。
静态网页没有数据库的数据传输 ,动态网页有数据的传输
4.6 tomcat 对 web项目的目录要求
普通java项目:src
web项目:
我们写的servlet需要部署到tomcat中,但是你不能乱写(我们写好了之后 随便放到一个地方 tomcat肯定不识别),此时tomcat有一个目录要求。其实就是要求我们 需要创建几个文件夹 每个文件夹中放不同的资源内容。
5.把项目部署到tomcat下
(1)在webapps下创建一个工程并把资源放入该工程下
(2)启动tomca
(3)访问服务器下指定的资源
未来写好的web工程,都可以给客户部署到tomcat/webapps下。
6.Idea关联tomcat
写代码都是在idea上来写,所以应该让idea关联tomcat.
7. idea创建web工程
现在写的代码不只包含java代码还包含网页,所以现在使用idea创建工程的话,不再是创建的为java工程了,而是javaweb工程。
把创建的web工程部署到指定的tomcat下。
8.设置web工程的默认首页
在不输入网页资源名称时 默认显示的页面。
/WEB-INF/web.xml文件里配置默认首页
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
version="4.0">
<!--设置默认首页-->
<welcome-file-list>
<welcome-file>main.html</welcome-file>
</welcome-file-list>
</web-app>
9. 动态网页
所谓的动态网页,是指跟静态网页相对的一种网页编程技术。
静态网页,随着html代码的生成,页面的内容和显示效果就基本上不会发生变化了——除非你修改html页面代码。而动态网页则不然,页面代码虽然没有变,但是显示的内容却是可以随着时间、环境或者数据库操作的结果而发生改变的。值得强调的是,不要将动态网页和页面内容是否有动感混为一谈。这里说的动态网页,与网页上的各种动画、滚动字幕等视觉上的动态效果没有直接关系,动态网页也可以是纯文字内容的,也可以是包含各种动画的内容,这些只是网页具体内容的表现形式,无论网页是否具有动态效果,只要是采用了动态网站技术生成的网页都可以称为动态网页。总之,动态网页是基本的html语法规范与Java、VB、VC等高级程序设计语言、数据库编程等多种技术的融合,以期实现对网站内容和风格的高效、动态和交互式的管理。因此,从这个意义上来讲,凡是结合了HTML以外的高级程序设计语言和数据库技术进行的网页编程技术生成的网页都是动态网页。
1. 动态网页会随着时间的变化或者数据库的变化而发生改变。动态网页内可以插入脚本代码。
动态网页的种类有很多,比如jsp,freemark thymeleaf等等。
我们讲的是jsp动态网页。
2. 静态页面不会随着时间的变化而变化。静态网页无法插入脚本代码。静态网页和动态网页的唯一区别:能不能插入java脚本。
9.1 如何插入java脚本。
写在jsp网页。
<%
Java脚本
%>
<%--表示它支持java脚本 不要删除--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
<style>
#mydiv{
background: red;
width: 200px;
height: 200px;
}
</style>
</head>
<body>
<%
//里面就可以写java代码。
int a=15;
int b=20;
int c=a+b;
%>
这里是动态网页hello.<br>
<img src="images/1.jpg">
<div id="mydiv"></div>
</body>
</html>
上面已经知道可以再jsp中写java代码,但是我们不知道如何把定义的变量输出到网页上。
输入到网页的方式有两种:
第一种:
out.print(表达式);
<%
//里面就可以写java代码。
int a=15;
int b=20;
int c=a+b;
//System.out.println("c====="+c); //它只会再idea控制台输出。
out.print("c============"+c); //报错。我们需要加入jsp的依赖。
out.print("a========"+a);
%>
注意: 必须把jsp-api.jar 和 servlet-api.jar 放入该web工程下。
第二种
<%=表达式 %> 注意这里不要再表达式后面输入分号.
练习(九九乘法表)
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
<style type="text/css">
table{
border: 1px solid gray;
margin: 0px auto;
}
td{
border: 1px solid gray;
}
</style>
</head>
<body>
<table cellpadding="0px" cellspacing="0px">
<thead>
<%
for(int i=1;i<=9;i++){
out.print("<tr>");
for(int j=1;j<=i;j++){
out.print("<td>"+j+"*"+i+"="+i*j+"</td>");
}
out.print("</tr>");
}
%>
</thead>
</table>
</body>
</html>
总结
1. idea创建web工程并可以部署到idea关联的tomcat上。
2. 动态页面jsp.
3. 动态页面内可以插入java脚本代码.
<%
//java脚本代码---和java语法一样。定义变量可以再整个jsp当前页面内使用。
%>
4. 输入java脚本的内容.
out.print();
<%=表达式%>
出现的错误:
404: 资源找不到。
1.工程有没有部署到tomcat.
2.浏览器访问的资源名称有误。
3. 创建好资源后有没有重新部署项目。