Servlet学习笔记1,及回忆。

来源:互联网 发布:金十数据日历首页 编辑:程序博客网 时间:2024/04/29 17:36

The Servlet Technology Model Servlet 标准格式:

import java.io.* ;

import javax.servlet.* ;

import javax.servlet.http.* ;  

public class HelloWorld extends HttpServlet { public void doXXX (HttpServletRequest request , HttpServletResponse response ) throws ServletException , IOException { 

request.setCharacterEncoding(“Big5”) ;

response.setContentType(“text/html”) ;    

 PrintWriter out = response.getWriter() ; }

Bullet PONINT:BOOK 《SCWCD》 35页。

 GET:参数以Query String 附在URL尾端,长度有限制,具体依赖于WEB SERVER,等幂的。

 Query String(查询字符串):附在URL后端 (?后面以&符号隔开)。

 协议表现形式:方法名(GET)、请求资源(通常是URL形式)、附加输入、协议名(HTTP)。

 POST:参数以 Request Content 传送,数据长度不限,不是等幂的。

协议表现形式:方法名(POST)、请求资源(通常是URL形式)、协议名(HTTP)

 Request Content(请求内容):POST方法由此传送请求参数(Request Parameter)或client端上传之资料。

 Bullet PONINT:BOOK 《SCWCD》 58页。

WEB容器的功能:

1、通信的支持,为WEB应用当中的SERVLET提供了简单的方法进行通信。

 2、SERVELT生命周期的管理,控制着SERVELT的产生及消亡。负责SERVLET类的载入,实例化,初始化,SERVICE方法的运行,调用正确的GET或POST方法,及消亡垃圾处理。

 3、多线程的支持,为正在运行SERVICE方法的实例,当又有请求时创建线程。

 4、安全的声明和管理。

5、JSP的支持。

Servlet 生命周期 Bullet PONINT:BOOK 《SCWCD》 124 125页

javax.servlet.Servlet 接口定义了五个方法,以下三个方法最重要: init(ServletConfig config)  Servlet 启动时,每个Servlet(不管有多少产生多少请求,只有一个SERVLET实例)只会被执行一次 。service(ServletRequest req , ServletResponse res) ,每次有请求时,Servlet皆会执行,分配适当的,Doget()或Dopost()方法当然还有其他方法,通常常有的是上面所说两个。 destroy()  Servlet 关闭时,执行一次执行之后,等待WEB容器进行垃圾回收. 这个与JAVA语言当中对象的finalize()方法的原理相似。

 HttpServlet extends GenericServlet implements java.io.Serializable

GenericServlet extends Object implements Servlet , ServletConfig , java.io.Serializable

HttpServletRequest   HttpServletResponse两个接口分别继承于(接口继承哦)Servlet Request、SevlettResponse,具体的有请求产生WEB容器会实现HttpServletRequest   HttpServletResponse这两个接口,产生HttpServletRequest  和 HttpServletResponse对象。

取得HTTP请求内容(Request)

javax.servlet.ServletRequest 接口定义了下列主要方法:

1.用来读取Servlet的请求内容String getParameter(String anme)  ,取得特定参数的"值"String [] ;2.getParameterValues(String name) 取得特定参数的多个"值";

3.Enumeration getParameterNames() 取得所有参数名称;

4.String getRemoteAddr()  从request对象取得客户端IP地址。

5String getRemoteHost()  从request对象取得客户端主机名称。

6.int getRemotePort()  从request对象取得客户端HTTP连接端口号码。 

javax.servlet.http.HttpServletRequest 接口提供下列主要方法:

1取得HTTP请求之标头(Header)资料:String getHeader(String name)  取得特定标头的"值";

2.Enumeration getHeaders(String name)  取得特定标头的多个"值";

3.Enumeration getHeaderNames()  取得所有标头名称

4RequestDispatcher getRequestDispatcher(String name) 把请求和响应转到到一个名为name的JSP或SERVLET。

5Cookie[] getCookies()取得所有Cookie的名称及内容 取得客户端Cookie资料例:Cookie[] cookie = request.getCookies() ;将Cookie数据传送至客户端,使用HttpServletResponse接口的addCookie(Cookie cookie)方法。例:  String userid = request.getParameter(“userid”) ;         Cookie c = new Cookie(“uid” , userid ) ;         response.addCookie(c) ;  

设定HTTP Servlet响应内容(Response)  Bullet PONINT:BOOK<<SCWCD>> 124 125页javax.servlet.ServletResponse 接口提供的方法如下:

1.void setContentType(String type) è设定HTTP响应内容型态。

2.PrintWriter getWriter()  针对HTTP响应产生字符串数据流(text stream)。

3.ServletOutputStream getOutputStream()  è针对HTTP响应产生二进制数据流(binary stream)。

 javax.servlet.http.HttpServletResponse 接口提供的方法如下:

1.void setHeader(String name , String value)  设定Header , 如遇到同 name 则覆写。

2.void addHeader(String name , String value)  设定Header , 如遇到同 name 则附加。

3.void setDateHeader(String name , long date)

4.void addDateHeader(String name , long date)

5void setIntHeader(String name , int value)

6.void addIntHeader(String name , int value)

7.void sendError(int sc)  将错误信息送给客户端。

8.void sendError(int sc , String msg)  将错误信息送给客户端,再加上”自订信息”。

9.void sendRedirect(String location)  定向至其它URL。这是发生在客服端,HttpServletRequest的,getRequestDispatcher发生在服务器端。

10.void addCookie(Cookie cookie)  将Cookie加入HTTP响应。

  javax.servlet.ServletConfig 提供以下方法:

1.String getInitParameter(String name)  取得Servlet起始参数的”值”。

2.Enumeration getParameterNames()  取得Servlet起始参数名称。

3.ServletContext getServletContext()  è取得ServletContext对象。

4.String getServletName()  取得Servlet对象名称