3.2:Servlet
Javaweb应用程序中所有的请求-响应都是由Servlet来完成的。用户访问服务器的时候,Tomcat通过调用Servlet的某些方法来完成整个处理过程。
3.2.1 Servlet工作流程
浏览器提交的请求是遵循HTTP协议的文本。这段文本由服务器也就是Tomcat接收并解析,封装成HttpServletReques类型的request对象。所有的HTTP头数据都可以通过request相应方法查询到。
Tomcat同时把输出流封装为HttpServletResponse类型的response对象,通过设置resonse属性就可以控制输出的内容。
3.2.2 实现Servlet
2.2:第一个Java Web程序中已经讲了怎么新建servlet。
3.2.3 配置<servlet>
在web.xml中有如下配置信息,
<servlet>
<description>This is the description of my J2EE component</description>
<display-name>This is the display name of my J2EE component</display-name>
<servlet-name>HelloServlet</servlet-name>
<servlet-class>servlet.HelloServlet</servlet-class>
<init-param>
<param-name>message</param-name>
<param-value>我的第一个servlet</param-value>
</init-param>
<init-param>
<param-name>encoding</param-name>
<param-value>utf8</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
1) <servlet-name>:配置Servlet的名称,该名称供其他标签如<servlet-mapping>、<filter>等使用。
2) <servlet-class>:配置Servlet的类名,需要含包的名称。
3) <init-param>:配置初始化参数,包括一个参数名(<param-name>)和一个参数值(<param-value>)。一个Servlet可配置多个初始化参数。这里一共配置了两个初始化参数。Servlet中可以用方法getServletContext().getInitParam(StringparamName)来取得配置的初始化参数。
4) <load-on-startup>:配置该Servlet的加载方式。配置为1,Tomcat在启动时加载该Servlet。否则,Tomcat在有人第一次请求该Servlet时才加载该Servlet。
注:1、2是必须的,3,4是可选的。
3.2.4 配置<servlet-mapping>
配置好Servlet名称和类名后还需要配置Servlet的访问方式。访问方式用
<servlet-mapping>配置。
<servlet-mapping> <servlet-name>HelloServlet</servlet-name> <url-pattern>/servlet/HelloServlet</url-pattern> <url-pattern>/servlet/HelloServlet.jsp</url-pattern> <url-pattern>/servlet/HelloServlet.php</url-pattern> <url-pattern>/servlet/HelloServlet.aspx</url-pattern> </servlet-mapping>
1) <servlet-name>:指明该访问方式访问的Servlet的名称。
2) <url-pattern>:配置Servlet的访问方式。当在其他地方需要用到该servlet时,用这里配置的名称:servlet/HelloServlet。这里配置了多个访问方式,因为在
JavaEE 5以后,可以配置多个映射方式,在各种框架中会用到。