servlet是什么

servlet是什么,第1张

在 JavaWeb 项目中,处理请求和发送响应的过程是由一种叫做 Servlet 的程序来完成的,并且 Servlet 是为了解决实现动态页面而衍生的东西。

简单来讲:Servlet其实就是一个遵循Servlet开发的java类,Serlvet是由服务器调用的,运行在服务器端。

一张图描述 Servler 在 B/S 中的作用点:

2 Tomcat 和 Servlet 的关系

Tomcat 是Web应用服务器,是一个Servlet/JSP容器。 Tomcat 作为 Servlet 容器,负责处理客户请求,把请求传送给 Servlet,并将 Servlet 的响应传送回给客户,而 Servlet 是一种运行在支持 Java 语言的服务器上的组件。

Servlet 最常见的用途是扩展 Java Web 服务器功能,提供非常安全的、可移植的、易于使用的 CGI 替代品。

从 >

①:Tomcat 将 >

②:Tomcat 同时会要响应的信息封装为 >

Java Servlet API 是Servlet容器(tomcat)和servlet之间的接口,它定义了Serlvet 的各种方法,还定义了 Servlet 容器传送给 Servlet 的对象类,其中最重要的就是 ServletRequest 和 ServletResponse 。所以说我们在编写Servlet时,需要实现 Servlet 接口,按照其规范进行 *** 作。

3 Servlet 接口主要方法

Servlet 接口主要的 3 个方法:

init()方法:只会调用一次,只是在创建servlet实例的时候才会创建。

service()方法:是进行数据处理的,只要接受了一次请求,就会被调用一次

destroy()方法:销毁 Servlet 对象的时候调用。停止服务器或者重新部署 Web 应用时销毁 Servlet 对象,同样也是调用一次

4 编写 Servlet

首先说明一点疑惑,有时候我们在一些资料上看到别人这样写:

public class TestServlet implements Servlet {

    init()

    service()

    getServletConfig()

    

}

而在这我们要继承 >

首先,直观的不同,Servlet 是一个接口,如果实现这个接口,那么就必须实现接口里面定义的所有方法。

而 >

但是我们没必要再去实现 Servlet 中定义的生命周期方法,因为在 >

最后,>

41 编写Java类,继承>

