Servlet基本概念与使用
HttpServlet继承于GenericServlet实现了Servlet接口
HttpServlet->GenericServlet->Servlet
Servlet接口的具体方法:
public interface Servlet {
void init(ServletConfig var1) throws ServletException;
ServletConfig getServletConfig();
void service(ServletRequest var1, ServletResponse var2) throws ServletException, IOException;
String getServletInfo();
void destroy();
}
浏览器--发送请求--web容器--首次访问Servlet
|
请求,请求头,请求体--响应,响应头,响应体
(request) (response)
|--------------------|
|
Servlet-->service(ServletRequest var1, ServletResponse var2)
request会从service(请求)拿到请求并且把请求之后的响应交给response
最后原路返回web容器会从response读取响应信息然后web容器响应给客户端
我们主要就是编写自己的实现类,重写这写方法去接受并处理这些请求,给出响应的信息
web.xml文件中mapping的问题
1、一个servlet可以指定一个映射路径
2、一个servlet可以指定多个映射路径
<servlet>
<servlet-name>hello</servlet-name>
<servlet-class>HelloWordServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>hello</servlet-name>
<url-pattern>/hello</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>hello</servlet-name>
<url-pattern>/hello1</url-pattern>
</servlet-mapping>
3、一个servlet可以指定通用映射路径
<servlet>
<servlet-name>hello</servlet-name>
<servlet-class>HelloWordServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>hello</servlet-name>
<url-pattern>/hello/*</url-pattern>
</servlet-mapping>
4、默认请求路径
<servlet>
<servlet-name>hello</servlet-name>
<servlet-class>HelloWordServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>hello</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
5、自定义后缀
<servlet>
<servlet-name>hello</servlet-name>
<servlet-class>HelloWordServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>hello</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
*前面不能加映射路径
6、优先级问题
指定了固有的映射路径优先级最高,如果找不到就会找默认的请求处理