javaWeb-servlet
来源:互联网 发布:icc 文件 mac 编辑:程序博客网 时间:2024/06/06 08:59
1:servlet简介:
Servlet是在服务器上运行的小程序,servlet的主要功能在于交互式的浏览和修改数据,生成动态的web内容。
这个过程:
①:客户端发送请求至服务器端
②:服务器将请求信息发送至Servlket
③:Servlet生成响应内容并将其传给服务器,响应内容动态生成,通常取决于客户端的请求
④:服务器将响应返回给客户端
一个Servlet就是java中的一个类,它被用来拓展服务器的性能,服务器上驻留着可以通过”请求-响应“编程模型来访问的应用程序。虽然Servlet可以对任何类型的请求产生响应,但是通常只用来拓展web服务器的应用程序。
2:我们看一下tomcat给我们的servlet示例:
apache-tomcat-7.0.34\webapps\examples
启动tomcat----》访问localhsot:8080/examples
可以从示例中看出,serlvet其实就是一个普通的java类,只不过是继承了HttpServlet,需注意:HttpServlet是在java.servlet.api这个类下,所以需要单独引入servlet-api.jar包
③:在web.xml中进行配置
④:访问http://localhost:8080/Helloworld,然后执行的是doget方法
总结:创建一个类,继承HttpServlet----》重写doGet或者(doPost)方法----》在web.xml中配置servelt即可。
5:servlet的体系结构和api详解
①:HttpServlet类
javax,servlet.http.HttpServlet类是一个抽象类,一般需要重写一下方法
doGet:如果servlet支持Http Get请求
doPost:用于Http Post请求
init和destory:用于管理servlet的生命周期内保存的资源
getServletInfo:提供自身servlet的相关信息
②:GenercServletd类
该类是HttpServlet的父类,也是一个抽象类,它主要处理一般的,与协议无关的servlet,所以如果需要编写Http协议请求,需要用HttpServlet
该类实现了servlet的接口,它定义了servlet所有必须实现的方法,所以也可以继承GenercServletd,但是不常见。
③:Servlet接口
a:定义了所有servlet必须实现的方法
b:servlet是运行在web服务器端的小型java程序,servlet通常通过HTTP(超文本传输协议)接受和响应来自web客户端的请求。
c:该接口定义了初始化Servlet的方法,为请求提供的服务的方法和从服务器移除Servlet的方法,这些方法称为生命周期的方法
它们按照如下顺序调用:
①:构造Servlet,然后用init方法将其初始化
②:处理客户端的请求,调用service方法
③:从服务器移除serlvet,用destory方法
④:获取启动的信息,用getServletConfig方法
⑤:获取servlet自身的信息,用getServletInfo方法
6:Servlet的生命周期
①:加载和实例化servlet,这个操作一般都是动态。然而server通常会提供一个管理者的选项,用于在服务器启动时强制装载和初始化特定的servlet
②:server创建第一个servlet的实例
③:第一次客户端的请求到达服务器
④:服务器调用Servlet的init方法(可配置为服务器创建Servlet实例时被调用,在web.xml中<servlet>标签下配置<load-on-startup>标签,配置的是整型,值越小,Servlet启动的优先级越高)
⑤:一个客户端的请求到达服务器,服务器就会实例化一个servlet实例
⑥:服务器分别创建一个请求对象(处理客户端请求)和响应对象(响应客户端请求)
⑦:服务器激活Servlet的service方法,传递请求和响应的参数
⑧:service()方法获取请求对象的信息,处理请求,访问资源,获取需要的信息
⑨:service()方法使用响应对象的方法,将响应传回server,最后到达客户端
对于更多的请求和响应,服务器回创建更多的请求和响应对象,仍然激活此Servlet的service方法,将这两个对象传递给对象的方法,然后重复上面的过程,但是无需调用init方法,一般Servlet只初始化一次*(只有一个对象),当服务器不需要Servlet的时候,服务器就会调用destory方法
总结:客户端请求该Servlet--》加载Servlet类到内存--->实例化该Servlet----》init()初始化参数----》service()---->destory()
7:URL-Pattern配置详解
a:我们创建servlet,如果想要访问到这个Servlet,那必须在web.xml中进行配置<url-pattern>标签才可以访问
b:<url-pattern>这个标签用于确定我们访问一个Servlet的路径
c:一个Servlet可以配置多个不同的url-pattern路径
d:自从Spring 3.0以后,可以在Servlet上加@WebServlet标签
8:客户端访问Servlet的路径问题
现阶段有多少中方式可以访问服务器的一个资源那?
a:在地址栏上直接输入url b:超连接方式 c:通过表单提交的方式 d:通过js的location.href方法 e:通过js的window.open等等
不过以上方式只有表单提交才是post方式,别的都是get方式请求
9:Servlet容器和Servlet的关系
a:Servlet的非线程安全,action的线程安全
因为对提交到同一个Servlet类的多个业务请求,共享一个Servlet对象(即这个Servlet类只能被实例化一次)
通常对于同一个业务请求,只会有一个servlet实例被容器产生
线程安全是对多个(线程)用户同时访问同一个对象(实例)的变量,引起线程安全问题,所以Servlet接收和处理,不处理属性。
而action处理业务时,产生不同的对象,所以线程是安全的
10:ServletConfig的介绍和作用
ServletConfig是javax.servlet包下的一个接口,它是由servlet容器(Tomcat)创建的,并封装了servlet的相关信息
- javaweb Servlet
- JavaWeb-Servlet
- javaWeb servlet
- JavaWeb Servlet
- JavaWeb -- Servlet
- JavaWeb:Servlet
- JavaWeb-Servlet
- javaweb-servlet
- javaWeb:servlet
- JavaWeb-Servlet
- JavaWeb-Servlet
- javaWeb-servlet
- JavaWEB开发-Servlet监听器
- JavaWeb servlet起源
- JavaWeb Servlet编程
- JavaWeb,Servlet,Jsp生命周期
- JavaWeb,Servlet,Jsp生命周期
- JavaWeb 之 Servlet入门
- linux上的一个玩具
- Android存储-SharedPreferences
- Java覆盖equals方法
- 工厂模式及使用反射实现工厂模式
- 【云星数据---大数据集群部署系列007】:Zeppelin0.7.3多环境部署方案
- javaWeb-servlet
- 利用数据库的存储过程生成java的formbean对象
- 通过银行卡号查询银行卡类型接口
- 配置Redis3.2
- SVN 常用操作命令 使用笔记
- Android中使用file.createNewFile()无法创建文件的问题(例如保存拍照的图片到本地)
- 22.Nginx模块
- js反序列化和序列化的含义以及区别(jsonObject与jsonArray和map区别)
- UVA 10763 Foreign Exchange