第一章 动态网页基础

本章简介
    通过学习的JavaSE、Web前端等方面的技术,从本章开始,将结合之前所学内容,逐步接触用用的Web系统开发。本章将从动态页面和静态页面的区别说起,介绍Web应用系统的工作原理。大家可以系统地了解并学会使用Tomcat这个非常流行的Web应用程序服务器,以及使用eclipse快速的开发Web程序。

1.1 动态网页

① “动态”是相当于“静态”而言的。
② 静态页面:页面的内容一旦生成,就不会再发生变化,因此无法和用户即兴交互。
③ 动态网页:页面的内容生成以后,可以随着时间、客户操作的不同而发生改变。比如:我们经常使用的百度、淘宝、京东等网站,都是使用的动态网页。
    以百度为例,当我们搜索“天气”时,页面会显示与当前时间和地点相关的内容,如图,显示的是北京的、当天的天气情况。

天气
值得注意的是:

不要将“动态网页”和“页面内容是否有动感”混为一谈。
动态网页需要使用服务器端脚本语言,如JSP等。

1.2 C/S与B/S

1)C/S架构:

    Client/Server,客户端/服务端模式。将软件系统分为客户端和服务端两层,用户在本机安装客户端,通过网络连接服务端。比如微信、QQ、LOL等。
    C/S架构的不足:以QQ为例,
① 如果腾讯将QQ进行了升级,那么全球所有安装QQ的客户端都要进行升级。也就是说,凡是采用了C/S架构的软件,每一次对软件进行改动后,都必须对所有的客户端进行升级。
② 任何一台客户端出现了问题,都必须进行维护。
③ 所有客户端都必须安装QQ软件。
能不能别这么麻烦?有没有一种架构,及可以降低我们的维护量,又能更广泛的使用我们的系统呢?答案就是B/S架构。

2)B/S架构:

    Browser/Server,浏览器、服务器模式。这种模式统一了客户端,将系统功能实现的核心部分集中到服务器上,简化了系统的开发、维护和使用。客户机上只要安装一个浏览器就可以访问服务端。
    比如使用B/S架构实现的网页版百度,用户并不需要安装百度客户端,就能通过浏览器访问百度,类似的还有网页版的淘宝、京东等。即使开发人员对百度进行修改,也不会影响到任何一个用户。也就是说,采用B/S架构的软件系统,用户只要能联网,就可以通过浏览器来访问,也无需对系统的升级进行维护。而开发维护人员,只需要对服务端的代码进行修改即可。

3)需要注意

    B/S架构是C/S架构的升级和完善,而不是C/S架构的替代品。C/S架构的软件系统有着本地相应快、界面更美观友好、能减轻请服务器负荷等优势。

1.3 Tomcat相关操作

    在进行Java Web开发时,需要有服务器端的支持,本章将讲解最常用的Web服务器—Tomcat服务器的安装、配置及其工作原理。

1)什么是Tomcat

    Tomcat是Apache软件基金会的Jakarta项目中的一个核心项目,由Apache、Sun和其他一些公司及个人共同开发而成。Tomcat服务器是一个免费的开放源代码的Web应用服务器,属于轻量级应用服务器,是开发和调试JSP程序的首选。

2)Tomcat安装

① 访问Apache官网 http://www.apache.org/ ,点击Tomcat
Tomcat官网
② 在Download下选择Tomcat9:
Tomcat9
③ 最后选择下载zip版:
下载zip版
④ 下载完后,将其解压,得到的各目录及功能如下表:

目录说明
bin存放Tomcat服务器的所有可执行命令,例如:启动服务器命令startup.bat,关闭服务器命令shutdown.bat等。
conf存放Tomcat服务器的所有配置文件,其中最重要的是server.xml
libTomcat服务器的核心类库(jar文件),也可以将第三方类库复制到该路径下
logs存放Tomcat服务器每次运行时,产生的日志文件
temps存放Tomcat服务器运行时的临时文件
WebappsWeb应用程序存放的目录,Web项目保存在此目录中即可运行
workTomcat服务器把由Jsp生成的servlet文件(.java),以及编译产生的字节码文件(.class)存放在此目录。该目录可以删除,但在每次启动Tomcat服务器时,Tomcat会重新建立该目录。

