Javaweb基础知识

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页面;

实例


静态网页与IE浏览器的交互:
这里写图片描述

连接程序:Server.java

import java.io.FileInputStream;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;

public class Server {

    public static void main(String[] args) throws Exception {
        ServerSocket server = new ServerSocket(9999);
        Socket sock = server.accept();
        FileInputStream in = new FileInputStream("F:\\java0601\\HtmlDemo\\one.html");
        OutputStream out = sock.getOutputStream();
        int len = 0;
        byte[] buffer = new byte[1024];

        while((len = in.read(buffer)) > 0) {
            out.write(buffer, 0, len);
        }

        in.close();
        out.close();
        sock.close();
        server.close();
    }
}

静态网页:one.html

注意:静态网页one.html与连接程序Server.java要在同一个目录下,且在DOS下编译和运行连接程序,再在IE中输入URL地址,此处实例的地址是:http://localhost:9999 ;


WEB服务器


  • 在web开发之前,需要先安装一台web服务器,然后再在web服务器中开发相应的web资源,供用户使用浏览器访问;
  • 学习web开发,为何必须要先装一个web服务器?

常见WEB服务器


apache

  • 在小型的应用系统或者有特殊需要的系统中,可以使用一个免费的Web服务器:Tomcat,该服务器支持全部JSP以及Servlet规范;

WebSphere

  • IBM公司的WebSphere,支持J2EE规范;

WebLogic

  • BEA公司的产品,是目前应用最广泛的Web服务器,支持J2EE规范,且不断的完善以适应新的开发要求;

Tomcat

  • 在小型的应用系统或者有特殊需要的系统中,可以使用一个免费的Web服务器:Tomcat,该服务器支持全部JSP以及Servlet规范。

常用协议及其对应端口

http 80 //Web常用

  • 例如:http://www.sina.com,中http会指向80端口;http协议,默认端口为80;www.sina.com为主机名;sina.com为域名,一般购买的指的就是域名,可以搭建多个网站,例如:http://mail.sina.com;URL地址为:http://www.sina.com;如果需要指定端口号,则:http:\www.sina.com:8080;

sntp 25
pop3 110
ftp 23
https 443

tomcat服务器无需使用端口8080即可打开Apache网页的设置,而使用http默认端口80;
1、在conf文件夹中,将server.xml文件中connector port改为80;
这里写图片描述
这里写图片描述
2、如果遇到80端口被占用,请先将占用所对应的程序关闭,是80端口无指向;
3、在IE中直接输出URL:http:localhost即可
这里写图片描述

注意:
1、不要在读个盘符中放置tomcat服务器文件夹;
2、用Cataline_home设置tomcat服务器环境变量时,如果存在多个盘符中有服务器时,该设置会指向设定目录下的服务器,因此,该环境变量最好是不用设置为好;


tomcat服务器目录结构


这里写图片描述
该文件结构指的是文件夹版,并非安装版;
bin-存放启动和关闭Tomcat的脚本文件;
conf-存放Tomcat服务器的各种配置文件;
lib-存放Tomcat服务器的支撑jar包;
logs-存放Tomcat的日志文件;
temp-存放Tomcat运行时产生的临时文件;
webapps-web应用所在目录,即供外界访问的web资源的存放目录;
work-Tomcat的工作目录;


WEB应用程序


  • WEB应用程序指供浏览器访问的程序,通常也简称为web应用;
  • 一个web应用由多个静态web资源和动态web资源组成,如:
    –html、css、js文件
    –Jsp文件、java程序、支持jar包
    –配置文件等……
    –组成web应用的这些文件通常我们会使用一个目录组织,这个目录称之为web应用所在目录
  • Web应用开发好后,若想供外界访问,需要把web应用所在目录交给web服务器管理,这个过程称之为虚拟目录的映射;

web应用想供外界访问方式一
1、在tomcat服务器中conf文件夹下,修改server.xml文件,添加语句
这里写图片描述

<Context path="/itcast" docBase="F:\java0601\News"/>

在News文件夹下,有one.html和two.html,其中,itcast为虚拟文件夹,事实上,电脑硬盘上是不存在的。
这里写图片描述
在网页打开URL前,如果已经开过tomcat服务器,请重启一下!
在网页中打开URL:http://localhost:8080/itcast/two.html或者http://localhost:8080/itcast/one.html
这里写图片描述
缺点:在实际开发中,该方法是不行的,因为服务器在上线后,是不能重启(特殊情况外)。

如果想要配置成缺省的web应用,则可将代码修改为(记得重启tomcat服务器再使用):

<Context path="" docBase="F:\java0601\News"/>

web应用想供外界访问方式二
备注:该方法来源于apache tomcat上下文容器Context的定义上下文方法;
这里写图片描述
首先,请将conf文件下server.xml文件中添加的语句删除,如下图所示;
改动前server.xml文件

<Context path="/itcast" docBase="F:\java0601\News"/>

然后,在下面所示路径下,新建abc.xml文件

H:\Program Files\Apache Software Foundation\Tomcat 7.0\conf\Catalina\localhost

localhost目录
其中,abc.xml文件内容为
abc.xml文件内容
注意,此处代码不需要虚拟路径,且tomcat服务器也不用重启
最后,在浏览器中输入URL:[http://localhost:8080/abc/one.html],其中abc文件夹,是从abc.xml文件名派生而来。
abc下的html
如果要显示多级下的*.html文件,则创建的上下文配置文件命名为 d#e#f.xml,在浏览器中的URL为
http://localhost:8080/d/e/f/one.html
多级目录下的html文件

特技:如果将abc.xml更改为ROOT.xml(称之为缺省的web应用),则在浏览器中的URL为:
http://localhost:8080/one.html

ROOT.xml

ROOTxml网页
注意,此处记得清重启一下tomcat服务器
方式二为推荐使用方式;


  • 在tomcat中,不建议在server.xml文件中配置context元素,在上述实例中可知;
  • 让tomcat自动映射:tomcat服务器会自动管理webapps目录下的所有web应用,并把它映射成虚拟目录。换句话说,tomcat服务器webapps目录中的web应用,外界可以直接访问。
    webapps目录
    则直接可以使用URL:http:localhost:8080\News\one.html
    webapps中News网页

WEB应用的组成结构


  • 开发WEB应用时,不同类型的文件有严格的存放规则,否则不仅可能会使web应用无法访问,还会导致web服务器启动报错。
    web应用组成结构
    mail根目录路径
  • 将mail的web应用中three.html文件内容置于首页
    1、记得将tomcat服务中servel.xml、context.xml删除添加的内容,否则服务器启动会出现问题;
    2、将tomcat服务器中conf-web.xml文件的头和尾复制到mail-WEB-INF下的web.xml中;
    关键代码内容如下:
<?xml version="1.0" encoding="ISO-8859-1"?>
<!--
  Licensed to the Apache Software Foundation (ASF) under one or more
  contributor license agreements.  See the NOTICE file distributed with
  this work for additional information regarding copyright ownership.
  The ASF licenses this file to You under the Apache License, Version 2.0
  (the "License"); you may not use this file except in compliance with
  the License.  You may obtain a copy of the License at

      http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.
-->
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
                      http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
  version="3.0">

   <welcome-file-list>
        <welcome-file>three.html</welcome-file>
    </welcome-file-list>

</web-app>

其中,three.html文件是mail目录下的静态网页文件
3、在浏览器中URL:http://localhost:8080/mail
mail的网页显示
4、如果在URL中不指定mail,则需要在tomcat服务器中conf-server.xml中进行设置
注意:记得重启服务器

<Context path="" docBase="H:\Program Files\Apache Software Foundation\Tomcat 7.0\webapps\mail"/>

server.xml中添加后文件:
这里写图片描述
网页URL:http://localhost:8080
这里写图片描述
记住:要重启服务器

如果将server.xml文件中:

修改前:

 <Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />

这里写图片描述
修改后:

 <Connector port="80" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />

这里写图片描述
则此时的URL:http://localhost
记得在修改过server.xml文件后,一定要重启服务器,且事后记得恢复默认
这里写图片描述

5、web.xml文件

  • web.xml文件是整个web应用中最重要的配置文件,它必须放在WEB-INF目录中。在开发web应用时,但凡涉及到对web应用中的web资源进行配置,通通是在web.xml文件中进行配置。例如:
    –某个web资源配置为网站首页
    –将servlet程序映射到某个URL地址上
    –为web应用配置监听器
    –为web应用配置过滤器
    –……

  • 认识web.xml文件的作用:
    1)通过web.xml文件把某个web资源配成网站首页。


配置虚拟主机


  • 在一个tomcat服务器中可以放置多个网站,所谓配置虚拟主机,就是在tomcat服务器中配置一个网站。
  • 如需在WEB服务器中配置一个网站,需使用Host元素进行配置,例:

该步是添加在tomcat服务器conf的server.xml文件中

<Host name="site1" appBase="c:\app"></Host>
  • 配置的主机(网站)要想被外部访问,必须在DNS服务器或windows系统中注册。
  • 配置多个网站。
  • 缺省虚拟主机。

示例:配置一个www.sina.com的网站

  1. 在此路径(F:\java0601\sina)下创建sina的文件夹,该文件夹下包含news & mail
    同时,在mail文件夹下创建one.html文件
    这里写图片描述

  2. 在tomcat-conf文件夹下修改server.xml文件,添加内容为:

<Host name="www.sina.com" appBase="F:\java0601\sina">
    <Context path="/mail" docBase="F:\java0601\sina\mail"/>
</Host>

这里写图片描述

同时,将8080端口修改为80

 <Connector port="80" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />
  1. 在路径C:\Windows\System32\drivers\etc下,修改hosts文件,添加内容如下所示:
192.168.0.103    www.sina.com 

这里写图片描述
此处的ip地址为,本人电脑的本地IP
查询方法:在运行中输入cmd,DOS下输入ifconfig,如下图所示:
这里写图片描述
4. 在浏览器中输入URL:http://www.sina.com/mail/one.html
这里写图片描述
记住,在修改过server.xml文件后,记得要重启tomcat服务器
5.如何将URL中的mail去掉,同时,将one.html设置为网页首页?
将server.xml中的Host进行修改,即path=”“

<Host name="www.sina.com" appBase="F:\java0601\sina">
    <Context path="" docBase="F:\java0601\sina\mail"/>
</Host>

再在mail文件夹下新建WEB-INF文件夹,新建文件web.xml,其内容为:
可以将one.html设置首页

<?xml version="1.0" encoding="ISO-8859-1"?>
<!--
  Licensed to the Apache Software Foundation (ASF) under one or more
  contributor license agreements.  See the NOTICE file distributed with
  this work for additional information regarding copyright ownership.
  The ASF licenses this file to You under the Apache License, Version 2.0
  (the "License"); you may not use this file except in compliance with
  the License.  You may obtain a copy of the License at

      http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.
-->
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
                      http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
  version="3.0">

    <welcome-file-list>
        <welcome-file>one.html</welcome-file>
    </welcome-file-list>

</web-app>

浏览器中现在的URL可以为:http//www.sina.com
这里写图片描述


其它问题


  1. 画图演示web资源的访问过程;
  2. 打包web应用为war
    运行-DOS下进入sina文件夹,利用java专门的打包工具对mail打包
    这里写图片描述
    打包后的mail.war文件
    这里写图片描述
    因为tomcat服务器认识war格式的文件
    将mail.war文件发布到(拷贝到)tomcat服务器中去
    这里写图片描述
    此处的tomcat识别war文件,需要服务器开启
  3. 配context元素的reloadable元素,让tomcat自动加载更新后的web应用
    例如:在server.xml中添加reloadable属性,在之后的开发中,java程序更改后,会自动更新mail应用(但实际开发中并不建议使用,防止服务器出现溢出),此处是指定的web应用
