目录
概念
servlet是javaServlet的简称,用java编写的运行在web服务器或应用服务器上的程序,具有独立于平台和协议的特性,主要功能在于交互式地浏览和生成动态web内容。它的作用在于接收用户通过浏览器传来的表单数据,或者读取数据返回给浏览器查看,创建动态网页。
它的接口路径为package javax.servlet,具有HttpServlet和GenericServlet两大子类。
servlet程序创建
这里我参考了idea创建servlet+javaweb项目
然后不一样的地方我这里也贴出来:
在RUN——>configutions目录中打开如下界面:
要注意解决8080端口被占用的问题:
将HTTP PORT那一栏改为8888.
这是我的目录结构:
UserServlet.java
//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by Fernflower decompiler)
//
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class UserServlet extends HttpServlet {
public UserServlet() {
}
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
resp.setCharacterEncoding("UTF-8");
resp.setContentType("text/html");
PrintWriter printWriter = resp.getWriter();
printWriter.write("<div>软件1803班王玥遥</div>");
}
}
web.xml
<?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-name>UserServlet</servlet-name>
<servlet-class>UserServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>UserServlet</servlet-name>
<url-pattern>/UserServlet</url-pattern>
</servlet-mapping>
</web-app>
运行效果:
servlet的生命周期
进入源码我们可以看到,servlet类有五个抽象方法:
其中有三个是生命周期方法,还有两个是普通方法。
生命周期方法:
- Servlet 初始化后调用 init () 方法。
- Servlet 调用 service() 方法来处理客户端的请求。
- Servlet 销毁前调用 destroy() 方法。
- 最后,Servlet 是由 JVM 的垃圾回收器进行垃圾回收的。