首页>>前端>>Vue->jsp中servlet的作用?

jsp中servlet的作用?

时间:2023-12-02 本站 点击:0

JSP中Servlet一般用来干嘛啊?

Servlet是一种服务器端的Java应用程序,具有独立于平台和协议的特性,可以生成动态的Web页面。 它担当客户请求(Web浏览器或其他HTTP客户程序)与服务器响应(HTTP服务器上的数据库或应用程序)的中间层。 Servlet是位于Web 服务器内部的服务器端的Java应用程序,与传统的从命令行启动的Java应用程序不同,Servlet由Web服务器进行加载,该Web服务器必须包含支持Servlet的Java虚拟机。servlet由来servlet是在服务器上运行的小程序。这个词是在Java applet的环境中创造的,Java applet是一种当作单独文件跟网页一起发送的小程序,它通常用于在客户端运行,结果得到为用户进行运算或者根据用户互作用定位图形等服务。  服务器上需要一些程序,常常是根据用户输入访问数据库的程序。这些通常是使用公共网关接口(CGI(Common Gateway Interface))应用程序完成的。然而,在服务器上运行Java,这种程序可使用Java编程语言实现。在通信量大的服务器上,Java servlet的优点在于它们的执行速度更快于CGI程序。各个用户请求被激活成单个程序中的一个线程,而无需创建单独的进程,这意味着服务器端处理请求的系统开销将明显降低。 最早支持Servlet技术的是JavaSoft的Java Web Server。此后,一些其它的基于Java的WebServer开始支持标准的ServletAPI。Servlet的主要功能在于交互式地浏览和修改数据,生成动态Web内容。这个过程为: 客户端发送请求至服务器端; 服务器将请求信息发送至Servlet Servlet生成响应内容并将其传给Server。响应内容动态生成,通常取决于客户端的请求 服务器将响应返回给客户端 Servlet看起来像是通常的Java程序。Servlet导入特定的属于Java ServletAPI的包。因为是对象字节码,可动态地从网络加载,可以说Servlet对Server就如同Applet对Client一样,但是,由于Servlet运行于Server中,它们并不需要一个图形用户界面。从这个角度讲,Servlet也被称为FacelessObject。 一个servlet就是Java编程语言中的一个类,它被用来扩展服务器的性能,服务器上驻留着可以通过“请求-响应”编程模型来访问的应用程序。虽然servlet可以对任何类型的请求产生响应,但通常只用来扩展Web服务器的应用程序。 目前最新版本为3.0草案

servlet 的作用是什么?

在 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 替代品。

从 Http 协议中的请求和响应可以得知,浏览器发出的请求是一个请求文本,而浏览器接收到的也应该是一个响应文本。但是在上面这个图中,并不知道是如何转变的,只知道浏览器发送过来的请求也就是 request,我们响应回去的就用 response。忽略了其中的细节,现在就来探究一下。

①:Tomcat 将 Http 请求文本接收并解析,然后封装成 HttpServletRequest 类型的 request 对象,所有的 Http 头数据读可以通过request 对象调用对应的方法查询到。

②:Tomcat 同时会要响应的信息封装为 HttpServletResponse 类型的response 对象,通过设置 response 属性就可以控制要输出到浏览器的内容,然后将 response 交给 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()...

    ...

}

而在这我们要继承 HttpServlet类 那么问题来了,继承HttpServlet 和实现Servlet 有什么区别?

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

而 HttpServlet 实现了 Servlet 接口,并把 Servlet 接口中的方法实现了。

继承 Httpservelt,实际上也就实现了 Servlet 接口。

但是我们没必要再去实现 Servlet 中定义的生命周期方法,因为在 Httpservlet 中已经有了默认实现,并且这些默认实现也挺规范和实用, doget 和 dopost 是执行用户请求的终点,get 请求会调用 doget 方法,post 请求会执行 dopost 方法,我们可以在这2个方法中定义我们自己的业务逻辑。

最后,HttpServlet 在实现 Servlet 接口的时候,已经实现了 Servlet 中所有的方法,因此继承自 HttpSrvlet 的类,不需要再去覆写相应的生命周期等方法。

4.1 编写Java类,继承HttpServlet

创建一个 MyServlet java 类,继承 HttpServlet 实现 service 方法:

public class MyServlet extends HttpServlet {

    @Override

    protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        //设置字符编码

        request.setCharacterEncoding("utf8");

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

        String username = request.getParameter("username");

        String password = request.getParameter("password");

        request.setAttribute("username",username);

        request.setAttribute("password",password);

        request.getRequestDispatcher( "/index2.jsp").forward(request, response);;

    }

}

4.2 配置web.xml文件

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

web-app

  display-nameArchetype Created Web Application/display-name

    servlet

        servlet-nameMyServlet/servlet-name

        servlet-classclub.sscai.demo.MyServlet/servlet-class

    /servlet

    servlet-mapping

        servlet-nameMyServlet/servlet-name

        url-pattern/MyServlet/url-pattern

    /servlet-mapping

/web-app

4.3 jsp 界面显示

index2.jsp:

html

body

h22222222/h2

username: %=request.getParameter("username") %

br

password: %=request.getParameter("password") %

/body

/html

servlet在jsp中的作用是什么?

Servlet是用Java编写的Server端程序,它与协议和平台无关。Servlet运行于Java-enabled Web Server中。Java Servlet可以动态地扩展Server的能力,并采用请求-响应模式提供Web服务。

最早支持Servlet技术的是JavaSoft的Java Web Server。此后,一些其它的基于Java的Web Server开始支持标准的Servlet API。Servlet的主要功能在于交互式地浏览和修改数据,生成动态Web内容。这个过程为:

客户端发送请求至服务器端;

服务器将请求信息发送至Servlet

