• Servlet学习(一)


    servlet是运行在Web服务器中的小型Java程序,服务器端的小应用程序。servlet同城通过HTTP协议接收和响应来自Web客户端的请求。

    servlet类

    package servlet;
    
    import java.io.IOException;
    
    import javax.servlet.Servlet;
    import javax.servlet.ServletConfig;
    import javax.servlet.ServletException;
    import javax.servlet.ServletRequest;
    import javax.servlet.ServletResponse;
    
    public class ServletDemo1 implements Servlet{
    
    	@Override
    	public void destroy() {
    		// TODO Auto-generated method stub
    		
    	}
    
    	@Override
    	public ServletConfig getServletConfig() {
    		// TODO Auto-generated method stub
    		return null;
    	}
    
    	@Override
    	public String getServletInfo() {
    		// TODO Auto-generated method stub
    		return null;
    	}
    
    	@Override
    	public void init(ServletConfig arg0) throws ServletException {
    		// TODO Auto-generated method stub
    		
    	}
    
    	@Override
    	public void service(ServletRequest arg0, ServletResponse arg1) throws ServletException, IOException {
    		System.out.println("service");
    	}
    
    }
    

      

    web.xml配置文件

    <?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" version="2.5">
    
    <!-- 创建一个servlet实例 -->
    <servlet>
        <servlet-name>ServletDemo1</servlet-name>
        <servlet-class>servlet.ServletDemo1</servlet-class>
        <!-- servlet在服务器启动时候就创建 -->
        <load-on-startup>2</load-on-startup>
        <!-- 数字越小优先级越高,0默认配置了一个 -->
    </servlet>
    
    <!-- 给servlet提供(映射)一个可供客户端访问的URI -->
    <servlet-mapping>
        <servlet-name>ServletDemo1</servlet-name>
        <url-pattern>/demo1</url-pattern>
    </servlet-mapping>
    
    <!-- 欢迎页面 -->
    <welcome-file-list>
            <welcome-file>index.jsp</welcome-file>
    </welcome-file-list>
    
    </web-app>

    输入:http://localhost:8080/learn/demo1

    servlet类运行过程

    servlet生命周期(为请求服务器的方法和从服务器移除servlet方法。)

    实例化-->初始化-->服务-->销毁
    出生:(实例化-->初始化)(默认情况下)第一次访问就出生
    活着:(服务)应用活着,servlet就活着
    死亡:(销毁)应用卸载了,servlet就销毁

    1.构造servlet类,然后私有init方法将其初始化
    2.处理来自客户端的对service方法的所有调用。
    3.从服务器中取出servlet,然后使用destory方法销毁它,最后进行垃圾回收并终止它。
    除了生命周期方法,接口还提供了getServletConfig()和getServletInfo方法,servlet可使用前一种方法获得任何启动信息,而后一种方法允许servlet返回有关其子孙的基本信息,比如作者,版权和版本

    代码:

    package servlet;
    
    import java.io.IOException;
    
    import javax.servlet.Servlet;
    import javax.servlet.ServletConfig;
    import javax.servlet.ServletException;
    import javax.servlet.ServletRequest;
    import javax.servlet.ServletResponse;
    
    public class ServletDemo1 implements Servlet{
        
        //实例化
        public ServletDemo1() {
            System.out.println("ServletDemo1");
        }
    
        //销毁
        @Override
        public void destroy() {
            System.out.println("destroy");
        }
    
        @Override
        public ServletConfig getServletConfig() {
            // TODO Auto-generated method stub
            return null;
        }
    
        //
        @Override
        public String getServletInfo() {
            // TODO Auto-generated method stub
            return null;
        }
    
        //初始化
        @Override
        public void init(ServletConfig arg0) throws ServletException {
            System.out.println("init");
        }
    
        //服务
        @Override
        public void service(ServletRequest arg0, ServletResponse arg1) throws ServletException, IOException {
            System.out.println("service");
        }
    
        //运行结果:首次启动:ServletDemo1、init、service
        //以后:service,多线程,创建一个实例,每次运行则开启一个servlet线程
    }

    servlet应用卸载:

    http://loaclhost:8080 --> Manager App --> 身份验证(连接) --> 找到应用 --> undeploy

    设置用户名密码:
    apache-tomcat7.0.52/conf/tomcat-users.xml
    <role rolename="manager-gui"/>
    <user username="admin" password="123456" roles="manager-gui"/>
    重启服务器

  • 相关阅读:
    python工具类 md5
    python 线程池, 进程池
    scrapydweb 安装部署
    python 协程
    jquery
    scrapyd 设置访问密码
    pat 乙级1033 旧键盘打字(20)
    1459 迷宫游戏(51NOD)
    python之禅
    Jzzhu and Cities ----CodeForces
  • 原文地址:https://www.cnblogs.com/bsfl-study/p/9003334.html
Copyright © 2020-2023  润新知