⑤ 说明:
问:tomcat版本的选择有什么要求?
答:Tomcat版本需要与其他相关软件的版本相对应,比如与Tomcat9.0对应的java开发环境是jdk8或以上版本,
tomcat版本要求

3) Tomcat基本配置

① Tomcat环境变量的配置:
  Tomcat服务器下载解压后,需要配置JAVA_HOME,具体如下:
 a. Tomcat使用前必须配置JAVA_HOME。
 b. Tomcat可以选择性的配置CATALINA_HOME。
 配置方法:在环境变量里,新建系统变量,变量名设置为CATALINA_HOME,变量值设置为tomcat的安装目录D:\apache-tomcat-8.0.32
 如果没配置CATALINA_HOME,在启动tomcat时(启动方法见后文),tomcat也会自动的将tomcat的安装目录设为CATALINA_HOME的值。
② Tomcat端口号的配置:
 a.修改端口号步骤:
  i.打开Tomcat安装目录,然后找到conf目录,打开里面的server.xml文件
  ii.找到如下代码,大约在69-71行。

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

  iii.将其中的默认端口8080,改为其他未被占用的端口,如8888。
③ 为什么要修改端口号:
  不同的服务器都有自己默认的端口号,一旦某个服务器的端口被占用,则就无法再访问此服务器。Tomcat服务器的默认端口号是8080。但是,如果Tomcat服务器的默认端口8080被其他服务器的端口占用(例如Oracle也会使用到8080端口),那么就需要我们地手动修改Tomcat的端口号。

4) 启动Tomcat方法

启动Tomcat服务器:双击打开Tomcat安装目录里,bin目录中的启动命令startup.bat。

5) 访问Tomcat中的项目

  在tomcat的webapps目录中,保存着可以运行的Web项目。在Tomcat下载后,webapps里就自带了几个可以直接运行的示例项目,如图:
Tomcat项目
  我们先执行tomcat的启动命令startup.bat,然后在浏览器输入 http://localhost:8080/examples/ ,即可访问webapps中的examples项目,如图:
example项目

访问格式: 访问地址:端口号

其中网址 http://localhost(或 http://127.0.0.1)代表本机地址。

6).状态码

访问 http://localhost:8080/examples/ 时,实际访问的是examples文件夹中的index.html文件。如果将index.html文件删除,再次访问 http://localhost:8080/examples ,页面就会提示错误信息,如图,
404页面展示
  其中,HTTP Status 404代表要访问的资源不存在。
  在开发时,为了方便JSP页面的调试,即使要访问的文件夹中的资源不存在,我们也希望能显示出该文件夹中的目录结构。可以打开Tomcat安装目录里conf目录下的web.xml文件,找到如下代码,(113-125行左右),

…
<servlet>
…
        <init-param>
            <param-name>listings</param-name>
            <param-value>false</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
</servlet>
…

将其中的false改为true即可。改完之后,重新启动tomcat服务器(先执行shutdown.bat关闭,再执行startup.bat启动),再次访问 http://localhost:8080/examples/ ,则就可以得到examples中的文件目录结构,如图,
example的文件目录结构
以下是几种常见的HTTP状态码:

状态码含义
200请求成功,一切正常
3xx以3开头的状态码,如300、301等均表示重定向
403资源不可用。服务器理解客户的请求,但拒绝处理它。通常由于服务器上文件或目录的权限设置导致。
404无法找到指定位置的资源(常见的错误应答)
5xx服务器内部错误,例如服务器端的代码出错。

在出错以后,可以根据这些状态码迅速地发现出错的原因,其他状态码需要我们在平时开发中多积累。

1.4 手工开发一个Web项目

  前面我们所使用的examples项目是tomcat自带的Web示例项目,那么我们如何新建自己的Web项目呢?其实很简单,只需要按照一定的规则,建立项目的目录结构即可,具体目录结构如下:
① 先在tomcat安装路径的webapps目录中,新建一个项目文件夹(如JspProject)
② 再在JspProject中新建WEB-INF文件夹
③ 再在WEB-INF中新建classes、lib两个文件夹和web.xml文件.

新建webapp项目的目录结构
最后在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"
  metadata-complete="true">
    <welcome-file-list>
        <welcome-file>index.jsp</welcome-file>
    </welcome-file-list>
