您的位置:首页 > 编程语言 > Java开发

JavaWeb_Web开发入门

2015-06-10 22:44 441 查看

WEB开发的相关知识

WEB,在英语中web即表示网页的意思,它用于表示Internet主机上供外界访问的资源。
Internet上供外界访问的Web资源分为:

静态web资源(如html 页面):指web页面中供人们浏览的数据始终是不变。
动态web资源:指web页面中供人们浏览的数据是由程序产生的,不同时间点访问web页面看到的内容各不相同。

静态web资源开发技术

Html

常用动态web资源开发技术:

JSP/Servlet、ASP、PHP等
在Java中,动态web资源开发技术统称为Javaweb,我们课程的重点也是教大家如何使用Java技术开发动态的web资源,即动态web页面。

WEB服务器

学习web开发,需要先安装一台web服务器,然后再在web服务器中开发相应的web资源,供用户使用浏览器访问。

疑问:学习web开发,为什么必须要先装一个WEB服务器。

答:Web服务器是一个网络程序,用户需要通过它来访问网页。可以自己写这个网络程序,但是实际开发就用web服务器

常见WEB服务器

WebLogic

WebLogic是BEA公司的产品,是目前应用最广泛的Web服务器,支持J2EE规范,而且不断的完善以适应新的开发要求,启动界面如图



J2EE规范就是13种技术,用这些技术写的程序都可以在该服务器上运行,做开发用不要钱,商业应用要收钱

WebSphere

另一个常用的Web服务器是IBM公司的WebSphere,支持J2EE规范,启动界面如图



Tomcat

在小型的应用系统或者有特殊需要的系统中,可以使用一个免费的Web服务器:Tomcat,该服务器支持全部JSP以及Servlet规范(不是J2EE),启动界面如图



Tomcat服务器

Tomcat服务器的获取、安装和运行

Tomcat官方站点:http://jakarta.apache.org

获取Tomcat安装程序包

tar.gz文件是Linux操作系统下的安装版本

exe文件是Windows系统下的安装版本

zip文件是Windows系统下的压缩版本
安装Tomcat 不要拷贝到中文或者带空格的目录下

运行时双击 bin 目录下的 startup.bat 文件

输入 http://localhost:8080/,显示如下界面代表安装成功


一个机器可以装很多服务器,客户端通过端口号来区分

面试题:请说出互联网上常用协议及其工作端口

HTTP协议:web服务器通常用80端口(仅开发的时候是8080)

SMTP:25

POP3:110

FTP:23

HTTPS:443

Tomcat常见启动问题

Java_home环境变量(因为Tomcat是Java写的)

在windows中设置java_home环境变量
只要在startup.bat批处理文件第一次使用JAVA_HOME环境变量之前的任何地方,将JAVA_HOME环境变量设置为JDK的主目录,就可以使用startup.bat文件启动Tomcat了。

端口占用问题

查看端口占用情况:在命令行下启动Fport.exe程序,显示端口占用情况
然后在任务管理器中结束占用端口的进程,如果是系统服务导致无法结束,就手动
项目上线部署的时候服务器要运行在80端口上,这样服务端访问时就不用指定端口,而是访问HTTP协议的默认端口80
如何让服务器运行在80端口上:tomcat-->conf-->server.xml--><connector port=“8080”改为80。Tomcat核心配置文件server.xml配置服务器到底启动了什么 http:// www.sina.com: URL地址;www.sina.com:主机名;sina.com:域名;买下域名后可以在该域名下搭多台主机(也就是多个网站:比如还有mail.sina.com)

Catalina_home环境变量的设置问题

用于指定startup.bat启动的Tomcat 在哪里,即指向tomcat根目录
建议实际开发不要配置该变量,因为可能会出现点击启动的tomcat服务器不是实际要启动的tomcat服务器

Tomcat目录结构



WEB应用程序

Web应用简介

WEB应用程序指供浏览器访问的程序,通常也简称为web应用。

一个web应用由多个静态web资源和动态web资源组成,如:

html、css、js文件
Jsp文件、java程序、支持jar包、
配置文件等等……
组成web应用的这些文件通常会使用一个目录组织,这个目录称为web应用所在目录

Web应用开发好后,若想供外界访问,需要把web应用所在目录交给web服务器管理,这个过程称之为虚似目录的映射

虚似目录的映射方式

方式一:在server.xml文件的host元素中配置,例如:



注意:Context标签单词的首字母一定要大写!否则显示资源不存在
一个Context意为一个web应用,配置web应用就是配置一个Context。
将所配置的web应用设置为默认:path=“”
改变配置之后一定要重启web服务器

方式二:

