1 Servlet的定义?
2 Servlet的定义的四种形式?
3 Servlet get与post的区别?
4 Servlet的周期?
5 Servlet的注册在哪里?
6 什么是url-pattern?
7 Servlet的常用对象有哪些?
ServletConfig
ServletContext 方法的作用 HttpServlet
HttpServletRequest
HttpServletResponseHttpServletRequest
1 Servlet的定义?
Servlet是Java Servlet的简称,称为小服务程序或服务连接器,用Java编写的服务器端程序,主要功能在于交互式地浏览和修改数据,生成动态Web内容。
狭义的Servlet是指Java语言实现的一个接口,广义的Servlet是指任何实现了这个Servlet接口的类,一般情况下,人们将Servlet理解为后者。
Servlet运行于支持Java的应用服务器中。
从原理上讲,Servlet可以响应任何类型的请求,但绝大多数情况下Servlet只用来扩展基于HTTP协议的Web服务器。最早支持Servlet标准的是JavaSoft的Java Web Server,一些其它的基于Java的Web服务器开始支持标准的Servlet。
2Servlet的定义的四种形式?
public class OneServlet implements Servlet { } //采用接口
public class TwoServlet extends GenericServlet {}//采用继承
public class ThreeServlet extends HttpServlet{}//采用继承
@WebServlet(urlPatterns="/d")
public class fourServlect extends HttpServlet {}采用快键
ALT+/ 在写代码中常用
3 Servlet get与post的区别?
第一点:get请求和post请求的区别:
浏览器使用get请求访问servlet服务器的时候doget方法接收
浏览器使用post请求访问servlet服务器的时候dopost方法接收
第二点
get请求所带的数据是拼接在地址上的,地址的长度是有限的,1kb=1024 一个字母2个字节 512字母
post传输数据是不受限制的
第三点
登录功能一律不允许使用get请求给服务器发送数据
浏览器默认为get请求
4 Servlet的周期?
servlet周期
构造方法(创建servlet 对象执行)
Servlet 初始化后调用 init () 方法。
Servlet 调用 service() 方法来处理客户端的请求。
Servlet 销毁前调用 destroy() 方法 长时间未访问。
最后,Servlet 是由 JVM 的垃圾回收器进行垃圾回收的。
5 Servlet的注册在哪里?
web.xml文件
<!-- 注册oneServlet --> <!-- 第一部分 注册OneServlet--> <servlet> <!-- srvlet 增加名字 --> <servlet-name>OneServlet</servlet-name> <!--注册servlet地址 --> <servlet-class>com.servlet.OneServlet</servlet-class> <load-on-startup>4</load-on-startup> </servlet> <!--第二部分 :设置一个浏览器可以访问的servlet的地址 --> <servlet-mapping> <servlet-name>OneServlet</servlet-name> <!--设置浏览器地址 --> <url-pattern>/a</url-pattern> <!-- 设置地址访问一定加/asd --> </servlet-mapping>
6 什么是url-pattern?
url-pattern详解
1.完全匹配 必须以"/"开始
例如:/hello /a/b/c
2.目录匹配 必须以"/"开始 以"*"结束
例如:/a/* /*
3.后缀名匹配 以"*"开始 以字符结尾
例如:*.jsp *.do *.action
优先级:完全匹配>目录匹配>后缀名匹配
servlet标签中的一个子标签< load-on-startup> 作用:用来修改servlet的初始化时机
取值:
1.它的值必须是一个整数,表示servlet被加载的先后顺序
2.如果值为正整数或者0时,表示在应用启动时就加载并初始化servlet
值越小,加载的优先级越高,就越先被加载,值相同时,容器就会自己选择加载顺序
7 Servlet的常用对象有哪些?
ServletConfig
ServletContext 方法的作用
HttpServlet
HttpServletRequest
HttpServletResponseHttpServletRequest
ServletConfig
获取静态数据的二个方式
在web.xml文件中写
<init-param> <param-name>home</param-name> <param-value>二家酒店</param-value> </init-param> 方式二 /** * Servlet implementation class Servlet2 */ @WebServlet(urlPatterns = "/Servlet2",initParams = { @WebInitParam(name="aaaa",value="张三"), @WebInitParam(name="age",value="23"), @WebInitParam(name="height",value="179cm"), @WebInitParam(name="weight",value="60kg") }) public class Servlet2 extends HttpServlet {
ServletContext 方法的作用
ServletContext {con 上下文 }
tomcat 服务器为每个项目创建一个对象
ServletContext
1个web项目只有一个ServletContext对象
ServletContext 服务器开始创建 结束 而消失
ServletContext 作用 同一个项目共享数据。
1 共享静态数据
2 共享动态数据 写在java代码
3 共享文件数据
* 创建对象
* ServletContext sc=getServletContext();获取对象
* sc.setAttribute("pq", "排球"); 接收对象
* 删除对象 sc.removeAttribute("pq");
HttpServlet
Servlet的框架是由两个Java包组成:javax.servlet和javax.servlet.http. 在javax.servlet包中定义了所有的Servlet类都必须实现或扩展的的通用接口和类.在javax.servlet.http包中定义了采用HTTP通信协议的HttpServlet类.
Servlet的框架的核心是javax.servlet.Servlet接口,所有的Servlet都必须实现这一接口.在Servlet接口中定义了5个方法,其中有3个方法代表了Servlet的声明周期:
init方法,负责初始化Servlet对象
service方法,负责相应客户的请求
destory方法,当Servlet对象退出声明周期时,负责释放占有的资源
当Web容器接收到某个Servlet请求时,Servlet把请求封装成一个HttpServletRequest对象,然后把对象传给Servlet的对应的服务方法.
HTTP的请求方式包括DELETE,GET,OPTIONS,POST,PUT和TRACE,在HttpServlet类中分别提供了相应的服务方法,它们是,doDelete(),doGet(),doOptions(),doPost(), doPut()和doTrace().
HttpServlet的功能
HttpServlet首先必须读取Http请求的内容。Servlet容器负责创建HttpServlet对象,并把Http请求直接封装到HttpServlet对象中,大大简化了HttpServlet解析请求数据的工作量。HttpServlet容器响应Web客户请求流程如下:
1)Web客户向Servlet容器发出Http请求;
2)Servlet容器解析Web客户的Http请求;
3)Servlet容器创建一个HttpRequest对象,在这个对象中封装Http请求信息;
4)Servlet容器创建一个HttpResponse对象;
5)Servlet容器调用HttpServlet的service方法,把HttpRequest和HttpResponse对象作为service方法的参数传给HttpServlet对象;
6)HttpServlet调用HttpRequest的有关方法,获取HTTP请求信息;
7)HttpServlet调用HttpResponse的有关方法,生成响应数据;
8)Servlet容器把HttpServlet的响应结果传给Web客户。