1.Servlet 快速入门
2.Servlet 执行流程
3.Servlet 生命周期
对象的生命周期指一个对象从被创建到被销毁的整个过程
3.1Serclet的destroy方法调用
在控制台Terminal中输入 mvn tomcat7:run 等待 通过Ctrl + c 结束就可以看到destroy()的调用
3.2获取ServletConfig对象 ServletConfig getServletConfig()使用技巧
代码
@WebServlet(urlPatterns="/demo3",loadOnStartup = 1)
public class ServletDemo3 implements Servlet {
private ServletConfig config;
@Override
public void init(ServletConfig config) throws ServletException {
this.config = config;
System.out.println("init...");
}
@Override
public ServletConfig getServletConfig() {
return config;
}
@Override
public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException {
System.out.println("servlet hello world~");
}
//获取Servlet信息 一般为空 不写
@Override
public String getServletInfo() {
return "";
}
}
4.Servlet 体系结构
4.1介绍get和post方法使用
1.get是在请求行里面
2.post 在请求体里面
4.2调用get和post方法
get是默认的调用方式,post需要定义在web.app中一个.htm文件进行调用
1.设置一个.html文件例如a.html文件,编写代码
2.在浏览器中调用a.html如图所示
3.点击提交后,浏览器就会自动以post的方式去访问demo4的资源了
4.就可以看到post调用了
4.3.判断get和post的调用方式,简写demo,可以通过继承的方式来简化代码
1.判断get和post的调用方式
//2. 判断
if("GET".equals(method)){
// get方式的处理逻辑
doGet(req,res);
}else if("POST".equals(method)){
// post方式的处理逻辑
doPost(req,res);
}
2.编写一个父类 MyHttpServlet ,编写get和post方法判断的方法
doGet(req,res); doPost(req,res);
代码:
package com.itheima.web;
import javax.servlet.*;
import javax.servlet.http.HttpServletRequest;
import java.io.IOException;
public class MyHttpServlet implements Servlet {
@Override
public void init(ServletConfig config) throws ServletException {
}
@Override
public ServletConfig getServletConfig() {
return null;
}
@Override
public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException {
// 根据请求方式的不同,进行分别的处理
HttpServletRequest request = (HttpServletRequest) req;
//1. 获取请求方式
String method = request.getMethod();
//2. 判断
if("GET".equals(method)){
// get方式的处理逻辑
doGet(req,res);
}else if("POST".equals(method)){
// post方式的处理逻辑
doPost(req,res);
}
}
protected void doPost(ServletRequest req, ServletResponse res) {
}
protected void doGet(ServletRequest req, ServletResponse res) {
}
@Override
public String getServletInfo() {
return null;
}
@Override
public void destroy() {
}
}
3.子类继承父类,重写调用父类的方法
4.运行调用demo5
5.调用成功
4.4.也可以通过java自带的HttpServlet当作父类,直接去调用其中的方法
5.Servlet urlPattern配置
5.1配置多个 urlPattern
5.2urlPattern配置规则:
5.3.XML 配置方式编写 Servlet
在web.app--WEB-INF--web.xml文件进行配置
<!--
Servlet 全类名
-->
<servlet>
<servlet-name>demo13</servlet-name>
<servlet-class>com.itheima.web.ServletDemo13</servlet-class>
</servlet>
<!--
Servlet 访问路径
-->
<servlet-mapping>
<servlet-name>demo13</servlet-name>
<url-pattern>/demo13</url-pattern>
</servlet-mapping>
</web-app>