创建web后端程序(servlet程序搭建)
目录
一、Servlet概述
二、创建servlet程序
1.创建类继承HttpServlet
2.重写HttpServlet类中 service、destroy、init方法
3.重新启动服务器
一、Servlet概述
Server Applet的简称,用Java编写的服务器端的程序。它运行在web服务器中,web服务器负责Servlet和客户的通信以及调用Servlet方法。
前端页面、服务器和后端javaEE程序关系图:
Servlet的作用:
1.接收用户发送的请求数据;
2.调用其他的java程序来处理请求;
3.根据处理结果,将结果响应给客户端。
二、创建servlet程序
1.创建类继承HttpServlet
在src下先创建包,在servlet包下创建一个登录类,继承HttpServlet类,于是我们创建的类就具备了servlet的程序功能,启动服务器时就会加载继承HttpServlet的类。由于HttpServlet是javaEE的类,需要导入tomcat中的servlet-api.jar包。
在安装Tomcat文件里的bin目录中:
复制bin目录中的 servlet-api.jar 包到项目中的web目录下:
加载jar包:
这样,我们的类成功的继承了import javax.servlet.http.HttpServlet包下的HttpServlet类。
2.重写HttpServlet类中 service、destroy、init方法
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;public class LoginServlet extends HttpServlet {/*无参构造方法,初始化创建的对象在第一次访问这个Servlet时或服务器启动时被调用了,只调用了一次*/public LoginServlet() {System.out.println("LoginServlet无参构造方法");}/*提供服务的,每次访问servlet程序,service方法都会执行, 多次执行*/@Overrideprotected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {System.out.println("service");}/*在服务器关闭时会被调用,可以在服务器关闭时执行一些必要的操作,此方法可以在我们的类中不重写,会调用父类中destroy()*/@Overridepublic void destroy() {System.out.println("destroy");}/*在构造方法执行完成后,紧接着来执行,用来初始化servlet,只调用了一次,如果没有初始化的需要,也可以不进行重写,那么会调用父类中init().*/@Overridepublic void init(ServletConfig config) throws ServletException {System.out.println("init");}
}
3.在web.xml文件中配置servlet
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"version="4.0"><!-- 配置servlet类的地址 --><servlet><servlet-name>loginServlet</servlet-name><!-- 定义servlet对象名字 -->
<!-- 配置servlet类地址,在第一次或启动服务器时,由服务器通过反射机创建次servlet对象制默认是第一次访问servlet时创建对象还可以配置在启动时创建对象<load-on-startup>1</load-on-startup> 值>=0
--><servlet-class>com.yyds.webback2.servlet.LoginServlet</servlet-class><!-- <init-param>-->
<!-- <param-name>count</param-name>-->
<!-- <param-value>22</param-value>-->
<!-- </init-param>--><!-- <load-on-startup>1</load-on-startup> --></servlet>
<!-- 为指定name的servlet配置一个供前端进行访问映射地址--><servlet-mapping><servlet-name>loginServlet</servlet-name><url-pattern>/login</url-pattern></servlet-mapping>
</web-app>
补充:<init-param>中的值可以在init方法中拿到:System.out.println(config.getInitParameter("count"));
3.重新启动服务器
访问 localhost:8080/webBack2/login
可在idea输出台观察构造方法和重写方法的调用顺序。