1、什么是servlet?能做什么?
sun公司制定的一种用于扩展web服务器功能的组件规范。
扩展:web服务器本身没有计算能力,也就是说,不能处理动态资源的请求。servlet可以处理动态资源的请求。
组件规范:
组件是符合规范,完成一定功能,并可以单独部署的软件模块。
组件一般不能独立运行,需要依赖容器才能运行。
容器:
是一种程序,提供组件的运行环境,并且管理组件的生命周期。
servlet容器:
提供servlet运行的环境,并且管理servlet的生命周期。
一般常见的web服务器,比如tomcat,除了是一个servlet容器以外,同时,
也是一个web服务器。
能做什么?
servlet只能够采用java语言来开发,servlet可以做java类能做的所有的事件。
2、如何开发一个servlet?
step1 写一个java类,实现Servlet接口或者是继承HttpServlet类。
step2 编译(依赖servlet api)
step3 打包(定义一个特定的目录结构,将对应的字节码,配置文件,相关的jar文件放到对应的目录结构里)
appname(名称任意,一般称为应用名)
WEB-INF(必须有,必须以该名称命名)
classes(必须有,必须这样命名,放字节码.class文件)
lib(可选,必须这样命名,放.jar文件)
web.xml(部署描述文件)
html/jsp文件
注:web.xml文件内容 示例:
<标头>
<servlet>
<servlet-name>helloServlet</servlet-name>
<servlet-class>first(包名).HelloServlet(servlet名称)</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>helloServlet<servlet-name>
<url-pattern>/hello(必须有/)</url-pattern>
</servlet-mapping>
step4 部署(将step3的文件夹的包结构放到服务器特定的目录,对于tomcat,是webapps)
step5 启动服务器
启动成功判断:http://localhost:8080
step6 访问servlet
http://localhost:8080/appname/url-pattern
3、servlet是如何运行的?
假如在浏览器地址栏输入了如下地址:http://ip:port/appname/url-pattern
1)浏览器一句ip,port连接服务器;
2)浏览器将请求数据按http协议打成一个http请求数据包(包含了/appname/url-pattern)
3)服务器当中的一个负责通讯的模块(一般称为servlet引擎)会创建HttpServletRequest的一个实例(
HttpServletRequest实际上是一个接口,由服务器提供者来实现接口只能创建实例,不能创建对象),
该实例包含了请求数据包中的数据。另外,还创建了一个HttpServletResponse的一个实例(也是一个
接口)。
4)服务器依据appname/url-pattern找到web.xml,依据web.xml中的信息找到对应的Servlet类名,
查看该Servlet有没有对应的实例,如果没有,则创建实例,有的话,就不创建,使用现成的实例。
接下来,调取service()方法。
public void service(HttpServletRequest request,HttpServletResponse response){}
service方法里面的代码可以通过HttpServletRequest提供的方法来获得请求中的数据,并且,也可以将处理之后的结果
通过HttpServletResponse提供的方法设置返回的结果。
5)Servlet引擎从HttpServletResponse获取数据,生成一个http响应数据包,发送给浏览器。
4、使用myeclipse开发servlet
1)安装myeclipse
2)开发步骤
step1 建立一个web工程
step2 在src下面编写java类
step3 在web.xml中配置
setp4 部署
a、让myeclipse管理tomcat
b、部署
step5 访问
http://ip:port/appname/url-pattern
Servlet基础笔记
时间: 2024-10-28 04:55:04
Servlet基础笔记的相关文章
java String 类 基础笔记
字符串是一个特殊的对象. 字符串一旦初始化就不可以被改变. String s = "abc";//存放于字符串常量池,产生1个对象 String s1=new String("abc");//堆内存中new创建了一个String对象,产生2个对象 String类中的equals比较字符串中的内容. 常用方法: 一:获取 1.获取字符串中字符的个数(长度):length();方法. 2.根据位置获取字符:charAt(int index); 3.根据字符获取在字符串中
网络基础笔记——OSI七层模型
OSI七层模型 由于整个网络连接的过程相当复杂,包括硬件.软件数据封包与应用程序的互相链接等等.如果想要写一支将联网全部功能都串连在一块的程序,那么当某个小环节出现问题时,整只程序都需要改写.所以我们将整个网络分成数层,每层都有自己独立的功能,而且每层的代码都可以独立撰写,因为相互之间不会干扰.如此一来,当某个小环节出现问题时,只要将该层的代码改写即可.并且这样可以让整个网络层次更加的清晰. 在网络上传输信息就像是一个发包裹的过程,从己方的应用程序开始往第七层的包裹里塞数据,再依次塞到第一层的包
[Java基础笔记]数组
Java基础笔记 定义数组: int[] numbers = new int[100]; //方法一 double[] num = new double[10]; int[][] a = new int[2][5]; 通过new创建的数组,元素默认值为0(0.0) int[] scores = {5,4,33,12,46}; //方法二 int[][] a = { //位数不足,自动补0 {5,3,2,1,6}, {10,12,14,15}, }; 数组特性:存储的都是同类型数据:长度定义后不可
Servlet基础
Servlet基础 Jsp的本质即为Servlet,jsp页面部署到web容器中后会被编译为Servlet.Servlet使用输出流输出html标签,开发过程复杂且难以进行设计. Servlet是一个完整的java类,jsp是对Servlet的简化.Servlet中没有jsp的内置对象,jsp内置对象需要Servlet显式创建. 在MVC架构中,Servlet已不再作为视图仅仅作为控制器使用. 这里介绍了Servlet开发中所涉及的基础知识以及局部应用范例,Servlet作为控制器的应用介绍请见
C# 基础笔记(第一篇)
C#基础 概念:.net与c#.net/dontnet:一般指.net framework框架,一种平台,一种技术c#(charp):一种编程语言,可以开发基于.net的应用. *java既是一种技术又是一种编程语言. .net都能干什么?开发桌面应用程序 Winforminternet应用程序 Asp.net/webservice C/S:客户机(Client)/服务器模式(Server)B/S:浏览器(Browser)/务器模式(
我的LINUX基础笔记
Linux系统管理 1 Day 2014.5.23 su -name 切换用户passwd 密码 更改密码gnome-terminal 伪CLI 桌面终端程序1.查看内核版本uname -r 2.查看红帽系统版本cat /etc/redhat-rdlease3.查看LINUX标准分发版信息 lsb_release4.查看网卡的IP,MAX ifconfig ifconfig eth 10.0.0.10
测试servlet学习笔记
操作方法: 1.新建工程: File-->new-->Java Project-->TestServlet(工程名称)-->Finish. 2.加载servlet-api.jar类包: TestServlet(右键)-->Build Path-->Configure Build Path-->Library -->Add External JAR Selection-->(浏览在tomcat的lib目录下找到servlet-api.jar选中后点击打开
Nginx基础笔记
Nginx基础笔记 资源 安装 ubuntu下 编译安装 基本操作 HTTP基本配置 配置说明 配置文件目录结构 配置文件结构 模块 模块化 index模块 Log模块 Real IP模块 Access模块 Rewrite模块 Proxy模块 upstream模块 其他 配置静态化目录 负载均衡 控制页面缓存 nginx的内置变量 nginx小结 资源 资源 Nginx 官网 Nginx 官方下载地址 Nginx最佳实践配置项目 地址 Nginx Configuration wiki 教程 ag
MYSQL基础笔记(三)-表操作基础
数据表的操作 表与字段是密不可分的. 新增数据表 1 Create table [if not exists] 表名( 2 字段名 数据类型, 3 字段名 数据类型, 4 字段n 数据类型 --最后一行不需要加逗号 5 )[表选项]; If not exists:如果表名不存在,那么就创建,否则不执行创建代码,实现检查功能. 表选项:控制表的表现 1.字符集:charset/character 具体字符集:--保证表中数据存储的字符集. 2.校对集:collate 具体校对集: 3.存储引擎:e