Servlet的体系结构
Servlet -- 接口
|
GenericServlet -- 抽象类,继承自Servlet
|
HttpServlet -- 抽象类,继承自GenericServlet
* GenericServlet:将Servlet接口中其他的方法做了默认空实现,只将service()方法作为抽象,因此如果我们将来定义Servlet类时,可以继承GenericServlet,只要实现service()方法即可
* HttpServlet:对http协议的一种封装,简化操作,比如我们实际在实现servlet都要去判断请求方式是get还是post(实际http请求有其中方式,get、post比较普遍),这些写的很麻烦。
使用步骤:
1. 定义类继承HttpServlet
2. 对doGet和doPost方法进行复写,通过浏览器访问时使用的doGet方法,测试doPost我们可以通过使用表单来设置。
注意:
1、推荐在实现servlet类时,使用HttpServlet方式。
演示一、
ServletDemo02.java
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@WebServlet("/demo2")
public class ServletDemo02 extends HttpServlet {
@Override
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...");
}
}
在浏览器中输入:http://localhost/servlet/demo2
输出如下:
演示二、在web目录下建立一个html,然后制作一个表格
注意:form里面action="资源路径名" 的资源路径名(举例:action="demo2")和 servlet3.0的注解 @WebServlet("/资源路径名") 名字要一致,但是不能有 “/”
login.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>title</title>
</head>
<body>
<!--<form action="demo2" method="get">-->
<form action="demo2" method="post">
<input name="username">
<input type="submit" value="提交">
</form>
</body>
</html>
在浏览器中输入如下,并输入内容后点击提交
会输出如下: