5.1 servlet类的作用

servlet的作用就是响应HTTP请求,虽然JSP也能做到,但servlet的写法更规范,下面是一个servlet类LoginValidateServlet.java的例子:
import javax.servlet.http.*;
public class LoginValidateServlet extends HttpServlet{
    private static final long serialVersionUID=6033791887340351355L;
    /**
     doGet函数专门处理http的get请求,假设这里就是处理登录的请求
     */
    public void doGet(HttpServletRequest request,HttpServletResponse response){
        /*
         其他操作
         */
        }
    /**
    doPost函数专门处理http的post请求
     */
    public void doPost(HttpServletRequest request,HttpServletResponse response){
        /*
        和jsp里类似,取得post请求内参数的值
         */
        String username=request.getParameter("username");
        String password=request.getParameter("password");
        System.out.println("servelt响应:"+username+""+password);
        /*
        其他操作
         */
        }
}
但这里有个问题,网页访问到某个jsp的时候,这个jsp就能处理这个请求,那么这个servlet,如何才能和某个http请求绑定起来呢?换句话说,一个HTTP请求如何与某个servlet绑定?
下面是配置的步骤:
首先我们找到Web-content文件夹,把下面这个文件下载后放入,(注意:文件必须是web.xml,必须在WEB-INF文件夹下,不能在其子文件夹内)如下图所示:

 以下是web.xml的内容
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:web="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" version="2.4">  
    <display-name>login</display-name>
    <servlet>
        <display-name>LoginValidateServlet</display-name>
        <servlet-name>LoginValidateServlet</servlet-name>
        <servlet-class>test.servlet.LoginValidateServlet</servlet-class>
    </servlet>  
    <servlet-mapping>
        <servlet-name>LoginValidateServlet</servlet-name>
        <url-pattern>/validate</url-pattern>
    </servlet-mapping>  
 </web-app>
其中第4行到第7行,定义一个servlet,名字是LoginValidateServlet,类的全称是:test.servlet.LoginValidateServlet(自行调整自己类的路径名)
第9行到第12行把一个servlet和一个url的模式绑定,这里把/validate和LoginValidateServlet绑定了起来。
如果我们把前面登录页面的action部分,修改成validate,那么http请求就会提交给LoginValidateServlet处理,如下图第10行所示。你也来试试吧。