javaWeb (一) Servlet HelloWorld

先来个demo helloworld:

在 Tomcat 服务器的 webapps 下创建 test 目录 结构如下
javaWeb (一) Servlet HelloWorld_第1张图片

helloServlet 代码,在cmd 中编译成class 文件。

package com.zll;
import javax.servlet.*;
import java.io.IOException;

public class helloServlet extends GenericServlet{
    @Override
    public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
servletResponse.getOutputStream().write("hello~wrold".getBytes());
    }
}

命令行窗口 cd 到 test/WEB-INF/classes 目录下
执行命令:

F:\Service\tomcat8\webapps\test\WEB-INF\classes>javac -classpath F:/Service/tomcat8/lib/servlet-api.jar -d . helloServlet.java

编译后直接生产如下目录文件:
javaWeb (一) Servlet HelloWorld_第2张图片

web.xml 中配置 serlvet:


<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_3_1.xsd"
  version="3.1">
    <servlet>
        <servlet-name>helloServletservlet-name>
        <servlet-class>com.zll.helloServletservlet-class>
    servlet>
    <servlet-mapping>
        <servlet-name>helloServletservlet-name>
        <url-pattern>/hellourl-pattern>
    servlet-mapping>
web-app>

启动 tomcat 服务器,访问 localhost:8080/test/hello 就会打印出
hello~wrold

Servlet 是什么:

Servlet是运行在服务器端的小程序
Servlet不能独立运行,它只能运行服务器上(实现了Servlet-api接口的服务器上:例如tomcat)。从上面的例子可以看出,浏览器访问 该servlet,服务器来创建servlet 并调用 service 方法,在通过 response对象将数据输出给浏览器。

客户端发的任何请求都需要访问客户端的servlet(包括静态资源也是访问服务器 缺省的servlet)
做个试验:如果你web.xml 中配置了


<url-pattern>/url-pattern>

Servlet生命周期

init();
用户第一访问时启动调用,或者显示的配置,服务器启动时,调用。不论何种方式,servlet只会调用一次init 方法,一单启动,就一直驻留到服务器内存中,知道显示的调用distroy方法,或者服务器停止调用distroy方法时关闭。
service():
在客户请求时,调用该方法。service方法用来处理数据交互的地方。
destroy();
服务器停止。或者被显示调用时。

Servlet配置:

<servlet>
    
    <servlet-name>helloServletservlet-name>
    <servlet-class>com.zll.helloServletservlet-class>
    
    <load-on-startup>1load-on-startup>
servlet>
<servlet-mapping>
    
    <servlet-name>helloServletservlet-name>
    <url-pattern>/hellourl-pattern>
    
servlet-mapping>
web-app>

你可能感兴趣的:(javaWeb)