Servlet总结

Servlet基础与HTTP扩展
本文介绍了Servlet的基础概念,包括Servlet接口、GenericServlet类及其方法,详细解析了ServletConfig与ServletContext的作用及其实现方式。此外,还深入探讨了HttpRequest与HttpResponse的具体实现,并重点介绍了HttpServlet类如何处理HTTP请求。
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容器使用ServletConfig对象向该Servlet传递信息
提供的方法:
String getInitParameter(string name) 获取web.xml中设置的以name命名的初始化参数值
ServletContext getServletContext() 返回Servlet的上下文对象引用
一个Servlet只有一个ServletContext对象


ServletContext
一个ServletContext对象表示一个web应用的上下文,Servlet使用ServletContext接口定义的方法与它的
Servlet容器进行通信。
Servlet容器在应用程序加载时创建ServletContext对象,ServletContext对象被Servlet容器中的所有
Servlet共享,jsp隐含对象application是ServletContext的实例
提供的方法:
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,支持HTTP的post和get方法,并提供了与http相关的实现
HttpServlet能根据客户端发出的HTTP请求,进行处理并得到相应结果,结果封装到HttpServletRequest对象中
提供的方法:
void service(ServletRequest req,ServletResponse res) 调用GenericServlet类中的service()方法的实现
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()方法中
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值