在 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程序中某个类的某个等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)