2017-8-30

Tomcat


修改端口号

可以通过修改server.xml文件中的配置信息来修改Tomcat服务器的端口号。


Servlet


  • Java Servlet是和平台无关的服务器端组件
  • Servlet容器负责Servlet和客户的通信以及调用Servlet的方法。

配置和映射Servlet

  • 方式一:在web.xml文件中配置。

    
        hello
        com.wdtx.HelloServlet
    
    
        hello
        /hello
    
    

Servlet的生命周期

  • 构造器:只被调用一次,只有第一次请求Servlet时,才会调用构造器创建Servlet实例。
  • init:只会被调用一次,在创建好实例后立即被调用,用于初始化当前Servlet。
  • service:能被多次调用,被用来响应客户端请求。
  • destory:只被调用一次,在Web容器卸载当前Servlet时被调用,用于释放当前Servlet所占用的资源。

指定Servlet被创建的时机

可以通过在Servlet标签下添加如下代码


    ........
    1

  • 其值为非负数时,在当前WEB应用被WEB容器所加载时创建该Servlet,值越小越先被加载。
  • 其值为负数,或不存在该标签时,会在第一次被客户端请求时创建。

Servlet映射为URL

  • *.扩展名
  • 以’/’开头并以’/*’结尾
  • 仅仅为一个正斜杠(/)

如:

*.action
/abc/*
/*
/

注意同时带有’/’和扩展名的映射不合法

缺醒Servlet

  • 如果Servlet映射路径仅仅为一个正斜杠(/)
    那么这个Servlet就成为当前Web应用程序的缺省Servlet。
    缺省Servlet用于处理所有其他Servlet都不处理的访问请求。

配置Servlet初始化参数


    ........
    
        user
        root
    
    
        password
        123
    

必须在load-on-startup节点前
可通过ServletConfig来获取初始化参数

配置Web应用的上下文参数


    ........
    
        user
        root
    

可通过ServletContext对象获取

ServletContext

  • 可以有ServletConfig对象获取。
  • 该对象代表当前Web应用,可以获取当前Web应用的方方面面的信息。

    1. 获取Web应用上下文参数。

      public String getInitParameter(String name);
      public Enumeration getInitParameterNames();
      
    2. 获取Web应用某一文件的绝对路径。

      public String getRealPath(String path);
      
    3. 获取Web应用上下文路径(应用名)。

      public String getContextPath();
      
    4. 获取Web应用某一文件对应的输入流。

      public InputStream getResourceAsStream(String path);
      
    5. 和attribute相关的几个方法

JSP的九个隐含对象

request、response、pageContext、session、application、config、out、page、exception

exception在申明了page指令的isErrorPage=”true”时才可以使用。
如:<%@ page isErrorPage="true"%>

请求重定向和请求转发

  • 请求转发
    1. 调用 HttpServletRequest 的 getRequestDispatcher() 方法获取RequestDispatcher对象。
    2. 调用RequestDispatcher的forward()方法进行转发
    3. 如:request.getRequestDispatcher("/hello").forward(request,response);
  • 请求重定向
    resp.sendRedirect("/hello");
  • 区别(本质:请求转发只发出了一次请求,而重定向则发出了两次)
    1. 转发地址栏是初次发出请求的地址,而重定向为最后响应的那个地址。
    2. 转发在最终的Servlet中,request对象和中转的那个request对象是同一个对象,而重定向则是两个不同的request。
    3. 转发只能转发给当前Web的资源,而重定向可以重定向到任何资源。

你可能感兴趣的:(日常,servlet,tomcat,java)