CGI - 公共网关接口
所有CGI都实现公共网关的四大接口
CGI程序常见的实现ASP,PHP,JSP,ASP.NET,Perl....
Servlet类规范
-
Servlet是java的CGI应用,实际就是一个java类,写Servlet类要符合如下规范
-
要继承HttpServlet类
-
Servlet处理请求默认是service(..)方法,我们可以重写这个方法处理请求(但不推荐)
import javax.servlet.http.*;
public class HelloWorldServlet extends HttpServlet{
public void service(HttpServletRequest req,HttpServletResponse resp){
resp.getWriter().println("鸡你太美!");
}
}
编译我们写的Servlet
javac -classpath E:\apache-tomcat-9.0.16\lib\servlet-api.jar HelloWorldServlet.java
在myWebApp/WEB-INF/classes目录中就多出个类
在布署描述符中配置Servlet
因为我们只能给服务器发请求,告诉服务器我们要找哪个Servlet组件处理我们的请求,所以首先要让服务注册好我们写好的Servlet,因为服务器启动时是到web.xml配置文件查看有哪些Servlet配置,然后把这些配置的Servlet实例化,并加载到服务器的Servlet容器(ServletContext)当中
1.在web.xml中配置Servlet
<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"
metadata-complete="true">
<servlet>
<servlet-name>abc</servlet-name>
<servlet-class>HelloWorldServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>abc</servlet-name> <!--http://localhost:8080/myWebApp/aaa/bbb/ccc-->
<url-pattern>/aaa/bbb/ccc</url-pattern>
</servlet-mapping>
</web-app>
然后重启服务器,在浏览器中输入Servlet组件配置的url,http://localhost:8080/myWebApp/aaa/bbb/ccc