zoukankan      html  css  js  c++  java
  • servlet

    servlet 是server applet 缩写,服务端程序,applet是运行于客户端浏览器上的小程序。servlet 没有main方法,运行于服务端,创建和销毁都是由servlet 容器(tomcat,netty等)来管理。

    public class HelloWorld extends HttpServlet {
    	
    	@Override
    	public void init() throws ServletException {
    		System.out.println("-------servlet init ---------");
    		super.init();
    	}
    
    	@Override
    	public void init(ServletConfig config) throws ServletException {
    		System.out.println("-------servlet init  with paramenter config---------"+ config);
    		super.init(config);
    	}
    
    	@Override
    	protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    		System.out.println("-------servlet service ---------");
    		PrintWriter pw = resp.getWriter();
    		pw.println("hello world");
    		pw.close();
    //		super.service(req, resp);
    	}
    
    	@Override
    	public void destroy() {
    		System.out.println("-------servlet destroy ---------");
    		super.destroy();
    	}
    
    
    
    }
    

      web.xml 中配置:

      <servlet>
      		<servlet-name>helloServlet</servlet-name>      //servlet的注册名称
      		<servlet-class>com.servlet.HelloWorld</servlet-class>
      </servlet>
      <servlet-mapping>
      		<servlet-name>helloServlet</servlet-name>
      		<url-pattern>/123Hello</url-pattern>          //对外访问的路径
      </servlet-mapping>
    

      

      在lib中导入 servlet-api.jar , 启动tomcat , 输入:

    信息: Server startup in 857 ms
    -------servlet init with paramenter config---------org.apache.catalina.core.StandardWrapperFacade@6bfd67ba
    -------servlet init ---------        // 这句话是执行有参的init 方法  super.init(config);  输出的 ,有参的init 方法会去执行 无参的init 方法。

    -------servlet service ---------

    浏览器访问 http://localhost:8080/jspstudy/123Hello , 则执行service方法页面, 继续输出 -------servlet service --------- , 

    PrintWriter 对象并向浏览器输出: hello world 。

    当停止tomcat 时, 执行 destroy 方法: 输出
    -------servlet destroy ---------

    客户端发送http请求,到达tomcat内置的web服务器,web服务器转发给servlet容器,servlet容器接到请求后,加载servlet,产生servet实例后,向实例传递表示请求的 HttpServletRequest 对象和 表示响应的 HttpServletResponse 对象,
    servlet实例 使用 HttpServletRequest 对象 得到客户端的请求信息,一个servlet处理完后,可能会转发到另外的servlet,servlet 都处理完成后,通过 响应对象 返回给客户端。

    init 和 destroy 方法只会被执行一次。每次客户端请求都会执行 service 方法。在 tomcat被启动后,并不会执行init方法,即tomcat 启动后,并不会实例化servlet ,只有servlet 被访问了,才执行init 方法。
  • 相关阅读:
    SQL SERVER 2012修改数据库名称(包括 db.mdf 名称的修改)
    vmware三种网络模式
    指针
    linux 中 开放端口,以及防火墙的相关命令
    数据库备份的脚本,记录下,还需优化下
    遍历 目录的几种有效办法
    转。git 乌龟的使用安装
    centos 时区正确,时间不对
    locate
    从 零开始 无差错 装好nginx+PHP
  • 原文地址:https://www.cnblogs.com/z360519549/p/9925255.html
Copyright © 2011-2022 走看看