</web-app>

  其中标签用来指定项目的默认首页。
  说明:上面web.xml文件中的基本内容,开发人员不必亲自编写。可以直接从webapps里任意一个项目里找到web.xml文件,然后复制即可。
  至此,就完成了Web项目结构的搭建。

目录结构说明:

目录说明
WEB-INF可以存放web项目的各种资源;但是,该目录下的所有资源是无法通过客户端直接访问的。
WEB-INF/classes存放Web项目的所有字节码文件(*.class)
WEB-INF/lib存放扩展Web项目时使用的jar文件

④ 前面我们已经创建好了一个名为JspProject的项目结构,并且指定了该项目的默认首页是index.jsp。接下来,我们在JspProject根目录里创建一个index.jsp文件,内容如下,

<html>
 <head>
  <title>First Web Project</title>
 </head>
 <body>
  <%
   out.print("Hello World");
  %>
 </body>
</html>

然后运行startup.bat启动tomcat服务器,并在浏览器输入 http://localhost:8080/JspProject/ ,就可以成功运行此项目,如图,
JspProject运行结果
说明:
  1.我们输入的地址 http://localhost:8080/JspProject/ 中,并没有指定要访问的是index.jsp页面,但仍然能成功访问index.jsp文件,原因就是之前在web.xml中的<welcome-file-list>标签中,设置了默认首页index.jsp。
如果要访问的页面,没有在中配置,则必须输入完整的访问地址。假设index.jsp没有在中配置,则应该访问http://localhost:8080/JspProject/index.jsp
  2.代码<% out.print("Hello World"); %>就是JSP的输出语句。如果JSP代码出错,例如忘了写最后的分号“;”,则会出现HTTP状态码为500的错误提示,如图
500状态码展示

1.5 配置Web应用的虚拟路径

  Tomcat默认会将Web项目放在webapps目录下,但是,如果将所有的Web项目都放在webapps里也是不合理的。要想把Web项目放置到webapps以外的目录并能被Tomcat识别,就必须配置虚拟路径。例如,如果将之前的JspProject项目放在D:\MyWebApps中,就必须配置虚拟路径才能访问。

  配置虚拟路径有以下两种方式:

1) 通过server.xml配置虚拟路径

打开C:\Devolep\apache-tomcat-9.0.22\conf\server.xml文件,在<Host>元素中,增加并配置<Context>元素,如下:

<Host appBase="webapps" autoDeploy="true" name="localhost" … >
 <Context docBase="D:\MyWebApps\JspProject" path="/JspProject" />
</Host>

  <Context>可以将一个普通目录映射成一个可供Tomcat访问的虚拟目录。
其中,docsBase指定本地磁盘上的普通目录;path指定Tomcat访问时的虚拟目录,可以使用绝对路径或相对路径(相对于D:\apache-tomcat-8.0.32\webapps\)。
  换句话说,当用户访问path指定的虚拟目录(/JspProject)时,就会自动访问docBase指定的本地目录(D:\MyWebApps\JspProject)。
  重启Tomcat服务器,再次访问http://localhost:8080/JspProject/,运行结果:
配置虚拟路径后的JspProject项目
可见,配置了虚拟路径后,就可以访问到webapps目录以外的项目。

彩蛋:
如果把上面的path=”/JspProject”改成path=”/”,是不是访问项目的时候就可以不加项目名了呢?(http://localhost:8080

2) 通过自定义xml文件配置虚拟路径

  在server.xml中配置虚拟路径的弊端是:每次修改完server.xml,都必须重启Tomcat服务器。为了避免这个问题,就可以使用另一种方式:通过自定义xml文件来配置虚拟路径。
  打开C:\Devolep\apache-tomcat-9.0.22\conf\Catalina\localhost目录,创建 “项目名.xml”(如JspProject.xml),配置元素(同server.xml方式),如下:

\conf\Catalina\localhost\JspProject.xml

<?xml version="1.0" encoding="UTF-8"?>
<Context 
    docBase="C:\MyWebApps\JspProject" 
    reloadable="true"> 
</Context>

