(二)javaweb开发的常见概念总结(来自那些年的笔记)
目录
WEB开发相关知识
Web分为两种:
静态web资源:开发技术:HTML
动态web资源:JSP/Servlet、ASP、PHP等;其中,在java中,动态web资源开发技术统称为javaweb;
WEB服务器
什么是WEB服务器呢?
先考虑一个问题,我们开发出一个web资源,放在我们自己的电脑上,那么其他人想要访问这个web资源,应该怎么做呢?
首先,毋庸置疑,其他人是无法直接访问到我们电脑上的资源的,因为这些资源是属于本地的;因此,我们必须再开发一个网络程序,来当做跳板;让他们先访问这个网络程序,由网络程序来访问我们的本地文件;每开发一个web资源,都需要开发这样一个网络程序,这些网络程序是通用的;因此,有人帮我们开发好了——它们就是WEB服务器 ;
Tomcat服务器
不支持所有的J2EE规范(13种),仅支持JSP、Servlet规范 ;
其中http的默认端口是80,https的默认端口443;也就是说,当我们使用http协议的时候,在浏览器中输入地址时,如果没有指定端口号,则默认访问80端口;这也是我们将项目运行起来的时候,挂载80端口的原因,不然每次都得写端口号;
WEB应用程序
供浏览器访问的程序,通常简称为web应用。
一个WEB应用由多个静态WEB资源和动态WEB资源组成,如:
•HTML,css,JS文件
•Jsp文件、java程序,支持jar包
•配置文件等等….
•组成web应用的这些文件,我们通常放在一个目录下,这个目录称之为WEB应用所在目录;目录中的所有文件称为web应用;
配置WEB应用
Web应用开发好以后,若想供外界访问,需要把web应用所在目录交给web服务器管理,这个过程称之为虚拟目录的映射 ;
- 方法一
这个过程在服务器的配置文件里面配置;(其中tomcat的配置文件在下面的目录中)
在HOST标签中,配置一个Context标签,一个Context就是一个web应用;改变了配置以后,需要重启服务器;
例子:
<Context path="/allbet" docBase="E:\web"/>
空格不可以随便打;docBase中配置的是Web应用所在目录,path配置的是虚拟目录,也就是在浏览器中打的地址;
现在,我们将Web应用配置好以后,通过Tomcat服务器访问这个web资源,地址就是:http://localhost:8080/allbet/1.html
方法二
方法一,有个致命的弊端,必须重启服务器,才能加载我们的后添加的Web应用;所有不再使用;
在Tomcat配置文件目录下,有一个Context文件,在这里配置我们的Web应用,但是这里配置的Web应用,将会被服务器上的所有的Web应用所共享;
方法三
Tomcat配置文件目录下,有一个Catalina文件夹,下面有一个localhost文件夹 ,我们在这里面新建一个Context.xml文件,在这里面配置的Web应用,会被服务器上面的所有应用共享;
方法四
Tomcat配置文件目录下,有一个Catalina文件夹,下面有一个localhost文件夹,我们在里面新建一个XML文件,在这个XML文件里面配置Context,这里的Context,不再需要我们去写虚拟路径,这里的虚拟路径就是我们的XML文件名;这种方法。不需要重启服务器;如果想要多层目录,就在XML文件的名字中加上#,用#拼接多层次的目录;
方法五
让tomcat自动映射
tomcat服务器会自动管理webapps目录下的所有web应用,并把它映射成虚拟目录。换句话说:tomcat服务器WebApps目录中的web应用,外界可以直接访问;他会将文件夹的名字,自定映射成虚拟目录;
配置缺省的WEB应用
将Web应用配置成缺省的;我们只需要将上面讲的【配置WEB应用-方法四】中的XML文件,命名为ROOT.xml 即可;这样,我们就不需要在细致的指定访问哪一个文件了。比如我们,不想再写明什么myWeb/1.html了。想在端口号后面直接输入1.html 就能访问到这个页面,就需要把1.html配置成缺省的;例如:http://localhost:8080/1.html
还有一种设置缺省的方法,就是在第一种的写Context标签,将path=”” 设为空白 ;也是缺省的一种配置方法
Web设置首页
首页就是一个web应用,在没指定具体访问哪一个页面的时候,显示的界面,在 web.xml 里面配置首页;
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
比如;我们的web应用叫mail,那么我们http://localhost:8080/mail/ 并没有指定访问mail的哪个页面,那么就会访问mail的首页;如果我们再把mail目录配置成缺省的,http://localhost:8080/ ,那么,这样就可以直接访问到我们的首页了,这就是Tomcat的首页实现原理;
web.xml文件
注意,写在web应用目录下WEB-INF目录下面的web.xml文档中的web资源,必须在与WEB-INF目录同级目录下面;这个文件很重要,关于web许多配置,都写在这个文件中;
配置虚拟主机
在一个Tomcat服务器中可以配置多个网站,所谓配置虚拟主机,就是tomcat服务器中配置一个网站。
如需在WEB服务器中配置一个网站,需要使用Host元素进行配置,例如:
<Host name=’’site1’’ appBase=”c:\app”></Host>
name代表域名, appBase代表网站的文件夹目录
配置的主机(网站),要想被外部访问,必须在DNS服务器或者Windows系统中注册。
配置的主机要想被外部访问,必须在DNS服务器或者Windows系统中注册;
配置https连接器
加密的传输协议;在网上传输信息的时候,默认是不加密的;
了解一些软件密码学基础:
对称加密:
例如:现在A准备给B发送信息;A先用密码将信息加密了,再发送给B,B收到信息以后,用密码将信息解密,得到信息原文;这里它们使用的密码是相同的,是由A指定的密码;这就是对称加密;
对称加密有一个致命的弊端:A怎么把指定的密码发送给B,在发送密码的过程中会不会被窃取;答案是肯定的,一定会被窃取;
非对称加密:
鉴于对称加密的不安全性,数学五百年的积累,提出了非对称加密;
例如:A要向B发送数据;B先利用非对称加密算法,算出一对秘钥;这对秘钥有个特性:就是任意其中的一把秘钥加密的数据,自己都解不开,必须要使用另一把秘钥解密;
B将生成的一对秘钥,其中的一把秘钥在网上发给A,这把在网上传送的秘钥,我们一般称为公钥;这样A可以将要发送的信息,用公钥加密发给B,B收到用私钥解密;
安全问题:
如果公钥在网上被人截获,怎么办呢?截获公钥,依然是解不开密文的;因为,只有私钥才能解开公钥加密的信息;暴力破解,不存在的,需要的时间非常久,可以看做不可能;
但是,这里还有安全问题的;
比如:我还可以自己生成一对秘钥,在截获B的公钥,将我的公钥发送给A,让它误以为这就是B的公钥;这样,A的密文,B将无法解开,而我将可以解开密文;这里的问题就是:如何让A确认 收到得到秘钥是B发送给他的,而不是我的秘钥;
互联网的解决方法:有一个第三方证书颁发机构,CA ;B产生一对秘钥,就会去找CA为他的公钥担保,CA会给他生成一个数字证书,这里面包含了B的公钥;这样,B给A的就是一个数字证书了;
A收到数字证书,要做的第一件事,就是确认数字证书是不是B的;
如何验证呢?浏览器内置了校验功能,它会自己去检验这个数字证书是不是CA颁发给B的;
以上就安全了吗?答案是否定的!
再看,比如我截获了B的数字证书,并且截获了A发送给B的密文,虽然我无法解密密文,但是可以用数字证书伪造密文,让B真实收到的信息是我发送的;这里的问题是:B收到信息以后,怎么判断信息是不是A发送的;
解决方法:A为了让B确认信息是他自己发送的;A也需要生成一对秘钥,并且让CA对其公钥进行担保;A现将要发送的信息,用B的公钥加密,然后,再将密文的摘要(也就是数据的指纹,业界用MD5算法,生成数据指纹,不同的数据,会产生不同的数据指纹)用自己的私钥再次加密,这里我们成为数字签名;然后,将密文发送给B;B收到以后,先用A的公钥解密摘要,如果能解开,就说明了两件事:
1、 信息是A发来的,因为,普天之下,只有A一人拥有私钥;能要A的公钥解密信息,说明信息是A的私钥加密的,也就是A发送来的;
2、 信息没被篡改过,因为其他人得不到A的私钥;一旦,对信息进行篡改,用他自己的私钥重新生成数字签名;B是解不开信息摘要的;
以上是不是就安全了呢?以上的安全,全部建立在CA是不可被攻破的基础上的,密码学讨论到最后,是没有安全可言的;
为我们的网站,配置Https连接器,也就是加密的传输;
命令: keytool –genkey –alias tomcat –keyalg RSA 先生成一张数字证书;
其中名字与姓氏就是网站的名字:是问你为哪一个网站生成证书;
输入密钥库口令:
再次输入新口令:
您的名字与姓氏是什么?
配完以后,生成一个keystore文件;
我们要想我们的网站,使用加密传输,就需要我们去配置加密连接;在serverl.xml中配置 ;(单向传输配置)
<Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol"
maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS"
keystoreFile="conf/.keystore" keystorePass="********" />
我们指定端口号是8443,因此,访问这个端口,就是加密的连接了;我们在配置里面指定了证书的位置,证书的密码;但是,这里我们的证书,并不是受信任的证书,因为,使我们自己生成的,并不是CA颁发的;因此,不会得到浏览器的信任;
(二)javaweb开发的常见概念总结(来自那些年的笔记)的更多相关文章
- JavaWeb开发技术基础概念回顾篇
JavaWeb开发技术基础概念回顾篇 第一章 动态网页开发技术概述 1.JSP技术:JSP是Java Server Page的缩写,指的是基于Java服务器端动态网页. 2.JSP的运行原理:当用户第 ...
- javaweb学习总结二十二(servlet开发中常见的问题汇总)
一:web应用的映射问题 通常我们从别人那里拷贝来的代码,自己会修改应用的名称,但是web映射的访问路径并没有修改,还是原来的映射. 解决方法: 工程右键--properties--myeclipse ...
- JAVAWEB开发下常见中文乱码问题解决
JAVA环境下处理中文乱码问题一直是很多人困扰的问题,像URL传参乱码,写进数据库乱码,服务写中文文字图片乱码处理及导出PDF乱码. 1:安装中文支持 yum groupinstall "f ...
- javaWeb开发中常见的问题
1.修改表单提交的时候不好使可能是因为没写对应隐藏域的ID 2.el表达式在js代码中要加“”,例如 "${}" 3.JavaScript中的函数也有重载的特性.如果两个input ...
- 性能测试基础---jmeter二次开发
·Jmeter的二次开发,常见的有以下几种类型: ·扩展.修改Jmeter已有的组件(源代码) ·扩展.修改Jmeter已有的函数. ·完全自主开发一个新的组件(依赖于Jmeter提供的框架). ·扩 ...
- 转:JAVAWEB开发之权限管理(二)——shiro入门详解以及使用方法、shiro认证与shiro授权
原文地址:JAVAWEB开发之权限管理(二)——shiro入门详解以及使用方法.shiro认证与shiro授权 以下是部分内容,具体见原文. shiro介绍 什么是shiro shiro是Apache ...
- 聊聊JVM(二)说说GC的一些常见概念
转自CSDN 上一篇总结GC的基础算法,各种GC收集器的基本原理,还是比较粗粒度的概念.这篇会整理一些GC的常见概念,理解了这些概念,相信对GC有更加深入的理解 1. 什么时候会触发Minor GC? ...
- JavaWeb学习总结-01 JavaWeb开发入门
一 基本概念 1 Web开发的相关知识 Web,表示网页的意思,它用于表示Internet主机上供外界访问的资源. Internet上供外界访问的Web资源分为: 静态web资源(如html 页面): ...
- JavaWeb---总结(一)JavaWeb开发入门
一.基本概念 1.1.WEB开发的相关知识 WEB,在英语中web即表示网页的意思,它用于表示Internet主机上供外界访问的资源. Internet上供外界访问的Web资源分为: 静态web资源( ...
随机推荐
- matplot 绘制折线图
#coding=utf-8 import matplotlib.pyplot as pltx_data = ['2011','2012','2013','2014','2015','2016','20 ...
- CodeForces 816E Karen and Supermarket ——(树形DP)
题意:有n件商品,每件商品都最多只能被买一次,且有一个原价和一个如果使用优惠券以后可以减少的价格,同时,除了第一件商品以外每件商品都有一个xi属性,表示买这个商品时如果要使用优惠券必须已经使用了xi的 ...
- 小程序tabBar的使用
这个selectedIconPath一定要写,否则选中的那个图片是不会显示的 下面是不写的现象: onTabItemTap的使用---下面的现象说明:只有tab值向哪个页面才会触发.
- oracle中时间格式时候的大于号是大于和等于的意思
oracle中时间格式时候的大于号是大于和等于的意思
- TripleDES加解密Java、C#、php
TripleDES说明: TripleDES(3Des)和Des都是对称加密算法,TripleDes是Des加密算法的增强版本,这里主要说的是TripleDes加密算法的应用. 工作中 ...
- PHP fopen/file_get_contents与curl性能比较
PHP中fopen,file_get_contents,curl 函数的区别: 1.fopen/file_get_contents 每次请求都会重新做 DNS 查询,并不对 DNS 信息进行缓存. 但 ...
- VMware Workstation虚拟机打开系统时,提示“无法打开内核设备“\\.\Global\vmx86”: 系统找不到指定的文件。是否在安装 VMware Workstation 后重新引导?”
VMware Workstation虚拟机打开系统时,提示“无法打开内核设备“\\.\Global\vmx86”: 系统找不到指定的文件.是否在安装 VMware Workstation 后重新引导? ...
- OpenGL ES: (2) OpenGL ES 与 EGL、GLSL的关系
OpenGL ES 是负责 GPU 工作的,目的是通过 GPU 计算,得到一张图片,这张图片在内存中其实就是一块 buffer,存储有每个点的颜色信息等.而这张图片最终是要显示到屏幕上,所以还需要具体 ...
- 阶段5 3.微服务项目【学成在线】_day16 Spring Security Oauth2_08-SpringSecurityOauth2研究-解决swagger-ui无法访问
3.3.4.4 解决swagger-ui无法访问 当课程管理加了授权之后再访问swagger-ui则报错: 这里默认配置的了所有的请求都必须认证 把图片认证的路径加进去的话 那么访问课程图片的列表 就 ...
- 算法习题---4-4骰子涂色(UVa253)
一:题目 分别对两个骰子的六个面涂色r-红 b-蓝 g-绿,通过转动骰子,看两个骰子是不是一样的涂色方法 (一)题目详解 题目规定了正方体的六个面的序号:从1-,按照这个需要提供涂色序列 (二)案例展 ...