饭前点心:
通过 MVC 模式我们知道 Servlet 在其中扮演控制器(分发器)的作用,那什么是 Servlet,
它又是怎么运用呢?不同版本之间又有那些区别呢?希望通过下面的讲述可以让你对 Servlet
有一个更加清晰的认识。
Servlet 类需要满足的要求:
1、必须继承继承HttpServlet
2、重写doGet()、doPost()方法
3、编写web.xml 中的servlet映射关系
Servlet 类实现的具体过程:
纯手工方法创建第一个Servlet:
index.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<!-- 超链接默认也是 get 提交方式 -->
<a href = "WelcomeServlet">WelcomeServlet</a>
<form action="WelcomeServlet" method = "post">
<input type = "submit" value = "登录">
</form>
</body>
</html>
在 src 目录下创建 WelcomeServlet 类:
package org.servlet;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class WelcomeServlet extends HttpServlet{
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.println("doget....");
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.println("dopost....");
}
}
在 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/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
<display-name>ServletProject</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
<servlet>
<servlet-name>WelcomeServlet</servlet-name>
<servlet-class>org.servlet.WelcomeServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>WelcomeServlet</servlet-name>
<!-- 根目录路径 -->
<url-pattern>/WelcomeServlet</url-pattern>
</servlet-mapping>
</web-app>
借助于Eclipse快速生成Servlet(Servlet2.5)
直接新建Servlet即可!(继承、重写、web.xml 可以借助Eclipse自动生成)
步骤图效果:
填入相应的类名即可:
生成图如下:
WelcomeServlet.java
web.xml
Servlet3.0
会自动生成如下效果:
servlet2.5 和 servlet 3.0 的区别:
Servlet3.0不需要在web.xml中配置,但 需要在 Servlet类的定义处之上编写 注解@WebServlet("url-pattern的值")
匹配流程: 请求地址 与@WebServlet中的值 进行匹配,如果匹配成功 ,则说明 请求的就是该注解所对应的类