在Tomcat6中,不再建议在server.xml文件中配置context元素,因为该方式需要重启服务器,细节查看tomcat服务器关于context元素的说明(tomcat主页->tomcat documentation->Reference下的configuration->containers下的context)。
建议采取其中的第三种方式:在apache-tomcat-6.0.35\conf\Catalina\localhost中新建一个xml文件,文件名将会作为context path,多级路径用#定义,比如/foo/bar,文件名就写为:.
foo#bar.xml 。
缺省的web应用使用ROOT.xml文件定义
这样可以进行虚拟目录的映射后不需要重启服务器

方式三:让tomcat自动映射

tomcat服务器会自动管理webapps目录下的所有web应用,并把它映射成虚似目录。换句话说,tomcat服务器webapps目录中的web应用,外界可以直接访问。

实际部署中,服务器和web应用会放在不同盘符下,就需要使用虚拟目录映射的方式了!方式三只适用于进行开发中

WEB应用的组成结构

开发web应用时,不同类型的文件有严格的存放规则,否则不仅可能会使web应用无法访问,还会导致web服务器启动报错。



web应用中,web.xml文件是其中最重要的一个文件,它用于对web应用中的web资源进行配置和管理。

web.xml文件

通过web.xml文件,可以将web应用中的:

某个web资源配置为网站首页
将servlet程序映射到某个url地址上
为web应用配置监听器
为web应用配置过滤器
但凡涉及到对web资源进行配置,都需要通过web.xml文件

举例:通过web.xml文件配置网站首页。

只需要输入http:\localhost就能访问主页的配置:

在web.xml文件中设置主页
将该web应用设为缺省
将服务器端口号设为80

注意:web.xml文件必须放在web应用\WEB-INF目录下。该文件必须符合schema规范,实际可以按服务器中的web.xml文件进行配置

配置虚似主机以及搭建网站

在一个Tomcat服务器中可以放置多个网站,配置虚似主机就是在tomcat服务器中配置一个网站

如需在WEB服务器中配置一个网站,需在tomcat服务器的server.xml中的Host元素进行配置,例:

<Host name=”www.sina.com” appBase=”c:\sina”>
<Context path=“/mail” docBase=“c:\sina\mail”/>//web应用的标签
</Host>


可以有多个Host元素,每个元素对应一个网站
一个网站可以有多个web应用,比如news和mail,即一个Host里对应多个Context

配置的主机(网站)要想被外部访问,必须在DNS服务器或windows系统中注册。

要想实现在本机用www.sina.com/mail/1.html进行访问,在”c:\windows\systems\drivers\ext\hosts”文件中将该主机名的IP配置为本机的ip地址,因为浏览器访问DNS服务器之前会先查看本机的映射关系
应用:阻止程序自动升级,自动转接本机,将提供升级的服务器主机名对应IP地址设为本机IP地址

配置多个网站。再添加其他Host:

<Host name=”www.google.com” appBase=”c:\google”>
<Context path=“/mail” docBase=“c:\google\mail”/>//web应用的标签
</Host>
缺省虚似主机。比如输入www.sina.com直接访问网站首页

先将web应用配置成缺省,即将Context中path设为空字符串
然后在web应用的web.xml文件中配置首页:在<welcom-file-list> 下的<welcom-file>填入首页文件名,比如1.html

搭建网站:先将web应用部署到服务器中,然后将有web应用的主机名在DNS上注册

web资源访问过程

程序交互图画图工具:rose

主机名www.sina.com.cn的两个作用:查询DNS对应ip;告诉web服务器所访问的主机



web应用打包、reloadable元素

打包web应用 war包

在远程服务器上部署web应用,需要打包之后通过服务器的远程控制软件上传过去
DOS中进入web应用的父目录,输入jar –cvf news.war news
war包部署到服务器后,会被服务器识别,然后自动解压

配context元素的reloadable元素,让tomcat自动加载更新后的web应用,就不需要重新发布web应用

<Context path=“/mail” docBase=“c:\sina\mail”
reloadable=“true”/>
全局性配置:如果在服务器的conf目录下的context.xml里的Context中加入reload,那么服务器中所有的应用会自动加载,因为该文件中的配置会被所有的web应用共享
建议开发时不设置该属性,当web应用很大时,反复自动加载容易导致内存溢出等问题

Tomcat体系架构(参考server.xml)



知识:软件领域密码学

对称加密:双方使用同一个密码加密和解密一个文件,但是密码无法安全传递

非对称加密:

