要请求servlet,必须要在web.xml文件里面配置servlet的映射路径,具体如下:
<servlet>
<servlet-name>servletDemo</servlet-name>
<servlet-class>com.servlet.servletDemo</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>servletDemo</servlet-name>
<url-pattern>/servletDemo/aaa</url-pattern>
</servlet-mapping>
配置文件详解如下:
< servlet-mapping >里面的 < url-pattern >是请求路径,服务器根据这个路径在< servlet-mapping >里面找到这个路径对应的< servlet-name >,再在< servlet > 里面根据其servlet-name找到这个请求路径对应的类。
详细用例如下:
jsp页面:
<form action="servletDemo/aaa" method="post">
<input type="text" name="name">
<input type="submit" value="提交">
</form>
servlet:
package com.servlet;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet("/servletDemo")
public class servletDemo extends HttpServlet {
private static final long serialVersionUID = 1L;
public servletDemo() {
// TODO Auto-generated constructor stub
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
String name = request.getParameter("name");
System.out.println(name);
}
}
这里可以看出,from发起请求,路径“servletDemo/aaa”,服务器通过请求获取到该路径对应的servlet所在类,把改请求发送该路径对于的类处理了。