赞
踩
2.3 在controller包下,创建一个Java类,继承HttpServlet类
2.4 在WEB-INF目录下的web.xml中注册Servlet接口实现类的信息
上一篇文章中,讲了将Tomcat集成到IDEA中,那么这篇文章,来谈谈Servlet吧。
所谓Servlet就是完成浏览器和服务器之间的交互,浏览器发出请求,服务器做出响应,二者既然能进行信息的交流,那么他们就一定有一种规范,那这个规范就是HTTP协议。有了这种协议,不管是什么浏览器,所发出来的信息,服务器都认识。
Java Servlet 是运行在 Web 服务器或应用服务器上的程序,它是作为来自 Web 浏览器或其他 HTTP 客户端的请求和 HTTP 服务器上的数据库或应用程序之间的中间层。
使用 Servlet,您可以收集来自网页表单的用户输入,呈现来自数据库或者其他源的记录,还可以动态创建网页。
Java Servlet 通常情况下与使用 CGI(Common Gateway Interface,公共网关接口)实现的程序可以达到异曲同工的效果。但是相比于 CGI,Servlet 有以下几点优势:
- 性能明显更好。
- Servlet 在 Web 服务器的地址空间内执行。这样它就没有必要再创建一个单独的进程来处理每个客户端请求。
- Servlet 是独立于平台的,因为它们是用 Java 编写的。
- 服务器上的 Java 安全管理器执行了一系列限制,以保护服务器计算机上的资源。因此,Servlet 是可信的。
- Java 类库的全部功能对 Servlet 来说都是可用的。它可以通过 sockets 和 RMI 机制与 applets、数据库或其他软件进行交互。
将这个java文件夹的类型修改为 Resources Root,同时建一下对应的包。(com.songzihao.controller)
Servlet规范认为,只有作为Servlet接口的实现类才可以被称为动态资源文件,只有动态资源文件才有资格被Tomcat服务器进行调用。
Servlet接口实现类的开发步骤:
- 创建一个Java类,继承HttpServlet。
- 重写其中的 doGet、doPost方法。
- 在 web.xml 中注册 Servlet 接口实现类的相关信息。
这里重写的是service方法。在后面那个例子中重写了 doGet、doPost方法。
- package com.songzihao.controller;
-
-
- import javax.servlet.ServletException;
- import javax.servlet.ServletRequest;
- import javax.servlet.ServletResponse;
- import javax.servlet.http.HttpServlet;
- import java.io.IOException;
-
- /**
- * 这里是直接继承了HttpServlet这个类,你也可以写成下面这样
- * MyServlet implements Servlet
- */
- public class MyServlet extends HttpServlet {
-
- @Override
- public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException {
- res.getWriter().write("This is my first servlet!!!");
- System.out.println("MyServlet类成功处理了用户请求。。。。。");
- }
-
- }
- <?xml version="1.0" encoding="UTF-8"?>
- <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
- version="4.0">
-
- <!-- 注册Servlet接口的实现类 -->
- <!-- 声明一个变量存储Servlet接口实现类的全限定名称 -->
- <servlet>
- <servlet-name>myServlet</servlet-name>
- <servlet-class>com.songzihao.controller.MyServlet</servlet-class>
- </servlet>
-
-
- <!-- 为Servlet接口实现类指定一个简短的对外别名 -->
- <servlet-mapping>
- <servlet-name>myServlet</servlet-name>
- <url-pattern>/myServlet</url-pattern>
- </servlet-mapping>
-
- <!--
- tomcat启动时,自动读取网站中的web.xml
- 分别使用两个map对象存储Servlet实现类中的注册信息
- Map servletMap=new HashMap();
- servletMap.put("myServlet","com.songzihao.controller.MyServlet");
- Map servletMapping=new HashMap();
- servletMapping.put("/myServlet","myServlet");
- 此时浏览器发送如下请求:http://localhost:8080/szh01_first/myServlet
- tomcat通过 servletMapping 了解 /myServlet 对应的信息
- tomcat通过 servletMap 转发 myServlet
- -->
-
- </web-app>
在浏览器中输入正确的url:http 协议、localhost:8080 本地ip和端口号、szh01_first web项目名、/myServlet是我们注册的Servlet接口实现类的信息。
回到IDEA中,可以看到Tomcat服务器运行出了相应的结果。
上面两步完成之后,可以看到controller包、web.xml文件中,都生成了IDEA的模板代码。
- package com.songzihao.controller;
-
- import javax.servlet.*;
- import javax.servlet.http.*;
- import java.io.IOException;
-
- public class YourServlet extends HttpServlet {
- @Override
- protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
- System.out.println("YourServlet针对GET请求方式进行处理");
- }
-
- @Override
- protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
- System.out.println("YourServlet针对POST请求方式进行处理");
- }
- }
- <?xml version="1.0" encoding="UTF-8"?>
- <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
- version="4.0">
-
- <servlet>
- <servlet-name>yourServlet</servlet-name>
- <servlet-class>com.songzihao.controller.YourServlet</servlet-class>
- </servlet>
- <servlet-mapping>
- <servlet-name>yourServlet</servlet-name>
- <url-pattern>/your</url-pattern>
- </servlet-mapping>
-
- </web-app>
运行Tomcat服务器,在浏览器中输入:localhost:8080/szh01_first/your
可以看到如下的结果:
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Cpp五条/article/detail/599114
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。