servlet生命周期
package com.zhencool.servlet;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Enumeration;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/*Servlet的生命周期:
1、加载和实例化Servlet对象:由Servlet窗口负责加载Servlet,当Servlet窗口
启动或是检测到需要这个Servlet响应第一个请求时,将加载这个Servlet。
加载的方式是通过反射的API去调用Servelet的无参构造方法完成,所以在自定义
的Servlet中不应该出现带参数的构造方法,如果需要定义有参的构造方法,则一定要把无参的也写出来。
2、初始化Servlet对象:调用init()方法完成相应的初始化,如读取初始化参数、连接DB等。
3、处理请求:调用service()方法处理请求。之前一这是init()方法执行成功。
4、销毁Servlet对象:调用detroy()方法。
*/
public class Servlet01 extends HttpServlet{
/**
*
*/
private static final long serialVersionUID = 1L;
@Override
//服务器的生命周期,servlet只初始化一次,服务器停止被销毁
public void init() throws ServletException {
// 在servlet第一次被调用,初始化,在服务器的生命周期内不会重新初始化(当context的reloadable设置为true,在类发生变化时,才有可能重新加载)
System.out.println("servlet01 init.....");
}
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.println("Servlet01 running......");
System.out.println(this);//com.lanou3g.servlet.Servlet01@2ca5bc92
System.out.println("i'm change......");
//getmethod():获得客户端向服务器端传送数据的方法有get、post、put等类型,,getScheme():它返回当前请求所使用的协议。 一般的应用返回 "http",对于ssl则返回"https"
System.out.println(req.getMethod() + " " + req.getParameter("path") + " " + req.getScheme());
System.out.println(req);
Enumeration<String> heads = req.getHeaderNames();
while(heads.hasMoreElements()) {
String headName = heads.nextElement();
System.out.println(heads + ":" + req.getHeader(headName));
}
System.out.println(req.getRequestURI());//获得发出请求字符串的客户端路径
System.out.println(req.getQueryString());//方法返回请求行中的参数部分
System.out.println(req.getParameter("username"));//用户名密码
System.out.println(req.getProtocol());//协议
System.out.println(req.getRequestURL());
System.out.println(req.getContextPath());//当前的文档路径
System.out.println(req.getIntHeader("Content-Length"));
System.out.println(getServletName());
System.out.println(req.getCharacterEncoding());//编码类型
System.out.println(req.getAuthType());
System.out.println(req.getContentLength());
System.out.println(req.getContentType());
System.out.println(req.getPathInfo());//方法返回请求URL中的额外路径信息
System.out.println(req.getPathTranslated());
System.out.println(req.getServerName());//获取服务器名
System.out.println(req.getServerPort());//获取服务器的端口号
System.out.println(req.getServletPath());//获得客户端所请求的脚本文件的文件路径
System.out.println(req.getParts());
//客户访问服务器响应的第一行
System.out.println(req.getMethod() + " " + req.getProtocol() + " " + req.getRequestURI() + " " + req.getQueryString());
// resp.setContentType("text/html");
// resp.setCharacterEncoding("utf-8");
//.setHeader 是用来设置返回页面的头 meta 信息
resp.setHeader("Content-Type", "text/html; charset=utf-8");
//向文本输出流打印对象的格式化表示形式PrintWriter = response.getWriter();
PrintWriter out = resp.getWriter();
out.write("你好");
}
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.println("HttpServlet......");
super.service(req, resp);
System.out.println(req.getMethod());
}
@Override
public void service(ServletRequest arg0, ServletResponse arg1) throws ServletException, IOException {
System.out.println("servletrequest.......");
super.service(arg0, arg1);
}
@Override
// 服务器会停止服务并销毁所有的servlet时调用destroy方法
public void destroy() {
System.out.println("servlet destroy......");
}
}
 
                    
                
 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号