Servlet生成响应内容并将其传给Server。响应内容动态生成,通常取决于客户端的请求

服务器将响应返回给客户端

Servlet看起来像是通常的Java程序。Servlet导入特定的属于Java Servlet API的包。因为是对象字节码,可动态地从网络加载,可以说Servlet对Server就如同Applet对Client一样,但是,由于 Servlet运行于Server中,它们并不需要一个图形用户界面。从这个角度讲,Servlet也被称为Faceless Object。

JAVA Servlet的优势:

Servlet可以和其他资源(文件、数据库、Applet、Java应用程序等)交互,以生成返回给客户端的响应内容。如果需要,还可以保存请求-响应过程中的信息。

采用Servlet,服务器可以完全授权对本地资源的访问(如数据库),并且Servlet自身将会控制外部用户的访问数量及访问性质

Servlet可以是其它服务的客户端程序,例如,它们可以用于分布式的应用系统中,可以从本地硬盘,或者通过网络从远端硬盘激活Servlet。

Servlet可被链接(chain)。一个Servlet可以调用另一个或一系列Servlet,即成为它的客户端。

采用Servlet Tag技术,可以在HTML页面中动态调用Servlet。

Servlet API与协议无关。它并不对传递它的协议有任何假设。

像所有的Java程序一样,Servlet拥有面向对象Java语言的所有优势

Servlet提供了Java应用程序的所有优势——可移植、稳健、易开发。使用Servlet 的Tag技术,Servlet能够生成嵌于静态HTML页面中的动态内容。

一个Servlet被客户端发送的第一个请求激活,然后它将继续运行于后台,等待以后的请求。每个请求将生成一个新的线程,而不是一个完整的进程。多个客户能够在同一个进程中同时得到服务。一般来说,Servlet进程只是在Web Server卸载时被卸载。

Servlet生命周期:

装载Servlet。这项操作一般是动态执行的。然而,Server通常会提供一个管理的选项,用于在Server启动时强制装载和初始化特定的Servlet。

Server创建一个Servlet的实例

Server调用Servlet的init()方法

一个客户端的请求到达Server

Server创建一个请求对象

Server创建一个响应对象

Server激活Servlet的service()方法,传递请求和响应对象作为参数

service()方法获得关于请求对象的信息,处理请求,访问其他资源,获得需要的信息

service()方法使用响应对象的方法,将响应传回Server,最终到达客户端。service()方法可能激活其它方法以处理请求,如doGet()或doPost()或程序员自己开发的新的方法

对于更多的客户端请求,Server创建新的请求和响应对象,仍然激活此Servlet的service()方法,将这两个对象作为参数传递给它。如此重复以上的循环,但无需再次调用init()方法。一般Servlet只初始化一次 ,当Server不再需要Servlet时(一般当Server关闭时),Server调用Servlet的Destroy()方法。

servlet在jsp中的作用是什么?求大神帮助

servlet就是对用户的请求响应,处理,并返回结果的一种程序 而有了它为什么还要有jsp呢,由于servlet只能返回文本,我们不能把所有的html标记都在servlet里包装好返回,所以有了jsp这种东西,其实就是html代码中嵌入了一些jsp代码,你可以认为是 servlet的运行结果,事实上,在服务器上,jsp也会编译成servlet。jsp你可以看作是html中内嵌了servlet的运行结果,界面这种靠html来表达的东西,serlvet也不用管了,它可以只管业务逻辑。

java 中web开发servlet主要功能是什么?

JavaWeb中servlet主要功能是承载网络连接,业务逻辑处理,比如一些编码格式的转换、登录拦截等,如下是详细解释:

1.servlet是一个类。最初没有jsp,只有servlet,也就是说最初的开发过程是.java-.class

后来因为html代码在servlet里写入太繁琐,加入了jsp类型。servlet单纯的处理后台程序。

在WEB-INF下的web.xml文件下:

servlet

   servlet-namehello/servlet-name

   servlet-classorg.lxh.servlet.HelloServlet/servlet-class///HelloServlet是类名

/servlet

servlet-mapping

   servlet-namehello/servlet-name

   url-pattern/servletdemo/url-pattern///当敲入本机地址后,/demo后/servletdemo会找到编译后的HelloServlet文件。

/servlet-mapping

具体例子如下:

1.先编写一个表单,建在D:/java/tomcat jsp/webdemo/servletdemo(新建一个文件夹)-

input.html

form action="input" method="get"//"post"也行

 input type="text" name="ref"

 input type="submit" value="提交"

/from

2.在编写InputServlet类

package org.lxh.servlet ;

import java.io.* ;

import javax.servlet.* ;

import javax.servlet.http.* ;

public class InputServlet extends HttpServlet{

 public void doGet(HttpServletRequest req,HttpServletResponse resp)

              throws ServletException,java.io.IOException{

  String param = req.getParameter("ref") ;

  System.out.println("*************"+param) ;

 }

 public void doPost(HttpServletRequest req,HttpServletResponse resp)

              throws ServletException,java.io.IOException{

  this.doGet(req,resp) ;

 }

};

3.然后编译。

4.再在web.xml中加入这些话

servlet

   servlet-nameinput/servlet-name

   servlet-classorg.lxh.servlet.InputServlet/servlet-class

/servlet

servlet-mapping

   servlet-nameinput/servlet-name

   url-pattern/servletdemo/input/url-pattern

/servlet-mapping

5.这时运行tomcat 能找到servletdemo文件夹中的input.html,点击提交按钮。

jsp技术中servlet,可以承载很多的功能,但后期如果项目业务逻辑很复杂,会导致servlet的急剧增多,不易维护,所以又发明了javaweb,将每一层的功能和逻辑都独立出来,以便于更好的维护管理。


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:/Vue/7820.html