第一章 WEB相关知识概述
1. WEB简介
Web(World Wide Web)即全球广域网,也称为万维网。生活中web:上网,访问网站,下载资源。程序员web:数据库技术,前端技术,web知识,这些知识复合程序员眼中web。
1.1 JavaWeb 概念说明
Javaweb: 用Java技术来解决相关web互联网领域的技术总和(Web前端+Web后台)。
简而言之: 用java技术开发web服务应用(软件)。比如:京东网站,就是用Java开发的。我们可以通过浏览器访问。
2. 软件架构模式
B/S :通过浏览器去访问;Browser/Serve
C/S :通过客户端去访问;Client/Serve
例如 :观看优酷视频
【方式一】通过浏览器搜索并观看
【方式二】打开优酷客户端搜索并观看
2.1 B/S架构
浏览器和服务器架构模式(Browser/Server)。通过浏览器和和后台服务器进行交互。
优点
- 用户只需要安装一个浏览器即可访问不同的服务器
- 系统更新和升级比较方便
缺点
- 动画效果受浏览器限制
- 网站的压力集中在服务端
2.2 C/S架构
客户端和服务器架构模式(Client/Server)。通过客户端和后台服务器进行交互。
优点
- 客户端效果炫酷,用户体验好
- 客户端能够进行部分计算,减轻服务器压力
缺点
- 需要安装客户端,占用硬盘空间
- 系统升级麻烦
- 不跨平台
3. WEB资源
- 静态资源 :Web页面中提供浏览的始终不变的数据,如 :HTML、CSS、JS、图片、多媒体
- 动态资源 :指web页面中供人们浏览的数据是由程序产生的,不同时间点访问web页面看到的内容各不相同,如:JSP/Servlet、ASP、PHP
4. WEB服务器
网站开发者,需要将开发的web资源,发布到对应的服务器电脑上,客户才可以访问
JCP(Java Community Process) Java技术规范制定与更新的国际组织。
主要维护规范包括:J2ME、J2SE、J2EE,XML等。
J2EE 企业级开发Java规范。
- 标准规范包括:servlet、jsp、jdbc、xml、jta、javamail等。
- 在java中规范就是接口,J2EE又称为JavaEE。
WEB服务器对JavaEE规范部分或全部支持(实现),也就是WEB服务器实现部分或全部接口。
常见的WEB服务器
- Tomcat:Apache组织提供一个免费的小型的服务器软件。支持Servlet和JSP规范。(免费,开源,性能高)
- WebLogic:Bea公司的一个收费的大型的服务器软件,后被Oracle收购。支持EE的所有的规范
- WebSphere:IBM公司的一个收费的大型的服务器软件,支持EE的所有的规范。
- JBoss:是一个基于J2EE的开放源代码的应用服务器。JBoss是一个管理EJB的容器和服务器,JBoss核心服务不包括支持servlet/JSP的WEB容器,一般与Tomcat或Jetty绑定使用。
5. URL请求路径
URL(Uniform Resource Locator) ,统一资源定位符是对互联网上资源位置的一种表示。
格式
协议://ip:端口号/资源位置 协议,http、https、ftp等 域名,域名或IP地址,能够帮我们定位到互联网上的某一台服务器端口号,端口号是一个应用程序在一台服务器上的编号。http协议的默认端:80 资源位置,用于描述WEB资源在服务器上的位置
参数=值,浏览器和服务器交互传递的数据。
第二章 tomcat服务器
1. 服务器概述
1.1 服务器硬件
服务器的构成包括处理器、硬盘、内存、系统总线等,和通用的计算机架构类似,但是由于需要提供高可靠的服务,因此在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面要求较高。
在网络环境下,根据服务器提供的服务类型不同,分为文件服务器,数据库服务器,应用程序服务器,WEB服务器等。
1.2 服务器软件
服务器软件本质上是一个应用程序(有代码编写而成),运行在服务器设备上。能够接收请求并根据请求给客户端响应数据,发布资源(静态和动态)。
2. tomcat服务器
2.1 简介
tomcat服务器是一个免费的开源的web应用服务器。是Apache软件基金会的Jakarta项目中的一个核心项目,由Apache,Sun和其他一些公司及个人共同开发而成。由于有了Sun的参与和支持,最新的Servlet和JSP规范总是能在Tomcat中得到体现。
2.2 下载
官网地址:https://tomcat.apache.org 选择tomcat8.5版本。
2.3 tomcat目录
2.4 tomcat启动和访问
启动
双击tomcat解压目录/bin/startup.bat 文件即可启动tomcat。
访问
tomcat的默认端口为8080,所以在浏览器的地址栏输入:http://ip:8080即可访问tomcat服务器。
关闭
- 关闭startup.bat启动窗口;
- 双击tomcat的/bin/shutdown.bat文件;
- Ctrl+C;
2.5 tomcat启动失败常见原因
(1) JAVA_HOME 配置
如果没有配置JAVA_HOME环境变量,在双击“startup.bat”文件运行tomcat时,将一闪立即关闭。
解决方式:需要正确配置JAVA_HOME环境变量,指向JDK的bin目录的上一级目录
(2) 端口号冲突
一台拥有ip地址的主机上可以提供多个服务(启动多个软件),每一个服务都有一个唯一的端口号。所以端口号不能重复。
- 修改tomcat端口
通过修改tomcat目录下conf/server.xml配置文件修改端口号。将8080修改成其他端口号。
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
- 端口号占用
使用任务管理器---->选择详细信息---->查看pid为11604(查询出来的 值),关闭结束进程即可
3. web项目
tomcat已经安装完成,我们启动tomcat后就能够通过ip地址和端口访问到这台服务器了。但是,我们通过访问http://ip:8080 看到的页面只是tomcat提供的一个页面。真实生活中,百度和淘宝可能使用的服务器都是tomcat,但是我们访问百度和淘宝看到的却是不同的页面,这是因为我们访问的是百度和淘宝各自运行在tomcat中的web项目。
JavaWeb项目与java项目的区别
- java项目 : 后台代码
- JavaWeb项目 : 前端代码 + 后端代码
web项目结构
使用tomcat发布JavaWeb项目
方式一 : 直接发布
将web项目复制到tomcat的webapps目录下
方式二 : IDEA配置tomcat直接发布项目
第一步:配置JRE
在Run Configurations中,选择JRE。
第二步 : 启动项目
【注】图标1位正常启动,图标2位Debug模式启动
启动成功之后,会自动弹出index.html页面
第三章 servlet入门
- 客户端(浏览器)发送的数据会被提交到服务器;
- 服务器必须具备:1.接收请求数据;2.处理请求数据;3.给浏览器生成响应信息的能力;
- tomcat服务器遵从了JavaEE规范,在这个套规范了Sun公司制定的动态资源规范Servlet正好能够实现这个功能;(运行在服务器端,能够接收用户请求,处理请求数据和给浏览器生成响应信息)
- 在java的世界里制定规范往往是接口来实现的,所以Servlet是一个接口,里边只是定义了一些方法;
- 如果,我们对这个接口进行具体的实现,就能够完成对用户数据的接收,处理和生成响应信息;
1. 什么是 Servlet
运行在tomcat上java小程序,sun公司提供的规范 : 接口。
Servlet的作用
- 接收客户端发送的请求数据
- 业务逻辑的处理
- 响应结果 : 将处理结果响应给客户端(浏览器)
2. Servlet生命周期
- 谁创建:tomcat创建;
- 何时创建:第一次访问这个Servlet的时候,只创建一次,创建完成后会调用init()方法;
- 如何工作:每次请求到这个Servlet时,由service方法处理请求和响应信息;
- 何时销毁:服务器正常关闭,销毁前会调用destory()方法;
3. Servlet映射路径配置规范
- 完全匹配 /user/hello 资源路径为/user/hello时可以访问
- 目录匹配 /user/* 资源路径中含有/user目录均可访问
- 后缀名匹配 *.do 资源路径中以.do结尾的均可访问
- 缺省路径 / 访问的路径找不到,就会去找缺省路径
- tomcat获得匹配路径时,优先级顺序:1 >2 > 3 > 4
开发中一般使用完全匹配,即一个Servlet对应一个映射路径。
第四章 注解开发
1. 为什么要使用注解开发
- web.xml中配置过多servlet不便于管理,容易出错
- 注解开发使得开发更敏捷,效率更高
- 注解开发是一种趋势
2. 使用IDEA创建3.0版本的Servlet
第一步 : 新建一个Servlet
第二步 : 配置Servlet
创建完成后,Servlet类上面会默认添加一个注解@WebServlet(name=“Servlet3Demo”) 。这个 @WebServlet 注解
就是用来配置当前这个Servlet的。这个注解中常用的有两个属性:
- name属性: 相当于web.xml的 ;
- urlPatterns属性: 编写访问servlet的路径 类似于
所以,我们需要手动在 @WebServlet 注解中添加 urlPatterns 属性,来设置映射路径。
3. 优化
【模板配置代码】
#if (${PACKAGE_NAME} && ${PACKAGE_NAME} != "")package ${PACKAGE_NAME};#end
#parse("File Header.java")
@javax.servlet.annotation.WebServlet("/${Entity_Name}")
public class ${Class_Name} extends javax.servlet.http.HttpServlet {
protected void doPost(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) throws javax.servlet.ServletException, java.io.IOException {
doGet(request,response);
}
protected void doGet(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) throws javax.servlet.ServletException, java.io.IOException {
}
}