什么是Servlet:
1.servlet是在服务器端运行的java程序,可以接受用户的请求并做出响应。
2.servlet可以动态的生成HTML内容并作出相应、
3.继承javax.servlet.http.HttpServlet类
Servlet体系结构
1.Servlet接口:定义了所有Servlet需要实现的方法
void init (ServletConfig config);
由 Servlet 容器调用,用于完成Servlet对象在处理客户请求 前的初始化工作
void service ( ServletRequest req, ServletResponse res)
由 Servlet 容器调用,用来处理客户端的请求
void destroy ( );由 Servlet 容器调用,释放Servlet对象所使用的资源
ServletConfig getServletConfig ( )
返回ServletConfig 对象,该对象包含此 Servlet 的初始化和 启动参数。返回的 ServletConfig 对象是传递给 init( ) 方法 的对象
String getServletInfo ( )
返回有关 Servlet 的信息,比如作者、版本和版权。返回 的字符串是纯文本,而不是任何种类的标记(如 HTML、 XML等
主要讲述了Servlet的生命周期
即:实例化——-Servlet 容器创建 Servlet 的实例
初始化——-该容器调用 init ( ServletConfig ) 方法
服务——如果请求 Servlet,则容器调用 service() 方法
销毁——-销毁实例之前调用 destroy() 方法
2.GenericServlet抽象类:提供了Servlet与ServletConfig接口方法的默认实现(service( )方法除外)
public void init (ServletConfig config )
对Servlet接口中init()方法的实现,对ServletConfig 实例进行了保存。此方法还有一个无参的重载方 法,可用于子类中重写
public String getInitParameter (String name )返回web.xml中名称为name的初始化参数的值
public ServletContext getServletContext ( )返回ServletContext对象的引用
3.ServletConfig接口:在Servlet初始化过程中获取配置信息 一个Servlet只有一个ServletConfig对象
String getInitParameter (String name )获取web.xml中设置的以name命名的初始化参数值
ServletContext getServletContext( )返回Servlet的上下文对象引用
4.ServletContext接口:获取Web应用上下文,与Servlet容器进行通信.即:Servlet容器(唯一),作用于整个作用域
常用方法:
void setAttribute (String name, Object object ) 设置名称为name的属性
Object getAttribute (String name ) 获取名称为name的属性
与请求和响应有关的接口:重!!!!
5.ServletRequest接口:获取客户端请求的数据
Object getAttribute ( String name ) 获取名称为name的属性值
void setAttribute (String name, Object object ) 在请求中保存名称为name的属性
void removeAttribute (String name) 清除请求中名字为name的属性
String getCharacterEncoding ( ) 返回请求体所使用的字符编码
void setCharacterEncoding (String charset ) 设置请求体的字符编码
String getParameter ( String name ) 返回指定请求参数的值 运用的特别频繁
String[ ] getParameterValues (String name ) 返回指定请求参数的全部值
RequestDispatcher getRequestDispatcher( String path ) 返回指向指定路径的请求分发对象(转发))
6.HttpServletRequest接口:除了继承ServletRequest接口中的方法,还增加了一些用于读取 HTTP请求信息的方法
String getContextPath( ) 返回请求URI中表示请求上下文的路径,上下文路径是请求URI的开 始部分
Cookie[ ] getCookies( ) 返回客户端在此次请求中发送的所有cookie对象
HttpSession getSession( ) 返回和此次请求相关联的session,如果没有给客户端分配session, 则创建一个新的session 重点
7.HttpSession接口:session对象常用方法
:
String getId() 获取sessionid
void setMaxInactiveInterval(int interval) 设定session的非活动时间
int getMaxInactiveInterval() 获取session的有效非活动时间(以秒 为单位)
void invalidate() 设置session对象失效 在特定的的条件下使用
void setAttribute(String key, Object value) 以key/value的形式保存对象值
Object getAttribute(String key) 通过key获取对象值 常用
void removeAttribute(String key) 从session中删除指定名称(key)所对 应的对象
8.ServletResponse接口:设置响应参数和向客户端发送响应数据
这几种方法基本上每次都要使用
PrintWriter getWriter ( ) 返回PrintWriter对象,用于向客户端发送文本
String getCharacterEncoding ( ) 返回在响应中发送的正文所使用的字符编码
void setCharacterEncoding (String charset ) 设置响应的字符编码
void setContentType ( String type ) 设置发送到客户端的响应的内容类型,此时响应 的状态属于尚未提交”text/html;charset=UTF-8”
9:HttpServletResponse接口:除了继承ServletResponse接口中的方法,还增加了适用于HTTP响应的 新方法
void addCookie ( Cookie cookie ) 增加一个cookie到响应中,这个方法可多次调用,设置 多个cookie
void addHeader ( String name,String value ) 将一个名称为name,值为value的响应报头添加到响应中
void sendRedirect(String location) 发送一个临时的重定向响应到客户端,以便客户端访问 新的URL 重定向重点
void encodeURL ( String url ) 使用session ID对用于重定向的URL进行编码
下面是几个重点的区别和注意:
1.session失效的原因
2.session和cookie的区别
3.转发的示意图
4.重定向的示意图
5.转发和重定向的区别