【JavaWeb】Servlet 清疚 2023-10-11 20:14 37阅读 0赞 **目录** 一、Servlet简介 1、 关于Maven父子工程的理解 2、Maven环境优化 3、编写一个Servlet程序 4、编写Servlet的映射 ①、为什么需要映射? 5、配置Tomcat 三、Servlet原理 四、Mapping问题 五、ServlertContext 1、ServletContext的一些功能包括 -------------------- ## 一、Servlet简介 ## Servlet是一种Java编写的服务器端程序,它运行在Web服务器上,用于处理客户端请求并生成响应。它是Java EE(Enterprise Edition)平台中的一部分,被广泛用于网站开发、企业应用程序和移动应用程序等领域。 Servlet是基于Java虚拟机(JVM)的可扩展性和安全性等特性,可以通过使用Java编写可移植和跨平台的Web应用程序。Servlet能够接收HTTP请求并生成响应,同时也可以与数据库、文件系统和其他Web资源进行交互。Servlet还可以使用JavaServer Pages(JSP)技术和JavaBeans组件来生成动态Web页面。 Servlet的工作原理是:客户端发送请求到Web服务器,Web服务器将请求发送给Servlet容器,Servlet容器创建Servlet实例并调用Servlet的service()方法处理请求,Servlet从请求中获取请求参数并生成响应,最后响应送回Web服务器,Web服务器将响应发送给客户端。 Servlet有许多优点,包括高度可扩展性、可移植性、跨平台性、安全性、可维护性和性能等。它是Java EE平台中最重要的技术之一,也是Web开发中最常用的技术之一。 **二、HelloServlet** > Servlet接口Sun公司有两个默认的实现类:HttpServlet、GenericServlet ### 1、 关于Maven父子工程的理解 ### 父项目中会有 <modules> <module>servlet-01</module> </modules> 子项目中会有 <parent> <artifactId>javaweb-02-servlet</artifactId> groupId>com.wangsiqi</groupId> <version>1.0-SNAPSHOT</version> </parent> 父项目中的jar子项目可以直接使用 son extends father ### 2、Maven环境优化 ### 1. 修改web.xml为最新的 2. 讲Maven的结构搭建完整 ### 3、编写一个Servlet程序 ### 1. 编写一个普通类 2. 实现Servlet接口,这里默认继承HttpServlet package com.wangsiqi.servlet; import javax.annotation.Generated; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.io.PrintWriter; public class HelloServlet extends HttpServlet { // 由于get或者post只是请求实现的不同的方式,可以相互调用,业务逻辑都一样 @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException{ // super.doGet(req,resp); PrintWriter writer = resp.getWriter();//响应流 writer.println("Hello,Servlet"); } @Override protected void doPost(HttpServletRequest req,HttpServletResponse resp) throws ServletException,IOException{ super.doPost(req,resp); } } ### 4、编写Servlet的映射 ### #### ①、为什么需要映射? #### > Servlet映射是将 URL 映射到 Servlet 或 JSP 的过程。在 Web 应用程序中,当用户请求一个特定的 URL 时,我们需要让服务器知道应该调用哪个 Servlet 以生成响应。因此,Servlet的映射是必要的。 **以下是一些原因:** 1. 易于管理:在我们的应用程序中,如果 Servlet 映射被正确设置,就可以更轻松地管理 URL。通过一个单一的配置文件,我们可以管理整个应用程序中的所有URL。 2. 可读性:在 url-pattern 中,我们可以定义一个有意义的 URL。这有助于用户更好地理解和记住 URL。 3. 重定向:当我们的应用程序中的 servlet 发生重定向时,我们可以使用 URL 映射更轻松地更新 URL。 4. 改善安全性:通过映射Servlet,我们可以更轻松地应用安全措施来保护我们的应用程序和资源。 > 总之,Servlet映射是 Web 应用程序中的必要组成部分,它提供了众多优点,使我们的应用程序更可管理、易于维护和更加安全。 我们写的是Java程序,但是要通过浏览器访问,而浏览器需要连接web服务器,所以我们需要在web服务中,注册我们写的Servlet,还需一个浏览器能够访问 <!--注册Servlet--> <servlet> <servlet-name>hello</servlet-name> <servlet-class>com.wangsiqi.servlet.HelloServlet</servlet-class> </servlet> <!--Servlet的请求路径--> <servlet-mapping> <servlet-name>hello</servlet-name> <url-pattern>/hello</url-pattern> </servlet-mapping> ### 5、配置Tomcat ### 注意:项目启动的路径 ## 三、Servlet原理 ## Servlet是由Web服务器调用,web服务器在收到浏览器请求之后,会: ![b352f25c4e1e3dab5438e619077da0d3.png][] ## 四、Mapping问题 ## > 可以自定义后缀实现请求映射 > > PS:\*前面不能加项目映射的路径 1、一个Servlet可以指定一个映射路径 <servlet-mapping> <servlet-name>hello</servlet-name> <url-pattern>/hello</url-pattern> </servlet-mapping> 2、一个Servlet可以指定多个映射路径 <servlet-mapping> <servlet-name>hello</servlet-name> <url-pattern>/hello</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>hello</servlet-name> <url-pattern>/hello2</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>hello</servlet-name> <url-pattern>/hello3</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>hello</servlet-name> <url-pattern>/hello4</url-pattern> </servlet-mapping> 3、一个Servlet可以指定通用映射路径 <servlet-mapping> <servlet-name>hello</servlet-name> <url-pattern>/hello/*</url-pattern> </servlet-mapping> 4、默认请求路径 <servlet-mapping> <servlet-name>hello</servlet-name> <url-pattern>/*</url-pattern> </servlet-mapping> 5、指定一些后缀或者前缀等等...... <servlet-mapping> <servlet-name>hello</servlet-name> <url-pattern>*.com</url-pattern> </servlet-mapping> 6、优先级 问题 指定了固有的映射路径优先级最高,如果找不到就会走默认的处理请求: <!--404--> <!--注册Servlet--> <servlet> <servlet-name>error</servlet-name> <servlet-class>com.wangsiqi.servlet.HelloServlet</servlet-class> </servlet> <!--Servlet的请求路径--> <servlet-mapping> <servlet-name>error</servlet-name> <url-pattern>/*</url-pattern> </servlet-mapping> ## 五、ServlertContext ## ServletContext是一个接口,表示正在运行的Web应用程序。它负责管理和协调Web应用程序的整体功能。 ## 1、ServletContext的一些功能包括 ## * 提供访问Web应用程序的配置参数 * 维护有关Web应用程序的信息,例如上下文路径,服务器信息等。 * 管理和协调Servlet、Filter和Listener的生命周期 * 促进Web应用程序不同组件之间的通信 * 创建和管理共享资源,例如数据库连接、JMS对象等。 开发人员可以在Servlet、Filter和Listener中使用ServletContext对象来访问和维护有关Web应用程序的信息。 > web容器在启动的时候,它会为每个web程序都创建一个对应的ServletContext对象,它代表了当前的web应用。 [b352f25c4e1e3dab5438e619077da0d3.png]: https://img-blog.csdnimg.cn/img_convert/b352f25c4e1e3dab5438e619077da0d3.png
还没有评论,来说两句吧...