Servlet总结

来源:互联网 发布:json数据解析步骤 编辑:程序博客网 时间:2024/06/06 04:44
javax.servlet.*
Servlet接口 定义了init service,destroy,getServletInfo,getServletConfig
GenericServlet抽象类,实现Servlet接口,给出了除service方法外的其他方法的简单实现(不依赖协议)
void init(ServletConfig config)调用Servlet接口中的init方法
String getInitParameter(String name) 返回名称为name的初始化参数
ServletContext getServletContext() 返回ServletContext对象的引用
通常只需重写不带参数的init()方法,如果重写init(ServletConfig config)方法,那么应该包含
super.init(config)这句代码
如果要编写一个通用的Servlet,只要继承自GenericServlet类,实现service()方法即可


ServletRequest继承GenericServlet
当客户请求时,由Servlet容器创建ServletRequest对象,这个对象作为service方法的参数之一传递给
Servlet,Servlet能够利用ServletRequest对象获取客户端的请求数据
提供的方法:
Object getAttribute(String name)
void setAttribute(String name,Object object)
void removeAttribute(String name)


ServletResponse继承GenericServlet
Servlet容器在接收请求时,除了创建ServletRequest对象,还创建了ServletResponse对象,用来封装响应数据,并同时将这两个对象作为参数传递给Servlet,Servlet利用ServletRequest对象获取客户端的请求数据,
经过处理后由ServletResponse对象发送响应数据
提供的方法:
PrintWriter getWriter()返回PrintWriter对象,用于向客户端发送文本
String getCharacterEncoding()返回在响应中发送的正文所使用的字符编码
void setCharacterEncoding() 设置发送到客户端的响应的字符编码
void setContentType(String type) 设置发送到客户端的响应内容类型,此时响应状态属于未提交

ServletConfig对象是Servlet在初始化时,Servlet容器传进来的,一个Servlet对应一个ServletConfig对象,容器把web.xml中有关Servlet的信息交给ServletConfig对象,ServletConfig对象再传给Servlet的init方法来初始化Servlet。

使用ServletConfig对象向该Servlet传递信息提供的方法:

String getInitParameter(string name)获取web.xml中设置的以name命名的初始化参数值
ServletContext getServletContext()返回Servlet的上下文对象引用

ServletContext
一个ServletContext对象表示一个web应用的上下文,Servlet使用ServletContext接口定义的方法与它的
Servlet容器进行通信。
Servlet容器在应用程序加载时创建ServletContext对象,ServletContext对象被Servlet容器中的所有Servlet共享,jsp隐含对象application是ServletContext的实例,ServletContext对象可以用来实现Servlet间的数据共享,访问web应用中的静态资源等。。。
提供的方法:
String getInitParameter(String name) 获取名称为name的系统范围内的初始化参数值,系统范围内的
初始化参数可以在部署描述符中使用<context-param>元素定义
void setAttribute(String name,String Object)
Object getAttribute(String name)
String getRealPath(String path) 返回相对路径的真实路径
void log(String message)记录一般日志信息


----------------------------

javax.servlet.http.*
HttpServlet继承自GenericServlet(只有service()方法未实现),支持HTTP的post和get方法,并提供了与http相关的实现,实现了service()方法,但是由于inplement Serializable()接口,所以HttpServlet抽象类
HttpServlet能根据客户端发出的HTTP请求,进行处理并得到相应结果,结果封装到HttpServletRequest对象中
提供的方法:

void service(ServletRequest req,ServletResponse res) 调用GenericServlet类中的service()方法的实现,判断请求类型:

通过request.getMethod()得到请求类型为get或post,再调用相应的doGet或doPost方法来处理请求,结果信息封装到response对象中

void doXXX(ServletRequest req,ServletResponse res)
如果要编写Servlet就一定要继承HttpServlet类,从中将需要响应到客户端的数据封装到HttpServletResponse对象中,


HttpServletRequest 继承ServletRequest,增加了一些用于读取请求信息的方法,
String getContextPath() 返回URI中表示请求上下文的路径,上下文路径是请求URI的开始部分
Cookie[] getCookies() 返回客户端在此次请求中发送的所有Cookie对象
HttpSession getSession() 返回和此次请求相关联的Session,如果没有给客户端分配Session,则创建一个新的Session
String getMethod()返回此次请求所使用的HTTP方法的名字,如GTE,POST


HttpServletResponse 继承ServletResponse,增加了一些额外方法
void addCookie(Cook cookie)增加一个Cookie到响应中,这个方法可多次调用,设置多个Cookie
void addHeader(Stirng name, Stirng value) 将一个名为name值为value的响应报头添加到响应中
void sendRedirect(String location)发送一个临时的重定向响应到客户端,以便客户端访问新的URL
void encodeURL(String url)使用sessionID对用于重定向的URL进行编码,以便用于sendRedirect()方法中
0 0
原创粉丝点击