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行所示。你也来试试吧。
