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"/>
重启服务器

 

posted @ 2018-05-16 23:37  半世风流  阅读(88)  评论(0编辑  收藏  举报