(一)什么是Servlet?
在JavaEE平台上,Servlet用于响应终端用户的请求,JavaEE API规范定义为:Servlet是一个运行在Web服务器上的Java小程序。接收和响应来自web客户端的请求,使用HTTP通信。
1:Servlet
Servlet实现了java.servlet.Servletjie接口,但不直接实现。只是接口,包含了初始化并销毁Servlet和处理响应的方法。 开发一个普通的Servlet只需要扩展java.servlet.GenericServlet类即可,本例中的Servlet将继承于java.servlet.http.HttpServlet类,他是响应HTTP请求的Servlet继承于java.servlet.GenericServlet,并实现了只接受HTTP请求的Service方法。提供了响应每种HTTP方法类型的方法的空实现
HTTP方法 | HttpServlet中的方法 | 描述 |
---|---|---|
GET | doGet() | 从指定的URL信获取资源 |
HEAD | doHead() | 与GET一致,区别在于该请求只返回页面头部数据 |
POST | doPost() | 通常用于处理web表单提交 |
PUT | doPut() | 存储URL中提供的实体 |
DELETE | doDelete() | 删除由URL标记的资源 |
OPTIONS | doOPtions() | 返回支持的HTTP方法 |
TRACE | doTrace() | 用于诊断目的 |
2 创建自己的Servlet
- 创建Web工程Hellouser,Target runtime为“Apache Tomcat v9”(以实际安装版本为准)
- 在src目录下新建包zjd(名字随便),其下分别新建名为User和HelloServlet的java类。
- User类是一个javaBean,仅有一个私有属性userName,作用是封装用户在JSP页面的表单中输入的数据
- HelloServlet类是自己创建的一个Servlet,继承于java.servlet.http.HttpServlet,主要功能是接收客户端发送来的HTTP请求(request),并返回HTTP响应(response),这里重写了doPost()方法,
- 上述doPost()方法中,通过HttpServletRequest的getParameter()方法获取客户端请求中的参数值,然后用User类封装数据,以便在客户端可以javaBean获取数据,最后通过HttpServletRequest的getRequestDispatcher()方法获得一个javax.servlet.RequestDispatcher对象,该对象可用于处理指定路径下的内部转发和包含。通过该对象,可以将当前请求转发给调用forward()方法的JSP。
3 部署Servlet
将此Servlert在WEB-INF目录下的web.xml文件中添加相关的声明和映射关系即可。
告诉Web容器创建一个HelloServlet的实例,即在<web-app>标签之间添加如下代码:
接下来告诉该Servlet应该对那些请求URL做出响应。在<servlet>标签后面添加代码如下:
此时,如果将HelloUser工程部署到Tomcat服务器,后在Eclipse中启动Tomcat服务器,会返回一个HTTP状态代码405作为响应。因为访问时将发送一个HTTP GET请求,更具上面配置,该请求由HelloServlet做出响应,但是此类未重写doGet()方法,所以返回如上页面,提示该URL不支持GET方法