1.servlet
服务器的小程序 固定模式的java类 用于接收客户端请求,处理数据、给与响应的java模板类
动态资源:需要web应用服务器把动资源解析后,得到静态资源后才能响应给客户端
1.1.实现servlet接口
implements Servlet----将抽象方法实例化
package servletTest;
import java.io.IOException;
import javax.servlet.Servlet;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
public class demo1 implements Servlet {
public void destroy() {//销毁方法
// TODO Auto-generated method stub
}
//获取配置信息
public ServletConfig getServletConfig() {
// TODO Auto-generated method stub
return null;
}
//获取版本信息
public String getServletInfo() {
// TODO Auto-generated method stub
return null;
}
//初始化
public void init(ServletConfig arg0) throws ServletException {
// TODO Auto-generated method stub
}
//服务
public void service(ServletRequest arg0, ServletResponse arg1) throws ServletException, IOException {
// TODO Auto-generated method stub
//接受请求
//处理数据
//给予响应
System.out.println("demo1执行了");
arg1.setCharacterEncoding("utf-8");
arg1.setContentType("text/html;charset=utf-8");
arg1.getWriter().print("鲜玫瑰营成果");
}
}
1.2 继承抽象类genericServlet实现servlet方法
extends GenericServlet -------继承抽象类实现servlet方法
package servletTest;
import java.io.IOException;
import javax.servlet.GenericServlet;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
public class demo2 extends GenericServlet{
@Override
public void service(ServletRequest arg0, ServletResponse arg1) throws ServletException, IOException {
// TODO Auto-generated method stub
//接受请求
//处理数据
//给予响应
System.out.println("demo2servlet执行了");
arg1.setCharacterEncoding("utf-8");
arg1.setContentType("text/html;charset=utf-8");
arg1.getWriter().print("deno2响应成功");
}
}
1.3.继承httpServlet类重写doget/dopost方法
demo3 extends HttpServlet -------重写doGet/doPOST方法
package servletTest;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class demo3 extends HttpServlet{
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
// TODO Auto-generated method stub
doPost(req, resp);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
// TODO Auto-generated method stub
System.out.println("demo3:::servlet执行了");
resp.setCharacterEncoding("utf-8");
resp.setContentType("text/html;charset=utf-8");
resp.getWriter().print("deno3::::响应成功");
}
}
三者关系:
javax.servlet.genericServlet是javax.servlet.Servlet接口的实现类
javax.servlet.http.HttpServlet继承了javax.servlet.genericServlet
javax.servlet.http.HttpServlet:专门针对于http请求的的接受和响应 提供了丰富的关于http协议的方法
注意:
1.servlet对象由tomcat创建
2.servlet是单例,tomcat对于同一个servlet只创建一个对象
3.通过servlet的service方法来接收请求,接受数据,给予响应、
生命周期
1.创建servlet对象----tomcat创建 默认在第一次请求时创建|||但是可以在web.xml里添加load-on-startup来指 定在启动时就创建
2.servlet初始化 -----一旦创建实例对象就进行初始化(加载servlet的配置信息)
3.servlet提供服务-------tomcat在每次接收到servlet的url请求就调用service方法,接受请求,给予响应
tomcat接收到请求时就会创建一个servletrequest类对象来装所有请求信息,创建一个servletresponse 对象来装所有响应的信息,接着调用url对应的service方法,传递两对象接受请求,给予响应
4.servlet的销毁,在关闭前调用销毁方法