1.Servlet简介
Servlet(Server Applet),全称Java Servlet,是用Java编写的服务器端程序,是在服务器上运行并处理客户端的请求做出响应的程序,其主要功能在于交互式地浏览和修改数据,生成动态Web内容。
2.Servlet工作模式
客户端发送请求至服务器——>服务器启动并调用Servlet,Servlet根据客户端请求生成响应内容并将其传给服务器——>服务器将响应返回客户端
3.Servlet的生命周期(出生——工作——死亡)
init( ),service( ),destroy( )是Servlet生命周期的方法
init():当Servlet第一次被创建对象时执行该方法,该方法在整个生命周期中只执行一次
service():对客户端响应的方法,该方法会被执行多次,每次请求该servlet都会执行该方法
作用:把Tomcat(Servlet容器)传入的请求进行处理,并让Tomcat知道向客户端发送怎样的回应。
destroy():Servlet被销毁时执行该方法
4.实现Servlet的三种方式
4.1:实现 Servlet 接口
public class MyServlet implements Servlet {//实现servlet接口
//初始化
public void init(ServletConfig arg0) throws ServletException {
System.out.println("servlet初始化!");
}
//服务
public void service(ServletRequest arg0, ServletResponse arg1) throws ServletException, IOException {
System.out.println("Servlet正在提供服务!");
}
//销毁
public void destroy() {
System.out.println("Servlet正在被销毁!");
}
}
4.2:继承 GenericServlet 类(少用)
public class MyServlet extends GenericServlet {//继承GenericServlet
//服务
@Override
public void service(ServletRequest arg0, ServletResponse arg1) throws ServletException, IOException {
System.out.println("Servlet正在提供服务!");
}
}
4.3:继承 HttpServlet 方法(推荐)
public class MyServlet extends HttpServlet {//继承HttpServlet
/**
* 1.继承HttpsServlet;
* 2.重写doGet和doPost方法
*/
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//编写处理Get方式的请求
doPost(req, resp);//调用doPost方法
System.out.println("Get方法");
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//编写处理post方式的请求
req.setCharacterEncoding("utf-8");
resp.setContentType("text/html;charset=utf-8");
//获取out内置对象
PrintWriter out = resp.getWriter();
System.out.println("Post方法");
}
}
5.部署Servlet
在 web.xml 文件中的 <web-app>...</web-app> 标签内创建
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
<display-name>jsp_servle</display-name>
<welcome-file-list>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
<!-- 配置servlet -->
<servlet>
<!-- 对象名:遵循小驼峰命名法 -->
<servlet-name>myServlet</servlet-name>
<!-- 配置的servlet的完整类名/全限定名:包名+类名 -->
<servlet-class>com.zking.servle.MyServlet</servlet-class>
<!-- 初始化参数 -->
<init-param>
<param-name>name</param-name>
<param-value>苏墨</param-value>
</init-param>
<!-- 设置servlet加载的顺序 -->
<load-on-startup>1</load-on-startup>
</servlet>
<!-- 配置servlet眏射 -->
<servlet-mapping>
<servlet-name>myServlet</servlet-name>
<!--路径-->
<url-pattern>/myServlet.do</url-pattern>
</servlet-mapping>
</web-app>