直接访问 http://localhost:8080/JspProject/ ,运行结果:
自定义xml方式虚拟路径后的执行结果
  此外,还能用此方法配置默认的Web项目:将JspProject.xml重命名为ROOT.xml即可。之后,直接访问 http://localhost:8080/index.jsp 或者 http://localhost:8080/
,运行结果同上。所以,改成ROOT.xml后也可以在访问项目的时候省略项目名。

1.6 配置虚拟主机

  目前,访问本地Web项目的路径格式是:http://localhost:端口号/项目名
能否使用“www.项目名.com”的形式访问呢? 可以,但需要配置虚拟主机。配置的具体步骤如下:

1) 去掉项目名

方法一:配置server.xml
  打开\apache-tomcat-9.0.22\conf\server.xml,观察以下代码:

…
<Engine defaultHost="localhost" name="Catalina">
  …
    <Host appBase="webapps" autoDeploy="true" name="localhost" 
unpackWARs="true">
    </Host>
</Engine>…

其中各元素的简介,如下表:

元素简介
Engine处理客户端请求的引擎。 defaultHost:指定默认的虚拟主机名称。例如defaultHost=”localhost”,表示指定<Host …name=“localhost” >做为默认使用的虚拟主机。
Host每一个代表一个虚拟主机。
name虚拟主机的名称;默认是localhost。
appBase虚拟主机的路径;默认webapps。采用相对路径(相对于Tomcat安装目录D:\apache-tomcat-8.0.32\),即本次是D:\apache-tomcat-8.0.32\webapps

修改\apache-tomcat-9.0.22\conf\server.xml

<Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true">
     <Context docBase="C:\MyWebApps\JspProject" path="/" />
</Host>

方法二:在C:\Devolep\apache-tomcat-9.0.22\conf\Catalina\localhost路径下,新建一个ROOT.xml (必须叫ROOT.xml),在ROOT.xml中写:

<?xml version="1.0" encoding="UTF-8"?>
<Context 
    docBase="C:\MyWebApps\JspProject" 
    reloadable="true"> 
</Context>

其中,docBase的值是:本地项目的路径。

2) 配置hosts文件

  配置好的虚拟主机要想被外界访问,还必须在Windows系统或DNS服务器中注册,用于指定虚拟主机和IP地址之间的映射关系。
  在Windows中注册虚拟主机的方法如下:
打开C:\Windows\System32\drivers\etc\hosts文件,增加以下一行代码:

127.0.0.1 www.test.com

这行代码的作用就是:建立虚拟主机(www.test.com)和IP地址(127.0.0.1)之间的映射关系。换句话说,浏览器可以通过访问www.test.com来访问本机地址127.0.0.1。

3) 配置Tomcat端口号

  Web站点默认使用的端口号是80。也就是说,如果我们将Tomcat的端口号改为80,那么就可以直接访问 www.test.com,而不需要手工加上端口号。为此,在server.xml中将端口号改为80(详见“使用Tomcat开发Web项目”一节)。之后,重启Tomat,访问www.test.com,运行结果:
www.test.com访问项目

  至此,虚拟主机的配置方法已经全部讲完。但为了与后续章节保持一致,请读者在学习完本节后,将本节涉及的所有配置进行还原,即:删除hosts文件中的配置、将端口号恢复至本书使用的8080、将servers.xml中的虚拟路径恢复。

1.7 JSP执行流程

(1) 客户端向tomcat服务器发送一个请求。例如在浏览器输入 http://localhost:8080/JspProject/ ,实际上是请求了默认的index.jsp页面。
(2) tomcat服务器接收并处理请求后,返回给客户端一个响应。其中tomcat服务器在处理请求期间,具体执行了如下流程:
第一次执行jsp页面时的流程:
  ① 将接收到的index.jsp翻译成与之对应的java文件。
  ② 再将翻译后的java文件,编译成与之对应的class文件。
  例如tomcat服务器会将请求的index.jsp文件,翻译并编译成对应的java和class文件,如图:
jsp翻译和编译后的java和class文件
它的路径是:
apache-tomcat9.0.22\work\Catalina\localhost\JspProject\org\apache\jsp

其中index_jsp.java 的部分代码:

