首页 > 编程 > JSP > 正文

Servlet&jsp基础:第一部分

2019-11-14 23:00:05
字体:
来源:转载
供稿:网友
Servlet&jsp基础:第一部分 声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.VEVb.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将追究法律责任!原文链接:http://www.VEVb.com/jiangzhengjun/p/4288968.html

使用Servlet激活器... 5

缺省Servlet 6

Tomcat中的类装载器... 6

Servlet 8

Servlet路径映射... 8

ServletConfig接口... 9

获取ServletContext对象(getServletContext... 9

获取Servlet的注册名(getServletName... 9

获取Servlet初始化参数(getInitParameter... 9

GenericServletHttpServlet... 10

init方法... 10

service方法... 10

getServletInfo方法... 11

doXxx方法... 11

浏览器缓存与getLastModified方法... 13

ServletContext 16

获取web应用的初始化参数(getInitParameter... 16

记录日志(log... 17

访问资源文件(getResourcePaths... 17

将虚拟路径转换成本地路径(getRealPath... 18

Web应用程序之间的访问(getContext... 19

其他方法(getMajorVersiongetMimeTypegetServerInfo... 19

使用Servlet激活器

配置一个Servlet时,一般要在自己项目中的web.xml配置<servlet><servlet-mapping>两个元素,但con/web.xml中为我们提供了一个名叫invokerServlet5.5.30中已被注释掉,我们需要去掉),如下:

<servlet>

<servlet-name>invoker</servlet-name>

<servlet-class>

org.apache.catalina.servlets.InvokerServlet

</servlet-class>

<init-param>

<param-name>debug</param-name>

<param-value>0</param-value>

</init-param>

<load-on-startup>2</load-on-startup>

</servlet>

它可以根据URL中提供的Servlet类信息而自动激活这个Servlet,而不需要我们再在自己的应用中的web.xmlj里另外配置一<servlet>,只需要配置<servlet-mapping>即可,配置如下:

<servlet-mapping>

<servlet-name>invoker</servlet-name>

<url-pattern>/servlet/*</url-pattern>

</servlet-mapping>

如现在有这样一个Servletmypak.HelloWorldServlet,则这样可以访问http://localhost:8080/myapp/servlet/mypak.HelloWorldServlet。注意,每个Web应用程序中为Servlet激活器所映射的访问路径可以各不相同,但必须以“/*”结尾(比如这里去掉前面的/servlet也可以)。经过这样的设置以后,即使某个Servlet程序没有在web.xml文件中进行注册,我们只需要将Servlet激活器所映射的访问路径中的通配符(*)替换为这个Servlet的完整类名,就可以通过Servlet激活器来调用这个Servlet程序。

缺省Servlet

如果某个Servlet的映射路径(<servlet-mapping>元素中的<url-pattern>元素的值)仅仅为一个正斜杠(/),那么这个Servlet就成为当前Web应用程序的缺省Servlete。凡是在web.xml文件中找不到匹配的<servlet-mapping>元索的URL,它们的访问请求都将交给缺省Servlet处理,也就是说,缺省Servlet用于处理所有其他Servlet都不处理的访问请求。在<tomcat的安装目录>/conf/web.xml文件中,注册了一个名称为org.apache.catalina.servlets.DefaultServletServlet,并将这个Servlet设置为缺省Servlet。由于<tomcat的安装目录>/conf/web.xml文件的设置信息对该服务器上的所有Web应用程序都起作用,所以,服务器上的所有Web应用程序的缺省Setvlet都是org.apacbe.catalina.servlets.DefaultServlet

<servlet>

<servlet-name>default</servlet-name>

<servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class>

</servlet>

当访问Tomcat服务器中的某个静态HTML文件和图片时,实际上是在访问这个缺省Setvlet,而这个缺省Servlet的处理方式通常是把静态资源中的内容按字节原封不动地读出来,然后再按字节流原封不动传递给客户端,并且生成一些响应消息头字段,例如,根据静态资源的扩展名所映射的MIME类型生成Content-Type头字段,根据静态资源的大小生成Content-Length头字段。

如果将conf/web.xml下的默认Servlet注释掉,则非ServletJsp资源将不能访问:

<!--servlet-mapping>

<servlet-name>default</servlet-name>

<url-pattern>/</url-pattern>

</servlet-mapping-->

注意,

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表