java web 第四天笔记

头大了。今天看的比较少,今天一觉睡到11点,再加上整理《网络信息对抗》的考试重点,耽误了java web的学习了!

 

1、使用<welcome-file-list>元素

欢迎页面,文件名通常为index.html 

        http://www.bhu.edu.cn/

Tomcat中,如果访问的URL是目录,并且没有特定的Servlet与这个URL模式匹配,那么它将在该目录中首先查找index.html文件,如果找不到将查找index.jsp文件 

  <welcome-file-list>

      <welcome-file>index.html</welcome-file>

      <welcome-file>index.jsp</welcome-file>

      <welcome-file>home.html</welcome-file>

      <welcome-file>default.jsp</welcome-file>

  </welcome-file-list>

经过上述配置,如果客户使用目录访问该应用程序,Tomcat将在指定的目录中按<welcome-file>指定的文件的顺序查找文件,如果找到则把该文件发送给客户端。

2、ServletConfing接口

Servlet初始化时,容器将调用init(ServletConfig)方法,并为其传递一个ServletConfig对象,该对象称为Servlet配置对象。

使用该对象可以获得Servlet初始化参数、Servlet名称、ServletContext对象等。

如何得到ServletConfig接口对象

Servlet中要得到ServletConfig接口对象有两种方法:

1)使用Servlet 的 getServletConfig()方法

  ServletConfig  config = getServletConfig();

2)覆盖Servlet 的 init(ServletConfig config)方法

格式如下:

public void init(ServletConfig config){

  super.init(config); //必须调用超类的init()方法。

  this.config = config;

}

ServletConfig接口共定义了下面4个方法:

public String getInitParameter(String name) 

public Enumeration getInitParameterNames() 

public String getServletName() 

public ServletContext getServletContext()

如何声明Servlet初始化参数

<servlet>

    <servlet-name>configDemoServlet</servlet-name>

    <servlet-class> com.demo.ConfigDemoServlet

    </servlet-class>

    <init-param>

      <param-name>email</param-name>

      <param-value>[email protected]</param-value>

    </init-param>

    <init-param>

      <param-name>telephone</param-name>

      <param-value>8899123</param-value>

    </init-param>

</servlet>

3、ServletContext接口

什么是ServletContext?

容器在启动时会加载每个Web应用程序,并为每个Web应用程序创建一个唯一的javax.servlet.ServletContext实例对象,一般称为Servlet上下文对象。

Servlet可以使用上下文对象

获得Web应用程序的初始化参数

Sservlet容器的版本等信息

Servlet用来与其他的Servlet共享数据。 

4、得到ServletContext引用

Servlet中可以有两种方法得到ServletContext引用:

1)直接调用ServletgetServletContext()方法,例如:

    ServletContext context = getServletContext();

2)使用getServletConfig()方法得到ServletConfig引用,再调用它的getServletContext()方法,例如:

    ServletContext context =

             getServletConfig().getServletContext();

5、获取应用程序的初始化参数 

ServletContext也有初始化参数 

可以使用ServletContext的下面两个方法检索Servlet上下文初始化参数:

public String getInitParameter(String name) 

public Enumeration getInitParameterNames()

这些初始化参数是在DD中使用<context-param>元素定义的。

<web-app>

  ...

<context-param>

  <param-name>adminEmail</param-name>

  <param-value>[email protected]</param-value>

</context-param>

...

<web-app>

注意: <context-param>元素是<web-app>元素的直接子元素,并不嵌套在某个<servlet>元素中。其中定义的初始化参数是针对整个应用的。

要检索DD中定义的email参数值,可以使用下面代码:

public void init(){

  ServletContext context = getServletContext();

  String email = 

        context.getInitParameter(adminEmail");

  // 使用email

Servlet上下文初始化参数与Servlet的初始化参数是不同的!

Servlet上下文初始化参数是属于Web应用程序的,可以被Web应用程序的所有的ServletJSP页面访问。

<context-param>

</context-param>

Servlet初始化参数是属于定义它们的Servlet的,不能被Web应用程序的其他组件访问。

<init-param>

</init-param>

6、通过ServletContext对象获得资源

public URL getResource(String path) 

返回由给定路径指定的资源的URL对象。尽管路径应该以“/”开头,但它不是一个绝对路径,而是相对于该Web应用程序的文档根目录。

   public InputStream  

             getResourceAsStream(String path) 

如果只想从资源上获得一个InputStream对象,这是一个简洁的方法,它等价于getResource(path).openStream()

   public String getRealPath(String path) 

返回给定的虚拟路径的真实路径。

7、登录日志

使用log()方法可以将指定的消息写到服务器的日志文件中,格式为:

     public void log(String msg) 

参数msg为写到日志文件中的消息。默认情况下将把日志信息写到Tomcat安装目录的\logs\localhost.2009-03-17.log文件中,文件名中的日期为写入日志的日期。

  public void log(String msg, 

                Throwable throwable) 

该方法将msg指定的消息和异常的栈跟踪信息写入日志文件。 

发布了23 篇原创文章 · 获赞 6 · 访问量 4万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章