package org.apache.jsp;
…
public final class index_jsp 
extends org.apache.jasper.runtime.HttpJspBase
        implements org.apache.jasper.runtime.JspSourceDependent {
…
   javax.servlet.jsp.JspWriter out = null;
   public void _jspService(…)…{
     …
      response.setContentType("text/html");
      …
      out = pageContext.getOut();
      _jspx_out = out;
      out.write("<html>\r\n");
      out.write("  <head>\r\n");
      out.write("    <title>First Web Project</title>\r\n");
      out.write("  </head>\r\n");
      out.write("  <body>\r\n");
      out.write("\t\t");
      out.print("Hello World"); 
      out.write("\r\n");
      out.write("  </body>\r\n");
      out.write("</html>\r\n");
      out.write("\r\n");
  }
}

  可以发现,JSP中的HTML代码,本质是通过JAVA类中的输出流动态生成的。实际上,此种JAVA类称为Servlet(后续会讲),而JSP本质是Servlet的一种简化形式。

  ③ 执行class文件
  我们发现,“在第一次运行jsp项目时,速度会慢一些,而之后再次运行则会变得很快”。这是因为JSP在第一次执行时,会经历上述的“翻译”及“编译”过程。
  而之后再次执行时,因为已经存在翻译后的java文件以及编译后的class文件,就不用再次“翻译”及“编译”,而是直接执行class文件即可。但需要注意,如果修改了jsp文件,则又会再次重新执行“翻译”及“编译”的整个过程,相当于一个新jsp的执行流程。

第二次执行jsp页面时的流程:
  只执行class文件。

注意:
若JSP文件改变,随即的java文件也会改变,class文件也会改变。

1.8 使用eclipse开发web流程

  我们还可以借助Eclipse等开发工具来快速、高效地开发Web项目。Eclipse是一个免费的IDE(集成开发环境)工具,是目前最受欢迎的Java EE开发工具之一。可以登录Eclipse官网 http://www.eclipse.org/ 下载安装。

注意:下载完eclipse,第一件事是统一编码,方法如下:

 ① 设置所有文件的文本内容编码:
依次点击Windows→ Preferences→ General→ Workspace,将Text file encoding选为UTF-8,如图:
统一编码
 ② 设置某一个项目中,所有文件的文本内容编码:
鼠标右键单击项目→ Properties→ Resource,将Text file encoding选为UTF-8,如图
统一某个项目的编码
 ③设置单个文件的文本内容编码:
鼠标右键单击某一个具体文件(如.java文件、.xml文件、.html文件或即将学习的.jsp文件等)→ Properties→ Resource,将Text file encoding选为UTF-8

1) eclipse关联Tomcat

为了能用Eclipse开发Web项目,我们还需要给Eclipse配置Web项目运行时环境(关联tomcat),具体如下:
 ① 依次点击Windows→Preferences→Server→Runtime Environment如图,
eclipse配置Tomcat1
 ② Add…→Apache Tomcat v9.0→next,如图,
eclipse配置Tomcat2
 ③ 单击Brown,选择已经解压好的Tomcat文件夹,如图,
eclipse配置Tomcat3

2) 新建一个动态Web项目:

 ① File–>New–>Dynamic Web Project
新建web项目1
 ② 输入项目名,然后点两次Next,注意勾选Generate Web.xml delopment descriptor: 勾选后会自动创建web.xml文件。
新建web项目2
 ③ 创建Jsp文件:鼠标右键单击WebContent->New→ Jsp File→ 输入jsp名字index.jsp→ Finish

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>第一个JavaWeb项目</title>
</head>
<body>
Hello Javaweb!
</body>
</html>

 ④ JspProject项目加入到Tomcat中:
鼠标右键点击Servers中的Tomcat→ Add and Remove…→ 选择JspProject→ Add→ Finish,如图,

web项目添加到Tomcat
 ⑤ 启动Tomcat服务:右键Servers中的Tomcat→ start。
 ⑥ 访问 http://localhost:8080/JspProject/ ,如图,

运行web项目
 ⑦ 若要关闭Tomcat服务,在Servers面板选中Server实例,点击关闭按钮即可,如图:
关闭Tomcat
关闭Tomcat服务后,就不能再访问JSP页面了。

1.9 扩展:

1) Tomcat的配置文件server.xml和 web.xml

① server.xml