创建一个 MyServlet java 类,继承 >public class MyServlet extends  {

    @Override

    protected void service( {

        //设置字符编码

        requestsetCharacterEncoding("utf8");

        //从 request 对象中获取username,password

        String username = requestgetParameter("username");

        String password = requestgetParameter("password");

        requestsetAttribute("username",username);

        requestsetAttribute("password",password);

        requestgetRequestDispatcher( "/index2jsp")forward(request, response);;

    }

}

42 配置webxml文件

webxml 配置 Servlet 访问路径,能让别人通过链接访问到你的 Servlet:

<web-app>

  <display-name>Archetype Created Web Application</display-name>

    <servlet>

        <servlet-name>MyServlet</servlet-name>

        <servlet-class>clubsscaidemoMyServlet</servlet-class>

    </servlet>

    <servlet-mapping>

        <servlet-name>MyServlet</servlet-name>

        <url-pattern>/MyServlet</url-pattern>

    </servlet-mapping>

</web-app>

43 jsp 界面显示

index2jsp:

<html>

<body>

<h2>2222222</h2>

username: <%=requestgetParameter("username") %>

<br>

password: <%=requestgetParameter("password") %>

</body>

</html>

简单来讲,spring为java应用程序提供了全面基础支持

提供了一些依赖注入和开箱即用的模块,如下,这些模块减少了开发负担,提高了效率

使用Spring创建一个web application,依赖如下

Spring使用pring Test, JUnit, Hamcrest, and Mockito libraries都需要添加

举栗子:jsp 的web应用

Spring需要定义 dispatcher servlet, mappings 和其他 支持配置,一般是在 webxml 文件或 Initializer 文件中配置

在配置文件中添加 @EnableWebMvc 注解

需要 thymeleaf-spring5 依赖以及配置view resolver

Spring需要 spring-security-web和spring-security-config依赖

Spring还需要继承WebSecurityConfigurerAdapter类,添加@EnableWebSecurity注解

Spring和SpringBoot中应用程序引导的基本区别在于servlet。Spring使用 Webxml 或 SpringServletContainerInitiators 作为它的引导入口点。

Spring支持 Webxml 引导方式以及最新的Servlet 3+方法。

Webxml 分步骤处理:

1Servlet容器(服务器)读取 Webxml

2这个 DispatcherServlet 中定义的 Webxml 由容器实例化。

3DispatcherServlet 创造 WebApplicationContext 通过阅读 Web-INF/{servletName}-servletxml

4最后, DispatcherServlet 注册应用程序上下文中定义的bean。

以下是Spring引导程序如何使用Servlet 3+方法:

1容器搜索实现的类。 ServletContainerInitiators 并执行

2这个 SpringServletContainerInitiators 查找实现的所有类 WebApplicationInitiator

3这个 WebApplicationInitiator 使用xml或 @配置 班

4这个 WebApplicationInitiator 创建 DispatcherServlet 使用先前创建的上下文。

Spring和SpringBoot两个框架都支持像Maven和Gradle这样的通用包管理技术

Spring Boot Maven插件 在Maven中提供SpringBoot支持。它还允许打包可执行的JAR或WAR实现

在部署上下文中,SpringBoot相对于Spring的一些优点包括:

1提供嵌入式容器支持

2使用命令独立运行JAR的规定 爪哇-JAR

3选项以排除依赖项,以避免在外部容器中部署时可能发生的JAR冲突。

4选项可以在部署时指定活动配置文件。

5用于集成测试的随机端口生成

SpringBoot基本上是Spring框架的扩展,它消除了设置Spring应用程序所需的样板配置

SpringBoot构建了一个更快、更有效地开发生态系统

starter依赖简化了应用构建和配置

嵌入式服务器以避免应用程序部署的复杂性

度量指标、Helth检查和外部化配置

Spring功能的自动配置

使用Springboot创建web application的依赖如下

只需要一个starter 依赖,就把spring里面的testing libraries自动添加了

Spring提供了不同模块的常见starter如下

其他starter自定查看

地址:>

1、首先让需要自动运行的类继承javaxservlet>

2、把需要自动运行的类中写一个init方法。(servlet应用程序启动的入口就是init方法)

public void init(){

            Systemoutprintln("这样在web容器启动的时候,就会执行这句话了!");

}

3、在webxml中新建一个servlet,如下:

  <servlet>

   <servlet-name>GenerateData</servlet-name>

   <servlet-class>comyqjavaSCADAbusinessimplGenerateData</servlet-class>

   <load-on-startup>1</load-on-startup>

  </servlet>

4、启动的web服务器,tomcat,weblogic,jboss,就会自动运行类中的init方法了。

在eclipse中创建一个servlet程序方法步骤如下:

1创建一个简单的动态web项目。文件--新建--项目

2选择dynamic web project,输入项目名称。在一个包下创建一个简单的类。

这个类要继承javaxservlet>

Servlet是使用Java Servlet 应用程序设计接口(API)及相关类和方法的 Java 程序。除了 Java Servlet API,Servlet 还可以使用用以扩展和添加到 API 的 Java 类软件包。Servlet 在启用 Java 的 Web 服务器上或应用服务器上运行并扩展了该服务器的能力。Java servlet对于Web服务器就好象Java applet对于Web浏览器。Servlet装入Web服务器并在Web服务器内执行,而applet装入Web浏览器并在Web浏览器内执行。Java Servlet API 定义了一个servlet 和Java使能的服务器之间的一个标准接口,这使得Servlets具有跨服务器平台的特性。

Servlet 通过创建一个框架来扩展服务器的能力,以提供在 Web 上进行请求和响应服务。当客户机发送请求至服务器时,服务器可以将请求信息发送给 Servlet,并让 Servlet 建立起服务器返回给客户机的响应。 当启动 Web 服务器或客户机第一次请求服务时,可以自动装入 Servlet。装入后, Servlet 继续运行直到其它客户机发出请求。Servlet 的功能涉及范围很广。例如,Servlet 可完成如下功能:

(1) 创建并返回一个包含基于客户请求性质的动态内容的完整的 HTML页面。

(2) 创建可嵌入到现有 HTML 页面中的一部分 HTML 页面(HTML 片段)。

(3) 与其它服务器资源(包括数据库和基于 Java 的应用程序)进行通信。

(4) 用多个客户机处理连接,接收多个客户机的输入,并将结果广播到多个客户机上。例如,Servlet 可

以是多参与者的游戏服务器。

(5) 当允许在单连接方式下传送数据的情况下,在浏览器上打开服务器至applet的新连接,并将该连

接保持在打开状态。当允许客户机和服务器简单、高效地执行会话的情况下,applet也可以启动客户浏览器和服务器之间的连接。可以通过定制协议或标准(如 IIOP)进行通信。

(6) 对特殊的处理采用 MIME 类型过滤数据,例如图像转换和服务器端包括(SSI)。

(7) 将定制的处理提供给所有服务器的标准例行程序。例如,Servlet 可以修改如何认证用户。

以上就是关于servlet是什么全部的内容,包括:servlet是什么、二spring 和springboot区别、Java中如何让web服务器启动的时候自动运行web程序中某个类的某个等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/9607342.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-30
下一篇 2023-04-30

发表评论

登录后才能评论

评论列表(0条)

保存