JavaWeb笔记(3)
Servlet(1)
Servlet是运行在服务器端的的一个程序,用于接收请求和响应数据
- 创建第一个Servlet程序(实现Servlet接口)
//重写方法
public class Servlet1 implements Servlet {
@Override
public void init(ServletConfig servletConfig) throws ServletException {
}
@Override
public ServletConfig getServletConfig() {
return null;
}
@Override
public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
//service方法专门处理请求和响应
}
@Override
public String getServletInfo() {
return null;
}
@Override
public void destroy() {
}
}
在XML中国配置访问路径
<servlet>
//Servlet的名称
<servlet-name>Servlet1</servlet-name>
//所对应的类
<servlet-class>com.zsh.web.Servlet1</servlet-class>
</servlet>
<servlet-mapping>
//对应Servlet的名称
<servlet-name>Servlet1</servlet-name>
//访问路径
<url-pattern>/servlet1</url-pattern>
</servlet-mapping>
- Servlet的生命周期
1、执行Servlet构造方法
2、执行init初始化方法
(以上两个步骤只在启动时执行,后续访问该Servlet不执行)
3、执行service方法
(每次访问都会执行)
4、执行destroy方法
(web工程停止时调用) - GET和POST的请求分发处理
@Override
public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
HttpServletRequest httpServletRequest = (HttpServletRequest) servletRequest;
String method = httpServletRequest.getMethod();
if ("GET".equals(method)){
doGet();
} else if ("POST".equals(method)) {
doPost();
}
}
public void doGet(){
System.out.println("GET请求");
}
public void doPost(){
System.out.println("POST请求");
}
- 继承HttpServlet
一般开发直接继承HttpServlet,HttpServlet中实现了service方法,实现了请求的分发处理,所以只需重写doGet和doPost方法。
同理,还可以编写一个类,继承HttpServlet,重写doGet和doPost方法,再实现分发处理,后续写Servlet程序时只要继承该类,直接写方法即可。 - ServletConfig
Servlet的配置信息类,有以下功能
1、获取Servlet程序的< servlet-name >
2、获取初始化参数init-param
3、获取ServletContext对象 - ServletContext
ServletContext是一个接口,表示上下文对象。一个web工程只有一个ServletContext对象,在工程启动时创建,结束时销毁。
4个作用:
获取web.xml中的context-param参数
获取工程路径(getContextPath)
获取工程部署后在服务器上的绝对路径(getRealPath)
像map一样存储数据(setAttribute和getAttribute)