修改Tomcat的端口号:(69-71行)

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

修改和增加虚拟主机:

<Host appBase="C:\MyWebApps\JspProject"  name="www.test.com" >
     <Context docBase="C:\MyWebApps\JspProject" path="/" />
</Host>
② 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>

配置servlet映射:

<servlet-mapping>
   <servlet-name>default</servlet-name>
   <url-pattern>/</url-pattern>
</servlet-mapping>

2) Tomcat控制台中文乱码问题解决

  刚从Tomcat官网上下载下来的Tomcat,在初次运行时,控制台窗体会出现下图所示的中文乱码。
tomcat中文乱码
  经过查看分析,可以猜测是Tomcat的log日志模块在记录时出现了中文字符不识别的问题,在Tomcat的启动文件“catalina.bat”中约215行可以看到:

if not "%LOGGING_CONFIG%" == "" goto noJuliConfig
set LOGGING_CONFIG=-Dnop
if not exist "%CATALINA_BASE%\conf\logging.properties" goto noJuliConfig
set LOGGING_CONFIG=-Djava.util.logging.config.file="%CATALINA_BASE%\conf\logging.properties"
:noJuliConfig

  如果没有设置“"%LOGGING_CONFIG%"”值,则到Tomcat根目录下“conf”子目录下的“logging.properties”文件中查看日志记录的配置,找到该文件,可发现很多的“encoding = UTF-8”配置项,因此判断是该配置项影响了Tomcat控制台的中文乱码输出,将所有的“encoding = UTF-8”都修改为“encoding = GBK”,使其识别支持中文,保存文件修改后,再次启动Tomcat,则看到如下的正常控制台界面,中文乱码不见了。
Tomcat乱码恢复正常

1.10 本章总结

1) 动态网页

  网页内容会因为不同时间、不同地点、不同搜索文字等,显示不同的内容。
BS:浏览器/服务器,比如京东网站。京东网站进行的各种维护、升级,不会对客户端产生影响。
CS:客户端/浏览器,比如QQ。QQ的每一次升级,都会涉及全部QQ用户的软件更新。
Tomcat是Apache 软件基金会的Jakarta 项目中的一个核心项目。

2) 单独使用tomcat自身开发WEB项目

 ① 首先需要配置:
  a. 确保JDK配置完毕
  b. 配置tomcat环境变量: 变量名:CATALINA_HOME,变量值:tomcat安装目录
 ② 配置完毕后,在tomcat目录中的bin目录里,startup.bat是启动命令,shutdown.bat是关闭命令。
 ③ 在webapps目录里新建项目目录(如MyJSP),再在项目目录里依次创建classes、lib目录以及web.xml文件;最后再在项目目录里手写JSP文件即可。

3) 使用Eclipse开发WEB项目

 ① 将Tomcat服务器集成到Eclipse中:
 ② 新建Web项目:
file–>new–>other–>Dynamic Web Project–>启项目名–>finish
至此项目建立完毕。
 ③ 开发WEB项目:
右键WebContent–>new–>JSP file –>文件名–>finish
 ④ 部署项目,启动服务,运行项目
部署项目:在Servers标签中,点击“No Servers…”–>选中tomcat8–>next –>选中需要部署的项目–>add–>finish
启动服务:右击servers里面的tomcat–>start即可
 ⑤ 运行项目:
  打开浏览器输入
  http://网络地址:端口号/项目名称/网页地址
  如 http://localhost:8888/JspProject/index.jsp

1.11 本章练习

一、选择题

1.下列选项中,( )不是HTTP协议的特点。
A.简单快速
B.支持C/S模式
C.持久连接
D.无状态

2.一个HTTP请求的请求行包括( )。
A.方法字段
B.URL字段
C.HTTP版本字段
D.参数名和参数值

3.以下关于http://localhost:8080/JspProject/index.jsp的说法错误的是()。
A:http指定了使用的传输协议
B:localhost代表着服务器的地址
C:8080为端口号
D:此URL中localhost可以省略不写

