servlet结构:
普通的java类 继承HttpServlet(http协议相关的服务)extends GenericServlet(属性一般)(通用类)implements Servlet(接口),ServletConfig(接口)
创建好这个servlet继承很多类,实现很多接口
2. Servlet:
接口
常用方法:
void init()
初始化方法
void init(ServletConfig config) servlet
初始化方法
void service(ServletRequst request,ServletResponse response) servlet
的服务方法
void destroy() servlet
的销毁方法
ServletConfig getServletConfig()
获取
ServletConfig
对象
3. HttpServlet:
抽象类
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
处理
get
请求
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
处理
post
请求
protected void service(HttpServletRequest req, HttpServletResponse resp)
处理所有的请求方式
4 HttpServletRequest:
请求对象
当用户发送的请求到达
servlet
容器时,包含数据的请求将被转换为
HttpServletRequest
对象,对请求数
据的处理工作便由
HttpServletRequest
对象完成。
方法:
public String getParameter(String name)
返回指定
name
对应的参数的值
public String[] getParameterValues(String name)
返回指定
name
对应的一组参数值,返回值是数
组
public Enumeration getParameterNames()
返回所有客户请求的参数名
String getMethod()
获取请求的方法
(GET,POST)
String getRequestURI()
获取请求的
uri
StringBuffer gerTrequestURL()
获取请求的
URL
5. HttpServletResponse:
响应对象
把服务器对客户端浏览器的所有响应内容封装到该对象里面
常用方法:
void setContentType(String str)
专门设置
content-type
这个响应头
PrintWriter getWriter()
获取一个字符方式的响应 输出流
ServletOutputStream getOutputSttream()
获取一个字节方式的响应 输出流
6. ServletConfig
: 接口
常用方法:
getInitParameter(String param)
根据参数
name
值返回对用的初始化参数值
一个名称
对应一个值
getInitParameterNames(String param)
根据参数名返回该
name
对应的所有的参数值
一个名
称对应多个值
getServletContext()
返回一个
ServletContext
对象
getServletName()
返回当前
servlet
的名称,即
@WebServlet
的
name
属性
值,如果没配,返回全限命名
注意:
一个
Servlet
对应一个
ServletConfig
对象
请求方式:get post put delete options
method=get post
get请求:
method=“get” or 浏览器直接敲url也属于get请求,执行doGet()方法
get请参数通过浏览器url来传输
doGet()处理的是get请求
数据不安全 传输量小
post请求:
method=“post” post请求数据走请求体
doPost()方法处理的是post请求
service()可以处于所有请求
请求:
- 请求行 联系方式 信封
- 请求头
- 请求体 信的正文
servlet 生命周期
servlet是个过程,又开始,有结束。init() service( ) destory()
servlet加载时机
该servlet什么时候被加载,就是init()执行时机
loadOnStartup=整数
零、正数:启动时加载 负数:访问的时候加载
(数值越大越优先执行 )