1.实现Servlet接口的子类
我们所写的子类,最重要的就是重写service这个方法。
void service(ServletRequest var1, ServletResponse var2) throws ServletException, IOException;
第一个参数ServletRequest代表的是浏览器向web容器(web服务器)发来的请求,然后我们所写的子类对该请求进行处理,再通过第二个参数ServletResponse再响应浏览器(例如输出文字,图片等)。
2. Servlet mapping
在上一个博客,我们配置了web.xml文件
<servlet>
<servlet-name>hello</servlet-name>
<servlet-class>com.study.servlet.HelloServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>hello</servlet-name>
<url-pattern>/hello</url-pattern>
</servlet-mapping>
这段XML代码是一个Servlet的配置,首先定义了一个名为"hello"的Servlet,它的类是"com.study.servlet.HelloServlet"。
接着定义了一个Servlet映射,将Servlet "hello" 映射到URL模式"/hello"。这样,当用户在浏览器中输入"http://localhost:8080/hello"时,Web服务器就会将请求传递给名为"hello"的Servlet进行处理。
Servlet映射有多种模式:
1)一个Servlet可以指定多个映射模式
<servlet>
<servlet-name>hello</servlet-name>
<servlet-class>com.study.servlet.HelloServlet</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>/hello2</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>hello</servlet-name>
<url-pattern>/hello3</url-pattern>
</servlet-mapping>
2)一个Servlet可以指定通用映射路径
http://localhost:8080/net/ + 任何值 都会映射到hello这个Servlet
<servlet>
<servlet-name>hello</servlet-name>
<servlet-class>com.study.servlet.HelloServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>hello</servlet-name>
<url-pattern>/net/*</url-pattern>
</servlet-mapping>
3)一个Servlet可以指定默认请求路径,会覆盖掉主页
<servlet>
<servlet-name>hello</servlet-name>
<servlet-class>com.study.servlet.HelloServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>hello</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
4)映射可以指定前缀或后缀
*前不能加映射路径:/*.do 会报错
<servlet>
<servlet-name>hello</servlet-name>
<servlet-class>com.study.servlet.HelloServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>hello</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
因为一个Servlet可以指定多个映射模式,所以这些映射是有优先级的:
固有路径的映射优先级最高,找不到固有路径映射才会去找通用映射路径。
Servlet接口的子类需重写service方法来处理请求和响应。在web.xml中配置Servlet,如将helloServlet映射到/hello,使得通过http://localhost:8080/hello访问。Servlet映射可指定多个模式,包括多个URL、通用路径、默认请求及前缀或后缀匹配。映射优先级为固有路径最高,然后是通用路径。
1144

被折叠的 条评论
为什么被折叠?