收件方首先采用非对称加密算法生成一对秘钥:公钥和私钥(特点:公钥加密的数据只能私钥解密,私钥加密的数据只能公钥解密)
然后收件方通过互联网将公钥交给发件方,发件方用公钥加密数据,然后发送给收件方
收件方使用私钥解密文件
非对称加密的问题:恶意方截获收件方发给发件方的公钥,然后自己生成一对秘钥,将其中的公钥发送给发件方,发件方用该公钥加密数据发送后被恶意方截取,然后恶意方使用自己的私钥解密
发件方要怎么确保所收到的公钥是收件方发出的呢?通过一个叫CA的第三方机构。收件方找CA对自己产生的公钥进行担保,CA为收件方出示一份数字证书(包含公钥),然后收件方将数字证书发送给发件方。发件方验证该数字证书为CA发送之后再进行数据加密
浏览器内部自带了数字证书校验功能,浏览器提示安装数字证书获取公钥,用于加密填写的用户名和密码等信息
数字证书问题:恶意方截取发件方发送的数据,然后使用数字证书中的公钥加密一份假数据然后发送给收件方
收件方需要如何判断数据是发件方所发送呢?发件方需要产生一对秘钥,然后向收件方发送包含公钥的数字证书,再将用收件方的公钥加密的数据的数据摘要(也叫数据指纹,采用MD5算法获取)用自己的私钥再加密,也就是对数据进行数字签名,然后将加密的数据和加密的数据摘要一起发送给收件方,收件方用发送方的公钥进行解密,如果成功就确定数据是发件方发送的,成功解密后得到数据摘要,同时获取收到数据的摘要,将两个摘要进行对比,确认数据在传输过程中没有被篡改
术语:数字证书(公钥),数字签名

配置https连接器(即配置加密连接器)

首先为网站创建数字证书,系统会使用一个秘钥库来保存:

在DOS中输入:keytool -genkey -alias tomcat -keyalg RSA(keytool是java的命令)
然后需要输入秘钥库的密码(一般123456)再次输入密码您的名字与姓氏是什么(为哪个网站生成数字证书 ):localhost接下来的不填…确认:y确认数字证书的秘钥是否与秘钥库的一样就在当前目录下产生了一个秘钥库文件,里面包含网站的数字证书
将生成的秘钥库复制到服务器的conf目录下

然后服务器中配置一个加密的连接器Connector,当用户访问网站时,访问秘钥库将数字证书出示给用户

在server.xml中添加(原文件中已将该段配置代码进行了注释,可以直接复制进行使用)
<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true"
clientAuth=“false” sslProtocol=“TLS”  keystoreFile=“conf/.keystore” keystorePass=“123456”/>指定秘钥库文件,秘钥库密码

配置要求可详见tomcat文档
然后输入https://locahost:8443访问,如果该数字证书没有进行CA认证,那么会提示“此网站的安全证书有问题”,将该证书进行安装后即信任了该证书
删除安装的证书:Internet选项内容证书
如果客户端浏览器被劫持,中毒了,比如钓鱼网站,就有泄露信息的风险。现在银行给用户U宝,里面就是证书,将U包插入,安装证书到机器中。U包只读不可写,所以不会中毒

Tomcat服务器的管理平台

Web应用的管理平台

Tomcat首页点击进入tomcat manager,输入用户名密码(在conf目录的tomcat-users.xml中配置,注释中已经提供了)

<role rolename="tomcat"/>
<role rolename="manager"/>
<user username=“tomcat” password=“tomcat” roles=“tomcat”/>名称为tomcat的用户拥有两个role,一个是tomcat,一个是manager,这样才能以用户名为tomcat进入tomcat管理平台<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">	</span>
平台里会列出tomcat里所有的web应用,还可以通过后面的超链接对web应用进行管理:比如undeploy会在硬盘中删除web应用

意义:实际中web应用会在服务器机房托管,需要在家里管理服务器的应用,而不用到机房去

还可以部署war文件:自动上传war文件至服务器

web应用的开发前景

软件开发的两种架构:c/s和b/s

c/s会消失



context元素常用属性



作业

在webapps目录下创建一个可供外界访问的web应用。

在server.xml文件中进行配置,把c:盘下的某一个web应用映射成可供外界访问的虚似目录。

在catalina/localhost目录下进行设置,把c:盘下的某一个web应用映射成可供外界访问的虚似目录。
在server.xml文件中配置一台www.itcast.cn的虚似主机,然后在window系统中注册www.itcast.cn这台主机。

在虚似主机的根目录中创建一个名称为itcast的web应用,并在该应用下创建一个index.html页面,然后把web应用映射成缺省web应用。index.html页面设置为web应用的首页。

将web服务器端口更改为80端口。

以上三步完成就可以用http://www.itcast.cn访问主页

画图说明浏览器是如何访问到web服务器下的web主机下的web应用下的web资源的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: