问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501
你好,欢迎来到懂视!登录注册
当前位置: 首页 - 正文

servlet是什么

发布网友 发布时间:2022-04-16 21:25

我来回答

3个回答

懂视网 时间:2022-04-17 01:46

Servlet是Java Servlet的简称,称为小服务程序或服务连接器,用Java编写的服务器端程序,具有独立于平台和协议的特性,主要功能在于交互式地浏览和生成数据,生成动态Web内容。

  

  狭义的Servlet是指Java语言实现的一个接口,广义的Servlet是指任何实现了这个Servlet接口的类,一般情况下,人们将Servlet理解为后者。Servlet运行于支持Java的应用服务器中。从原理上讲,Servlet可以响应任何类型的请求,但绝大多数情况下Servlet只用来扩展基于HTTP协议的Web服务器。

  

  

热心网友 时间:2022-04-16 22:54

在 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-name>Archetype Created Web Application</display-name>

        <servlet>
            <servlet-name>MyServlet</servlet-name>
            <servlet-class>club.sscai.demo.MyServlet</servlet-class>
        </servlet>

        <servlet-mapping>
            <servlet-name>MyServlet</servlet-name>
            <url-pattern>/MyServlet</url-pattern>
        </servlet-mapping>

    </web-app>

    4.3 jsp 界面显示

    index2.jsp:

    <html>
    <body>
    <h2>2222222</h2>
    username: <%=request.getParameter("username") %>
    <br>
    password: <%=request.getParameter("password") %>
    </body>
    </html>

热心网友 时间:2022-04-17 00:12

Servlet技术是Sun公司提供的一种实现**页的解决方案,它是基于Java编程语言的WEB服务器端编程技术。
Servlet技术也是Jsp技术的基础。
一个Servlet程序就是一个实现了特殊接口的Java类,它由支持Servlet(具有Servlet引擎)的WEB服务器调用和启动运行。一个Servlet程序负责处理它所对应的一个或一组URL地址的访问请求,并接收客户端的访问请求信息和产生响应内容。
Applet是用于浏览器的Java小程序,Servlet是用于WEB服务器端的Java小程序。
Servlet程序可以完成普通Java程序所能完成的大多数任务:
1.获取客户端通过HTML的FORM表单提交的数据和URL后面的参数信息
2.创建对客户端的响应信息内容
3.访问服务器端的文件系统
4.连接数据库并开发基于数据库的应用
5.调用其他的JAVA类
Servlet的注册与运行
Servlet程序必须通过Servlet引擎来启动运行,并且储存目录有特殊要求,通常需要存储在<WEB 应用程序目录/WEB-INF/classes/目录中。
Servlet程序必须在WEB应用程序的web.xml文件中进行注册和映射其访问路径,才可以被Servlet引擎加载和被外界访问。
一个<servlet元素用于注册一个Servlet,它包含有两个主要的子元素:<servlet-name和<servlet-mapping,分别用于设置Servlet的注册名称和Servlet的完整类名。
一个<servlet-mapping元素用于映射一个已经注册的Servlet的一个对外访问路径,它包含有两个字元素:<servlet-name和<url-name,分别用于指定Servlet的注册名称和对外访问路径。
<servlet
<servlet-nameAnyName</servlet-name
<servlet-classwyf.TestServlet</servlet-class//用于注册的完整类名
</servlet
<servlet-mapping
<servlet-nameAnyName</servlet-name
<url-pattern/test/WYF/AA</url-pattern//路径名,用于URL地址输入,严格区分大小写的。
同一个Servlet可以被映射到多个URL上,即多个<servlet-mapping元素的<servlet-name 子元素的设置值可以是同一个Servlet的注册名
声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com
没有收到高考短信是什么原因 高考报名审核没收到短信怎么回事 山东高考报名没给发短信是为什么 为什么高考报名没有短信通知 高考报名成功为什么没有收到短信 高考报名成功未收到短信该怎么办 高考报名后没有收到短信怎么办 注册滴滴显示车型不在城市车型库中怎么办 添加车辆一直说不在城市库里,能办不 票证时代:与人民币并行的硬通货 a87680和A12仿生处理器哪个好? 手机参数对比 iPad Air3里的A12跟iPhone里的一样吗? 苹果a12和a11性能差距 a11和a12差别大吗,有什么区别? 苹果A10和A12芯片有什么区别? PTXBootSvc.exe是什么 自然人税收管理系统登入请求参数非法是什么原因 &#8237;电脑老是出现yqzszxzx sydownload 是什么软件文件夹 网上个税申报时录入单位信息时输入纳税人识别号显示企业信息不存在或无需下发状态怎么回事?在纳税服务 河北国税网上申报系统,发送报表时说“河北CA相关控件未注册”是什么意思 如何关闭亿企助手,有个程序是yqzs.exe,每次开机都启动,烦死人 误删C盘一个文件,一直蹦出来这个对话框,连续不断的跳出来Unable to write to C:_问一问 servyoubgub是什么 自然人税收管理系统登录时显示“请求参数非法”如何处理?_问一问 有什么硬方法删除Servyou 如何用一台电脑给多家单位申报个税? C:\Servyou\nbgljktemp\updatetmp sydownload是什么文件夹 什么是servlet????? servlet是什么意思? 什么是servlet 什么是servlet?有什么作用 我很想知道,servlet到底是做什么的 怎么用? 什么是Servlet? servlet是什么意思? Servlet 是什么 servlet是什么? 究竟什么是servlet?它有什么作用? servlet有什么用? 学JAVA时,有个叫SERVLET是什么东西? 红圈通的定位怎么关闭,如果关闭了老板还能看到位置吗 红圈通在设置里关掉定位 老板还能查看到你的位置吗 如何更改红圈营销地理位置 怎样改红圈通的定位? 红圈通app怎么更改定位和轨迹? 红圈通是时时跟踪定位吗? 红圈通定位,怎么修改 红圈通怎么修改定位,照片,后台不会发现
  • 焦点

最新推荐

猜你喜欢

热门推荐