目录
一、程序开发体系结构
随着网络技术的不断发展,单机的软件程序不足以满足网络计算的需求。为此,各种各样的网络程序开发体系结构应运而生,这当中,运用最多的网络应用程序开发体系结构主要分为两种:一种是基于浏览器/服务器的B/S结构;另外一种是基于客户端/服务器的C/S结构。
1.1 C/S体系结构
(1)C/S(Client/Server,客户端/服务器)体系结构由美国Borland公司最早研发。
(2)特点:必须在客户端(用户设备上)安装特定的软件。
(3)优点:图像效果显示比较好(比如:3D游戏)。
(4)缺点:服务器的软件和功能进行升级,客户端也必须升级,否则使用不了新的功能,不利于维护。
(5)常见的C/S体系结构程序:QQ、微信等。
1.2 B/S体系结构
(1)B/S(Bowser/Server,浏览器/服务器)体系结构由美国微软公司研发。
(2)特点:只需要一个浏览器通过http协议就可以访问,不需要在客户端(用户设备上)安装特定的软件。
(3)优点:服务功能的升级只需要升级服务器端,浏览器中不需要做任何升级操作。
(4)缺点:图形显示效果不如C/S体系结构。
(5)常见的B/S体系结构:淘宝、京东、支付宝等。
二、Web服务器
2.1 概念
2.1.1 什么是Web
(1)Web(World Wide Web)称为万维网,简单理解就是一个网站,它是Internet主机上提供给外界访问的资源、
(2)Internet上提供给外界访问的资源大体上分为两种,即静态资源(静态网站)和动态资源(动态网站)。
静态资源:指Web页面中提供给用户浏览的数据是固定不变的,页面使用HTML+CSS实现。
动态资源:指Web页面中提供给用户浏览的数据是由程序产生的,具有交互性(交互性是指网页可以根据用户的要求动态改变或响应),内容可以自动更新,并且内容会根据访问的时间和访问者而改变,甚至不同设备访问Web页面看到的内容也各不相同。页面使用Servlet+JSP等技术实现。
(3)Java Web是用Java技术来解决Web领域的相关技术的总和。Web包括Web服务器和Web客户端两部分。
2.1.2 什么是Web服务器
Web服务器发布Web应用、运行Web应用的容器。只有将开发好的Web项目部署在Web服务器中,才能使网络中的用户通过浏览器来访问Web应用。Web服务器的主要功能就是提供网上信息浏览服务。
2.2 常见Web服务器
开源的Web服务器: 1)Tomcat(主流Web服务器之一,非常适合初学者学习)。 2)jetty(淘宝使用,运行效率比Tomcat高)。 3)resin(新浪使用,所有开源服务器软件中,运行效率最高的)。 上面三个的用法从代码角度看完全相同,只是在开启、关闭服务软件时用的命令稍微有点区别。 收费的Web服务器: 1)WebLogic,Oracle公司开发的。 2)WebSphere,IBM公司开发的。 收费的Web服务器提供相应的服务与支持,软件比较大,资源消耗大。
2.3 Tomcat服务器
(1)Tomcat是Apache基金会开发的一个小型的轻量级应用服务器,技术先进,性能稳定,而且是免费的,占用系统资源小,运行速度快。
(2)Tomcat是一个运行Servlet和JSP Web应用软件。基于Java的Web应用软件容器。Tomcat Server是根据Servlet和JSP规范运行的,因此可以说Tomcat Server也实行了Apache规范,且比绝大多数商业应用软件服务器要好。
2.3.1 Tomcat的下载
进入Tomcat官网下载(Apache Tomcat® - Welcome!),其安装文件有多种格式,其中zip文件是Windows系统下的压缩版本。
2.3.2 Tomcat的安装
Tomcat无需安装,只需要将压缩包下载后,将其解压到一个文件夹中就可以使用。 注意: 1)文件夹名称中不要特殊符号。 2)文件夹名称中不要包含中文字符。 3)不建议将Tomcat解压放在磁盘层次很多的文件夹中
2.3.3 Tomcat的目录结构
Tomcat压缩包解压后,其中的各个子文件夹说明如下:
文件夹 | 作用 | 说明 |
---|---|---|
bin | 存放启动和关闭Tomcat的可执行脚本文件 | startup.bat启动Tomcat shutdown.bat停止Tomcat |
conf | 存放Tomact服务器的各种配置文件 | 这是一个非常重要的目录,这个目录下的server.xml文件和web.xml文件最重要。 server.xml:配置整个服务器信息,例如修改端口号,设置编码格式等。 web.xml:项目部署描述文件,这个文件中注册了很多MIME类型,即文档类型 |
lib | 存放Tomcat服务器的支撑jar包 | Tomcat的类库,里面存放Tomcat运行时所需要的jar文件 |
logs | 存放Tomcat的日志文件 | 该文件中记录了Tomcat启动和关闭的信息,如果启动Tomcat时有错误,异常也会记录在日志文件中 |
temp | 存放Tomcat运行时产生的临时文件 | 这个目录下的东西在停止Tomcat后删除 |
webapps | 存放各种Web应用 | 存放Web项目的目录,其中每个文件夹都是一个项目,其中ROOT是一个特殊的项目,在地址栏中没有给出项目目录时,对应的就是ROOT项目。 |
work | Tomcat的工作目录 | 运行时生成的文件,最终运行的文件都在这个文件夹中。当客户端用户访问一个jsp文件时,Tomcat会通过JSP生成Java文件,然后再编译Java文件生成class文件,生成的java文件和class文件都会存放在这个目录下 |
2.3.4 Tomcat的启动
进入Tomcat服务器的安装目录bin文件中,双击startup.bat启动程序,出现如下界面。
打开浏览器中,在地址栏中输入http://localhost:8080或者http://127.0.0.1:8080回车,会出现Tomcat的访问页面。说明Tomcat服务器启动成功。
2.3.5 Tomcat的停止
双击shutdown.bat即可关闭Tomcat启动窗口。
2.3.6 修改Tomcat端口号
8080是Tomcat默认的端口,有时候可能会被占用,这时可以通过conf文件夹下的server.xml文件修改端口号,已解决端口号冲突的问题。端口号修改完之后,要重新启动Tomcat并在浏览器的地址栏中使用新的端口号访问Tomcat服务器。
2.3.7 项目部署及静态资源访问
Tomcat是Web服务器,是一个容器(依然可以理解为装数据的容器),我们开发的项目应用需要部署在webapps文件夹下面,然后启动Tomcat服务器,在浏览器中通过特定的URL访问Web项目的页面。
2.3.7.1 创建项目
1)在webapps中建立项目文件夹,例如,webProject01 2)在webProject01文件中创建WEB-INF文件夹,存放项目的核心内容 3)在WEB-INF文件夹中,创建如下文件夹和文件: -->创建classes文件夹,存放.class文件 -->创建lib文件夹,存放jar文件 -->创建web.xml项目配置文件(这个文件可以到ROOT项目向的WEB-INF中复制) 4)把你编写的helloTomcat.html页面复制到webProject01文件夹中,webProject01页面与WEB-INF在同级目录。
2.3.7.2 通过URL访问项目
打开浏览器,在浏览器地址栏中输入URL:http://localhost:8080/webProject01/helloTomcat.html,回车,即可访问
2.3.7.3 Tomcat响应流程
2.3.8 Tomcat常见问题
2.3.8.1 Tomcat控制台闪退
闪退的问题是由JAVA_HOME配置导致的,检查JAVA_HOME配置是否正确。
2.3.8.2 404
出现404问题是因为访问资源不存在,也就是访问路径不对(文件名不对)。
2.3.8.3 500
出现500问题是服务器端的问题,一般是程序逻辑有问题。
三、Servlet(特别重要)
3.1 Servlet概念
1)Servlet:Server Applet的简称,是运行在Web服务器端的Java程序,可交互式的处理客户端发送到服务器端的请求,并完成响应操作,它使用Java语言编写。
2)Servlet可实现动态网页。
3)Servlet是JavaWeb开发程序的基础,是一个标准,由SUN定义,具体细节由Servlet容器进行实现,如Tomact、JBoss等。Servlet是JavaEE规范(一套接口)的一个组成部分。
3.2 Servlet作用
1)接收客户端请求,完成相关操作
2)动态生成网页(页面数据可变,不同用户页面数据不同)
3)将包含操作结果的动态网页响应给客户端。
3.3 Servlet开发步骤
3.3.1 搭建开发环境
将Tomcat安装路径下lib文件夹中与Servlet相关的jar包(lib\servlet-api.jar)配置到classpath环境变量中。
3.3.2 创建项目
1)在webapps中建立项目文件夹,例如,webProject02
2)在webProject02文件中创建WEB-INF文件夹,存放项目的核心内容
3)在WEB-INF文件夹中,创建如下文件夹和文件:
-->创建classes文件夹,存放.class文件 -->创建lib文件夹,存放jar文件 -->创建web.xml项目配置文件(这个文件可以到ROOT项目向的WEB-INF中复制)
4)在classes中创建类的包文件夹,在文件夹中通过实现java.servlet.Servlet接口的方式编写MyServlet类。重写java.servlet.Servlet接口中的方法,在重写的核心方法service()中编写输出语句,打印访问结果。
package com.cxyzxc.www.servlet01;
import java.io.IOException;
import java.util.Date;import javax.servlet.Servlet;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
public class Servlet01 implements Servlet{
@Override
public void destroy() {
}@Override
public ServletConfig getServletConfig() {
return null;
}@Override
public String getServletInfo() {
return null;
}@Override
public void init(ServletConfig arg0) throws ServletException {
}@Override
public void service(ServletRequest arg0, ServletResponse arg1)
throws ServletException, IOException {
System.out.println("My First Servlet!Very Good!");
}
}
3.3.3 部署Servlet
1)编译Servlet01.java文件,生成Servlet01.class字节码文件 2)将Servlet01.class文件放在Web项目的WEB-INF文件里的classes文件夹中
3.3.4 配置Servlet
编写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_3_1.xsd"
version="3.1"
metadata-complete="true"><!-- 1、添加Servlet节点-->
<servlet>
<!-- 你的Servlet类名称-->
<servlet-name>MyServlet</servlet-name>
<!-- 你的Servlet类的完整路径-->
<servlet-class>com.cxyzxc.www.servlet01.Servlet01</servlet-class>
</servlet><!-- 2、 添加servlet-mapping节点-->
<servlet-mapping>
<!-- 这个地方的servlet-name值要和上面servlet-name值保持一致-->
<servlet-name>MyServlet</servlet-name>
<!-- url-patter配置的内容是浏览器地址栏中URL里项目名称后的资源内容-->
<url-pattern>/hello</url-pattern>
</servlet-mapping>
</web-app>
3.3.5 测试运行
1)启动Tomcat
2)打开浏览器,在浏览器地址栏中输入http://localhost:8080/webProject02/hello,可以在Tomcat窗口中看到输出“My First Servlet!Very Good!”内容。
四、IDEA中创建Web项目
4.1 创建Web项目
4.1.1 创建项目
1、打开IDEA,单击“New Project”或者通过File-->new-->Project,在弹出的对话框中输入项目名称,其它的默认选择,点击finish按钮
2、为项目添加Web框架支持,右键单击创建的项目,点击Add Framework Support,在弹出的对话框中勾选Web Application(4.0)及Create web.xml复选框,单击“OK”按钮,完成添加。
3、添加依赖包,右键单击WEB-INF文件夹,在弹出的对话框中选择New-->Directory命令,创建lib文件夹,将Tomcat安装目录下lib文件夹中的servlet-api.jar文件添加到lib文件夹中。
4、在servlet-api.jar文件上右击鼠标,选择Add As Library,将jar包添加到Library中
4.1.2 编写Servlet类
1、在src上右击鼠标-->new-->package-->输入com.cxyzxc.www.servlet01包名(包名你可以自己取)-->回车
2、在包上右击鼠标-->new-->Java Class-->输入ServletDemo01类名-->回车
3、编写ServletDemo01t类,实现Servlet接口,重写接口中的5个方法,在service()方法中输出内容
package com.cxyzxc.www.servlet01;
import javax.servlet.*;
import java.io.IOException;public class ServletDemo01 implements Servlet {
@Override
public void init(ServletConfig servletConfig) throws ServletException {}
@Override
public ServletConfig getServletConfig() {
return null;
}@Override
public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
System.out.println("IDEA中的第一个Servlet案例");
}@Override
public String getServletInfo() {
return null;
}@Override
public void destroy() {}
}
4、编译ServletDemo01.java文件,生成ServletDemo01.class文件。在软件上面点击Build-->Build Project,等待片刻,生成out文件夹,里面包含编译后的class文件
5、编写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">
<servlet>
<servlet-name>ServletDemo01</servlet-name>
<servlet-class>com.cxyzxc.www.servlet01.ServletDemo01</servlet-class>
</servlet><servlet-mapping>
<servlet-name>ServletDemo01</servlet-name>
<url-pattern>/demo01</url-pattern>
</servlet-mapping>
</web-app>
4.2 手动部署项目
1)在Tomcat服务器的webapps文件中,创建一个项目文件夹,例如webProject03
2)将IDEA软件中WEB-INF文件夹整体复制到webProject03文件夹中
3)在WEB-INF文件夹中创建classes文件夹,将编译后生成的ServletDemo01.class文件所在的文件夹一起复制到classes文件夹中
4)启动Tomcat服务器,打开浏览器,在浏览器地址栏中输入http://localhost:8080/webProject03/demo01,可以在Tomcat窗口中看到输出“IDEA中的第一个Servlet案例”内容。
4.3 自动部署项目
上述操作中,虽然是在IDEA软件中完成了Servlet代码的编写以及编译,但是还需要手动将WEB-INF文件夹复制到Tomcat的项目文件夹中去,并需要手动在WEB-INF文件中创建classes文件夹,然后将IDEA中编译后的class文件复制到classes文件夹中,比较麻烦。另外,当你的Java文件改变后,你需要重新编译java文件生成class文件,然后再将class文件复制到classes文件夹中,再重新启动Tomcat服务器才能访问资源,非常的麻烦。所以,我们可以在IDEA中集成Tomact服务器,实现自动部署。
4.3.1 IDEA集成Tomcat
1、 点击File-->Settings...
2、选择双击Build,Execution,Deployment-->Application Servers,点击+号,选择Tomcat Server
3、选择Tomcat服务器的安装路径,点击ok,Tomcat服务器就集成到IDEA中了
4、再次点击File-->Settings...-->Build,Execution,Deployment-->Application Servers,点击+号,选择Tomcat Server,可以看到Tomcat服务器在IDEA中
4.3.2 IDEA部署JavaWeb项目
1、点击Run或者软件右边绿色锤子旁边下拉框,选择Edit Configuration...
2、点击图示中任意一个选项,进入添加运行配置界面
3、配置Tomcat Server和运行项目的默认浏览器
4、添加项目到Tomcat中并设置访问名称,最后点击Apply,部署成功
5、点击Run或着绿色箭头进行测试,以下情况表示运行成功