<Host name="www.sina.com" appBase="F:\java0601\sina">
            <Context path="/mail" docBase="F:\java0601\sina\mail" reloadable="true"/>
      </Host>

如果在context.xml文件中添加在属性值,则会出现所有的web应用会自动加载,此处是全局性的配置

<Context reloadable="true">

    <!-- Default set of monitored resources -->
    <WatchedResource>WEB-INF/web.xml</WatchedResource>

    <!-- Uncomment this to disable session persistence across Tomcat restarts -->
    <!--
    <Manager pathname="" />
    -->

    <!-- Uncomment this to enable Comet connection tacking (provides events
         on session expiration as well as webapp lifecycle) -->
    <!--
    <Valve className="org.apache.catalina.valves.CometConnectionManagerValve" />
    -->

</Context>
  1. tomcat的体系结构和配置https连接器 公钥 私钥
    –keytool -genkey -alias tomcat -keyalg RSA

  2. tomcat服务器管理平台

  3. web应用的开发前景B/S c/s

Tomcat体系结构


tomcat体系结构


配置tomcat的https连接器

  1. 在运行cmd-DOS中输入:
keytool -genkey -alias tomcat -keyalg RSA

会出现秘钥库密码提示,如果是第一次键入密码,是看不到密码显示的;具体如下图所示:
在DOS中创建keystore

在C盘账户中生成了.keystore
在C盘中生成keystore
即已经拥有了网站的数字证书了。

  1. 将C盘中生成的.keystore文件剪切到tomcat-conf文件夹中。
    将.keystore文件剪切至conf中
  2. 在server.xml文件中配置一个加密的连接器,但此加密连接器默认是被注释掉的,将其打开。
<Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol"
               maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
               clientAuth="false" sslProtocol="TLS" />

该段代码为默认被注释掉的连接器语句,可以将注释去掉,启用他
启用加密连接器
但是如何将秘钥连接器和秘钥结合起来使用呢?
这里可以查看Apache tomcat的http连接器
tomcat的http连接器
关于keystore的两个属性
keystore的两个属性
keystoreFile-指定秘钥库文件的位置
keystorePass-秘钥库密码
配置好后的结果如下所示:
这里写图片描述
再重启服务器
此时,浏览器访问的是加密的端口,URL为:https://localhost:8443
由于创建的数字证书为添加的受信任的证书(CA数字证书机构),浏览器会提示证书错误
证书错误
可以点击“错误证书”将其添加到受信任
测试完成后,将localhost数字证书删除步骤:
Internet选项-内容-证书-受信任的根证书颁发机构-查找localhost,删除。


tomcat管理平台


  1. 首先启动tomcat服务器,用URL(http://localhost:8080)在浏览器中打开apache tomcat
    Host Manager

用户名和密码

点击Host Manager后,会出现用户名和密码,它们是可以配置的,在conf-tomcat-users.xml文件中进行配置。
tomcat-users.xml
将被注释的内容启用并添加管理员,其代码为:

  <role rolename="tomcat"/>
  <role rolename="role1"/>
  <role rolename="manager-gui"/>
  <user username="tomcat" password="tomcat" roles="tomcat"/>
  <user username="both" password="tomcat" roles="tomcat,role1"/>
  <user username="role1" password="tomcat" roles="role1"/>
  <user username="manager" password="tomcat" roles="manager-gui"/>

manager-gui
此处自行配置的用户名和密码分别是:
用户名:manager
密码:tomcat
登入后的界面为:
TWAM
如果在本机路径(H:\Program Files\apache-tomcat-7.0.82\webapps)添加项目,tomcat网页应用管理也会同步,如下图所示:
File-aaaaa

Manager-aaaaa
其中:
reload-重新加载应用
undeploy-删除应用

通过tomcat网页应用管理,可以实现远程控制web应用,所以用户名和密码千万不能泄露出去。
记住,测试之后,请注意恢复tomcat-users.xml默认的设置

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值