1、课程回顾(了解)
2、Tomcat软件(学会基本操作)
3、Servlet入门
A. C/S 客户端,服务器 模型 (例如:QQ 需要安装客户端)
B. B/S 浏览器,服务器 模型 (例如:百度 直接使用浏览器访问)
A.静态网站(html、CSS、JavaScript) 内容不会改变
B.动态网站(JSP、PHP、ASP、Servlet)内容会改变 "新闻" --> 学习重点
A. IP地址(计算机在网络当中的地址)
B. 端口号(软件在计算机当中的地址) 范围: 0~65535 我们可以使用的是 1024~65535
C. 通讯协议
TCP协议: 安全性高,效率低,传输数据量大
UDP协议: 安全性低,效率高,传输数据量小(视频会议)
A.WebLogic : Oracle 收费的大型服务器软件
B.WebSphere : IBM 收费的大型服务器软件
C.JBoss : JBoss 收费的大型服务器软件
D.Tomcat : Apache 免费中小型服务器软件
A.下载的地址: http://tomcat.apache.org/
B.解压压缩包即可(解压的路径当中,不要有中文存在,不要有空格)
启动方式: 在bin目录当中,找到 startup.bat
验证方式: 在浏览器当中输入: http://127.0.0.1:8080/
A.黑框框一闪而过(解决方案:配置JAVA_HOME环境变量)
B.启动报错(解决方案: 暴力杀死占据端口号的进程<推荐> 或者 修改Tomcat端口号)
备注:
1.查看端口号和进程PID的操作: 在小黑窗口当中输入指令 netstat -ano
2.可以在任务管理器"详细信息"当中,查看PID信息
3.修改端口号的操作(需要找到配置文件,Tomcat安装目录当中找到 conf -> server.xml 行数是68行)
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
A.方式1:
强制关闭。点击小黑窗口右上角的X
方式2:
a.启动 shutdown.bat 文件
b.小黑窗口,按下快捷键 Ctrl + C
A.方式1:
方法:
在webapps当中把项目文件夹拷贝过去
访问:
http://127.0.0.1:8080/项目文件夹名称
B.方式2:
方法:
将打包的war包,直接丢在webapps目录当中,会自动解压
访问:
http://127.0.0.1:8080/项目文件夹名称
C.方式3:
方法:
在tomcast\conf\Catalina\localhost目录下面,新建一个xml文件(文件名称随意取名)
project是项目文件夹名称,拷贝一句话:
<Context docBase="C:\Users\chc24\Desktop\project" />
访问:
http://127.0.0.1:8080/xunimulu/meinv.jpg
//xunimulu是上面xml名称,meinv.jpg存在于project文件夹下面
--项目目录
--WEB-INF目录
--web.xml <!-- web的核心配置文件 -->
--classes目录 <!-- 存在的java的class文件 -->
--lib目录 <!-- 依赖的jar包 -->
A.集成的步骤:
菜单栏 Run -> Edit Confi... -> Default -> TomcatServer -> local -> ...
B.热部署
菜单栏 Run -> Edit Confi... -> Update Resource
C.在IDEA创建WEB模块
New Module
-> Java Enterprise
-> JavaEE7 版本
-> Tomcat 8.5.31
-> 选择 Web Application
-> Version 3.1
-> Create web.xml
Servlet是一个接口,定义了网络访问的规则.(抽象方法)
保证每一次访问的内容都根据逻辑进行判断,显示不同的内容出来(新闻每一次访问的时候都不一样)
A.创建JavaEE Module
B.写一个类,实现接口 javax.servlet.Servlet
C.重写五个方法
D.配置web.xml文件
<!-- 需要配置Servlet的路径(包名称类名称,网络访问路径)-->
<servlet>
<servlet-name>test01</servlet-name>
<servlet-class>com.itheima01.Test01</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>test01</servlet-name>
<url-pattern>/aa</url-pattern>
</servlet-mapping>
<!-- 访问的地址 -->
http://127.0.0.1:8080/aa
A. 当服务器接受到客户端浏览器的请求后,会解析请求URL路径,获取访问的Servlet的资源路径
B. 查找web.xml文件,是否有对应的<url-pattern>标签体内容。
C. 如果有,则在找到对应的<servlet-class>全类名
D. tomcat会将字节码文件加载进内存,并且创建其对象
E. 调用其方法,如何知道调用的是哪一个方法?实现过Servlet接口.知道方法的名称返回值参数等.
A. init() 初始化的方法,只会执行1次
a.配置的两种情况(在web.xml文件的<servlet>标签当中配置)
<load-on-startup> 数据值 </load-on-startup>
0和正数: (0-10之间) 服务器启动的时候,调用 init()方法
负数:(-10 - -1之间) 第一次访问的时候,调用 init()方法
b.变量定义的问题
可以把变量定义在方法当中,作为局部变量使用
即使定义成员变量,也不要轻易修改变量的值,容易出现 多线程访问的数据安全问题!
B. service() 服务的方法,可以执行多次
C. destroy() 销毁的方法,只会执行1次
执行的时机:正常关闭Servlet以及关闭之前执行.("destroy方法相当于在交代临终遗言.死之前")
在Servlet的实现类上面添加注解 @WebServlet("/bb")
访问的方式: http://127.0.0.1:8080/day13/bb 其中day13是虚拟目录
Tomcat和Idea之间的目录存在对应关系
我们新建的JavaWeb项目,存在于 IDEA的工作空间当中.
如果部署在Tomcat当中,在Tomcat里面也存在对应的目录.
在web/WEB-INF当中不要丢入资源文件(html,txt,png)这种文件不要放进去,直接的方式不能访问到
这些资源文件直接放在 web 文件夹下面
A.添加断点
B.点击右上角的"小虫子"
C.运行 F7 或者 F8
D.清除断点
abstract class GenericServlet implements Servlet
abstract class HttpServlet extends GenericServlet
A.基础语法(定义数组的多个匹配规则)
@WebServlet({"/*","/test04/xx"})
B.常见的写法
a. "/*" 访问: http://127.0.0.1:8080/day13 就可以访问,其中day13是虚拟目录
b. "/xx" 访问: http://127.0.0.1:8080/day13/xx
c. "/xx/heihei" 访问: http://127.0.0.1:8080/day13/xx/heihei
d. "*.do" 访问: http://127.0.0.1:8080/day13/jiji.do 这里的jiji可以任意写
Servlet 的最终写法
//终极版本的Servlet写法
//1.写一个类继承 HttpServlet
//2.重写 doGet() 和 doPost() 方法
//3.添加注解 @WebServlet
//访问的地址: http://127.0.0.1:8080/xixi
@WebServlet("/xixi")
public class ThridServlet extends HttpServlet{
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//super.doGet(req, resp);
System.out.println("doGet执行鸟...");
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//super.doPost(req, resp);
System.out.println("doPost执行鸟...");
}
}