Servlet常见知识点



Servlet常见知识点。

1.查阅API文档,熟练记忆servlet的类架构,及重要方法。
a.Servlet:service(),init(),destory()
b.GenericServlet:service(),init(),destory()…
c.HttpServlet:service(),doGet(),doPost,doHead(),doPut(),doDelete()….   
2.servlet的生命周期
a.第一次请求时,创建servlet对象,并调用Servlet的init()方法。
b.开启一个线程,调用service(),HttpServlet.service()调用doGet(),doPost()….
c.servlet对象销毁前destory()被调用,servlet对象通常在服务器关闭前被销毁。
d.每个Servlet类只会创建一个对象,服务于所有的客户端的任意多次请求。这也会带来线程安全问题。
e.由于对每个客户端服务都开启了一个线程,所以一个servlet对象可以同时服务多个客户端。
  
3.理解请求(ServletRequest)对象及作用。
a.请求的http协议的结构
b.对象的类型:ServletRequest接口,HttpServletRequest接口
c.请求对象是容器接收到请求后产生的,响应完成后消亡。
d.作用1:读取请求参数:getParameter(),getParameterValues()
e.作用2:查找参数名:getParameterNames(),getParameterMap()
f.作用3:读取请求头信息:getHeader(),getHeaders()…
g.作用4:读取请求行信息:getMethod(),getRequestURI(),getQueryString()…
h.作用5:获取客户端信息:getRemoteAddr(),getRemoteHost()….   
4.响应(Response)对象
a.理解响应的http协议的结构
b.对象的类型:ServletResponse,HttpServletResponse
c.响应对象是容器接收到请求后产生的,响应完成后消亡。
d.作用1:设置状态码:setStatus()
e.作用3:获得一个PrintWriter或ServletOutputStream对象,向客户端输出。
f.作用2:设置响应头:setHeader(),setIntHeader(),sendRedirect(),addCookie()
g.作用4:设置响应的MIME类型setContentType(“text/html”)   
作业
作业:
一、编写一个servlet,并覆盖它生命周期中的方法,验证servlet的生命周期。
1.验证Servlet只创建了一个对象,即只有第一次请求会调用init()
2.验证以后的每次请求不会再调用init(),只会调用service()或者doGet(),doPost()
3.验证服务器关闭时,销毁servlet,此时destory()被调用。
二、完成一个用户注册页面,包含以下内容:
用户名:(6-10个字符)
年龄:(1-100以内)
爱好:(多选)
提交后,如果客户端的输入以上满足条件,则将用户信息保存到数据库,并重定向到成功页面。
否则,重定向到失败页面。 
第9天:Servlet

1.作用域对象的作用及操作方法
a.作用域对象是服务器端创建的对象。
b.作用域对象的主要作用是当做容器存放任何东西。
c.作用域对象的目的是在不同的Srevlet或JSP之间传送数据。
d.作用域的主要方法是存取容器里的数据。即
存:setAttribute(键,值)
取:getAttribute(键)   
2.request作用域
a.request在每次请求到达服务器端时都会产生一个对象。
c.request的生命很短暂,只有在servlet或jsp之间做请求转发时,才能共享同一个request,也只有在这种情况下,使用request作用域才有意义。   
3.请求转发和重定向的联系和区别
a.重定向是客户端重新发起请求的过程,相当于是新发起了一次请求。
b.请求转发是在服务器内部进行,被转发的servlet或JSP与源servlet或JSP拥有共同的request。
c.重定向可定向到另外服务器上的资源,请求转发只能在本服务器内容的资源之间进行。   
4.session(会话)作用域
a.服务器可以为每个客户端建立一个对应的容器对象,就是session。客户端的多次请求,都可以操作属于自己的容器。
b.session对象的产生:调用request.getSession()方法,注意有两个getSession()方法,查上课笔记或API文档搞清他们的区别。
c.有3种情况导致session被销毁
1)session超时
2)客户端关闭后,再也访问不到和该客户端对应的session了,它会在超时之后被销毁。
3)调用session. invalidate();
d.session的作用,在一个客户端的一次会话期间,在服务器上保存客户端的数据。   
5.ServletContext(应用程序上下文对象)
a. 服b. 务器启动时会装入所有已经部署的WEB应用,c. 此时会为每个应用创建一个ServletContext对象。
d. 服e. 务器关闭时,f. 会销毁ServletContext对象。
g. 每个应用只会创建一个唯一的,h. 公用的ServletContext对象。
i. 所有的客户端在访问服j. 务器时都共享同k. 一个ServletContext对象。
l. ServletContext对象一般用于在多个客户端间共享数据时使用。