4.以下关于http://localhost:8080/JspProject/index.jsp这个URL说法错误的是()
A:URL中的第一部分指定使用的传输协议,例如这里的http就代表HTTP协议
B:URL中的第二部分指请求的服务器的IP地址,例如这里的localhost,有时包含端口号,例如这里的8080
C:URL中的第三部分指请求资源的路径,由零或多个“/”符号隔开。例如这里的news/index.jsp
D:URL中的第二部分和第三部分都可以省略,第一部分不可缺少

5.以下关于B/S、C/S说法正确的是()。
A:B/S架构比C/S架构更优秀
B:B/S架构是C/S架构的替代品
C:B/S是指客户端/服务器,C/S是指浏览器/服务器
D:B/S架构比C/S架构的维护和升级方式简单

6.以下关于B/S说法错误的是()。
A:在B/S架构中,浏览器端与服务器端采用请求/响应模式进行交互
B:B/S架构是C/S架构的替代品
C:基于B/S架构的Web应用程序由于不再受到安装客户端的限制、访问的简便性,越来越多的被企业所采用
D:在B/S架构下,客户端只需要安装浏览器软件即可,系统界面是通过浏览器来展现的

7.以下关于B/S说法错误的是()。
A:B/S结构是对C/S结构的一种改进
B:B/S结构,程序完全放在应用服务器上,并通过应用服务器和数据库服务器通信
C:B/S结构的响应速度比C/S快
D:B/S结构建立在Internet的基础上,所以访问范围比C/S大

8.以下关于HTTP协议说法错误的是()。
A:HTTP协议即文件上传协议
B:HTTP协议支持简单的请求和响应会话
C:当用户发送一个HTTP请求时,服务器就会用一个HTTP响应做出回答
D:对于Web服务器,通常使用HTTP协议

9.在访问Web应用时需要通过URL实现,以下选项中输入完整的URL的是()。(选择二项)
A:http://www.taobao.com
B:/product/login.jsp
C:ftp://ftp.linkwan.com
D:mail.sina.cn

10.当应用程序为B/S结构时,程序部署在()上,并通过()和()进行通信。在客户机上无需安装任何软件,系统界面是通过浏览器来展现的。
A:数据库服务器、应用服务器、数据库服务器
B:应用服务器、应用服务器、数据库服务器
C:数据库服务器、数据库服务器、应用服务器
D:应用服务器、数据库服务器、应用服务器

11.localhost:8080/JspProject/index.jsp,其中localhost属于()。
A:端口号
B:协议
C:IP地址
D:路径

12.以下关于localhost:8080/JspProject/index.jsp的描述正确的是()。
A:localhost可以省略不写
B:开头的四个字母http,可以简写成hp
C:localhost的含义是服务器的地址
D:8080的含义是端口号

13.自定义标签的配置文件放在()
A. WebRoot
B. lib
C. classes
D. WEB-INF

14.当多个用户请求同一个JSP页面时,Tomcat服务器为每个客户启动一个()
A进程
B线程
C程序
D服务。

15.下列动态网页和静态网页的根本区别描述错误的是()。
A.静态网页服务器端返回的HTML文件是事先存储好的
B.动态网页服务器端返回的HTML文件是程序生成的。
C.静态网页文件里只有HTML标记,没有程序代码。
D.动态网页中只有程序,不能有HTML代码。

16.Tomcat服务器的默认端口号是:()
A)80   B)8080   C)8888   D)1521

二、简答题

1.简述B/S架构与C/S架构的区别。
2.Tomcat目录中有哪些子目录,各有什么作用?如何启动或关闭服务?
3.使用Tomcat开发一个Web项目时,Web项目默认存放在Tomcat的哪个目录下,能否更4.换此目录?Web项目的目录结构有什么要求?
5.如何修改Tomcat的端口号?
6.使用Tomcat手动部署一个Web项目,通过项目中的JSP文件输出“Hello World”。
7.如何在Eclipse中集成Tomcat?
8.使用Eclipse集成Tomcat部署一个Web项目,通过项目中的JSP文件输出“Hello World”。
9.能否通过www.helloword.com的形式访问本地项目?
10.如何给Tomcat添加管理员?
11.简述JSP的执行流程。
12.如何通过Eclipse设置JSP文件的默认编码及文本内容编码?
13.Tomcat和JDK是什么关系?
14.什么是Web服务根目录、子目录、相对目录?
15.如何配置虚拟目录?

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值