-
概念、作用
servlet是运行在web服务器端的java程序,由java语言编写,与java程序的区别是,servlet对象封装了处理HTTP请求,并响应数据该浏览器,运行时需要有web容器的支持。 -
创建Servlet类(编写规范)
- 继承HttpServlet类,此类包---javax.servlet.HttpServlet
- 重写doGet和doPost方法或service方法
-
配置servlet的方式
- 配置web.xml文件
- 注解@WebServlet
-
Tomcat概念
运行在servlet和jsp的容器。 -
servlet的生命周期
-
初始化阶段
- 调用的方法为init()方法。
- 整个过程调用1次,在servlet容器实例化对象后。
-
运行阶段
- 调用的方法为service() 或 doGet()、doPost()方法。
- 多次,每次请求都会调用。
-
销毁阶段
- 调用的方法为destroy()方法。
- 1次,当服务器关闭或web应用程序移除服务器时调用。
-
-
Servlet的体系结构
-
请求和响应接口
-
ServletConfig和ServletContext对象
- ServletConfig 作用:查看配置信息。
- 一个servlet类只有一个ServletConfig对象
- ServletContext 作用:获取web应用的初始化参数、多个servlet之间数据共享。
- 一个web应用只有一个ServletContext对象
- ServletConfig 作用:查看配置信息。
-
Servlet处理请求的步骤
-
设置请求、响应编码
- req.setCharacterEncoding("utf-8"); 设置请求或请求消息的字符编码
- resp.setCharacterEncoding("utf-8");
- resp.setContentType("text/html;charset=utf-8");
-
获取请求参数
- req.getParameter("name"); name 为一个参数
-
处理请求
- 进行数据的输出、判断、跳转等
-
响应(跳转)
-
重定向
- resp.sendRedirect("url");
- 地址栏地址会发生变化,在浏览器进行改变。
- 请求了2次。
-
请求转发
- req.getRequestDispatcher("url").forward(req,resp);
- 地址栏地址不会发生变化,在服务器进行改变。
- 请求了1次。
-
-
原理