1.1、学习servlet之前需要了解的知识
- 什么是API?包括什么?
1. API:应用程序编程接口(这里所描述的接口,不是interface)
2. API包括:源码,字节码,帮助文档。【在使用的时候注意版本号一致】 - 什么是JAVASE?
- Java标准版本
- SUN公司为java程序员提供的一套基础类库。
- 这套基础的类库包括:基础语法,面向对象,异常,IO,集合,反射,线程,,,,,
- JavaSE的源码,字节码,帮助文档在哪里?
1. Java\jdk1.8.0_191\src.zip:这是源码
2. Java\jdk1.8.0_191\jre\lib\rt.jar:这个是字节码的位置。
3. 帮助文档未知。 - 什么是JavaEE?
- java企业版
- SUN公司为java程序员准备另一套庞大的类库,帮助程序员完成企业级项目的开发。
1.2、系统架构的分类
- 系统架构的分类:C/S B/S
- 什么是C/S呢?(Client/Server)
- 就是你要下载安装后的软件:例如qq,爱奇艺,,,,
- 什么是B/S呢?(Browser/Server)
1. B/S其实本质上还是C/S架构,还是客户端访问服务器,只不过客户端比较特殊,是浏览器。 - B/S的优缺点:
- 优点:
1. 不需要安装特定的客户端软件,只要有浏览器就行,客户在这一方面体验不错
2. 升级只需要升级服务器端,升级方便。。。。。。 - 缺点:
- 所有的数据全部集成在服务器端,一旦发生不可抗力,数据丢失严重,相对来说不安全。
- 速度慢,用户在这方面的体验差
- B/S架构的浏览器中界面粗糙。。。。。。
- 什么样的系统适合使用B/S
- 企业内部使用的办公系统,
- 界面要求不是很高,速度要求不是很慢就行。
- 要求升级方便
- B/S架构的系统更注重数据的管理与维护。
- 优点:
- C/S的优缺点:
- 优点:
1. 速度快,大部分数据都已经集成到客户端软件中了,只需要从服务器上传送少量数据即可。所以速度很快,用户体验好。
2. 大部分数据集成到客户端,相对的安全。
3. C/S的客户端界面可以非常的xuan - 缺点:
1. 升级的时候,每一个客户都需要升级,升级很麻烦。
2. 需要安装特定的客户端软件,才能访问服务器 - 什么样的系统适合使用C/S
1. 娱乐型的系统
2. 要求界面体验好 ,要求速度体验好。。。。
- 优点:
- 什么是C/S呢?(Client/Server)
1.3、servlet规范介绍
- servlet规范来自于JavaEE规范中的一种
- 作用:
- 在servlet规范中,指定【动态资源文件】开发步骤
- 在servlet规范中,指定HTTP服务调用动态资源文件规则。
- 在servlet规范中,指定HTTP服务管理动态资源文件实例对象规则。
1.4、servlet接口实现类
- servlet接口来自servlet规范下一个接口,这个接口存在HTTP服务器提供jar包
- Tomcat服务器下lib文件有一个servlet-api.jar存放Servlet接口(javax.servlet.Servlet接口)
- servlet规范中任务,HTTP服务器能调用的【动态资源文件】必须是一个servlet接口实现类
- 例子:
class Student{
//不是动态资源文件,Tomcat无权调用}
class Teacher implements Servlet{
//合法动态资源文件,Tomcat有权调用
Servlet obj =new Teacher();![在这里插入图片描述](https://img-blog.csdnimg.cn/20210516164401441.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3cxMjU2NDY2Mzc0,size_16,color_FFFFFF,t_70)
obj.doGet();
}
1.5入门案例:servlet接口的实现
- 创建项目选中Maven,然后下一步。
- 然后填写GroupId和ArtifactId
- 创建好后把里面的src包给删除,然后右键项目名创建子项目(按照上面的步骤,创建好后,点击src项目下的main->java的包是蓝色就创建成功)
- 在Maven中导入servlet-api的jar包
<dependencies>
<!--加入依赖servlet-api-->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version> 2.5</version>
<scope>provided</scope>
</dependency>
<dependency>
</dependencies>
- 创建一个controller包,在里面创建一个OneServlet类,让其继承HttpServlet,并且实现doGet和doPost
package com.xw.controller;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
public class OneServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.println("OneServlet类针对浏览器发送GET请求方式处理");
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.println("OneServlet类针对浏览器发送POST请求方式处理");
}
}
- 将servlet接口实现的信息注册到Tomcat服务器上在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接口实现类类路径地址交给Tomcat-->
<servlet>
<servlet-name>oneServlet</servlet-name><!--声明一个变量储存servlet接口实现类路径-->
<!--声明servlet接口实现类类路径-->
<servlet-class>com.xw.controller.OneServlet</servlet-class>
</servlet>
<!--<!–为servlet接口实现类提供简短别名–>-->
<servlet-mapping>
<servlet-name>oneServlet</servlet-name>
<url-pattern>/one</url-pattern>
</servlet-mapping>
</web-app>
- 然后在idea中配置Tomcat
配置好Tomcat的地址,点击Fix选择自己的Module
然后启动Tomcat,在网址后面输入/one然后回车,再去idea中查看输出
复习:这里我们讲一下抽象的作用:
8. 降低了接口实现类对接口实现过程难度。
9. 降低接口中不需要使用抽象方法交给抽象类进行完成。
10. 这样接口实现类只需要对接口需要的类进行重写。