说说你对servlet 的理解或者 servlet 是什么?「建议收藏」

说说你对servlet 的理解或者 servlet 是什么?「建议收藏」说说你对servlet的理解或者servlet是什么?Servlet(ServletApplet),全称JavaServlet,是用Java编写的服务器端程序。而这些Servlet都要实现Servlet这个接口。其主要功能在于交互式的浏览和修改数据,生成动态Web内容。Servlet运行于支持Java的应用服务器中。 HttpServlet重写doGet和doPost

大家好,又见面了,我是你们的朋友全栈君。

说说你对servlet的理解或者 servlet 是什么?

Servlet(Servlet Applet),全称Java Servlet,是用Java编写的服务器端程序。而这些Servlet都要实现Servlet这个接口。其主要功能在于交互式的浏览和修改数据,生成动态Web内容。Servlet运行于支持Java的应用服务器中。

 

HttpServlet 重写doGet 和 doPost 方法或者你也可以重写service方法完成对get和post请求响应。

 

Servlet的通俗理解?

Servlet是一个运行了面向请求/ 响应服务器中的网络模块。

请求是客户的一个调用,可能是远程的。

请求包含了客户要发送给服务器的数据。

响应是服务器返回给客户的回答该请求的数据。Servlet是一个JAVA对象,他以请求为输入,分析其数据,执行一些逻辑运算,并给客户发回一个响应。
   另一方面,Servlet作为驻留在服务器端HTTP明白的中间层,它们知道怎样在HTTP中通过RMI或IIOP在EJB和客户之间进行通信。

 

RMI了解地址:http://haolloyin.blog.51cto.com/1177454/332426/

IIOP了解地址:https://baike.baidu.com/item/IIOP/8866752?fr=aladdin

 

RMI-IIOP:RMI以Java为核心,可与采用本机方法与现有系统相连接。IIOPInternet Inter-ORB Protocol(互联网内部对象请求代理协议),它是一个用于CORBA 2.0及兼容平台上的协议。

 

Servlet 入门理解

当学到Servlet这个新技术的时候,不是着急去学Servlet这个Java类有什么属性、方法,而是先去了解这个东西什么时候会用到,既然都是BS的,那ASP.NET中有没有类似的?然后就有了人写了这篇博客。

1.Servlet产生背景和主要作用

    我们都知道网页有静态和动态之分。静态的只能看看,而动态可以实现客户端和服务器的交互,比如登录的功能,我们输入用户名和密码后提交到服务器,服务器会处理这些信息,如果正确的话则进入主页。若不正确,则给出提示信息。这是我们很常实现的例子,可是我们有没有想过:客户端到服务器之间这个交互的过程是怎么实现的?之前我没有想过。直到遇到了Servlet.Servlet是Java中用来处理BS架构下,客户端请求的响应处理。

2.java中Servlet和ASP.net中的HttpHandler的对比

ASP.Net

    当一个HTTP请求经同HttpModule容器传递到HttpHandler容器中时,ASP.NET Framework会调用HttpHandler的ProcessRequest成员方法来对这个HTTP请求进行真正的处理。以一个ASPX页面为例,正是在这里一个ASPX页面才被系统处理解析,并将处理完成的结果继续经由HttpModule传递下去,直至到达客户端。我们看一张图帮助理解:

 说说你对servlet 的理解或者 servlet 是什么?「建议收藏」

Java:

   在这个过程中,HttpServletRequest和HttpServletReponse相当于上面的HttpModule起到传过去,传回来的作用。Servlet(HttpServlet)相当于HttpHandler处理客户端请求。

 

3.Servlet是什么

现在我们说说Servlet是什么。Servlet就是一个Java类。类就会有一系列的属性和方法。了解这些可以看详细的API文档。这里不再赘述。

Java包组成:javax.servlet和javax.servlet.http. 在javax.servlet包中定义了所有的Servlet类都必须实现或扩展的的通用接口和类.在javax.servlet.http包中定义了采用HTTP通信协议的HttpServlet类。

 

4.Demo(Tomcat)

login.html

<html> 

    <head> 

        <title>Login</title> 

    </head> 

    <body> 

        <form action=”exam/login”> 

        用户名:<input type=”text” name=”username”> <br> 

        密 码:<input type=”password” name=”password”> <br> 

        <input type=”submit” value=”登录”> 

        </form> 

    </body> 

</html> 

 

web.xml

<?xml version=”1.0″ encoding=”ISO-8859-1″?> 

 

<web-app xmlns=”http://java.sun.com/xml/ns/javaee” 

   xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance” 

   xsi:schemaLocation=”http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd” 

   version=”2.5″>  

 

     <servlet> 

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

        <servlet-class>loginservlet</servlet-class> 

     </servlet> 

     <servlet-mapping> 

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

        <url-pattern>/login</url-pattern> 

     </servlet-mapping> 

      

     <servlet>      

 

</web-app> 

 

loginServlet.java

import javax.servlet.http.*; 

import javax.servlet.*; 

import java.io.*; 

 

public class loginservlet extends HttpServlet{ 

    public void doGet(HttpServletRequest req, 

                     HttpServletResponse resp) 

              throws ServletException, 

                     IOException{ 

          String username = req.getParameter(“username”); 

          String password = req.getParameter(“password”); 

           

          System.out.println(“username = ” + username ); 

          System.out.println(“password = ” + password ); 

           

          resp.setContentType(“text/html”); 

          resp.getWriter().println(“Login Success!”); 

  }              

 

对应时序图:

 说说你对servlet 的理解或者 servlet 是什么?「建议收藏」

总结:

以前没有想过客户端和服务器如何实现交互。Servlet开始让我思考。学习不能总是看以前学得不扎实。学得时候做好总结,往前看。但学新的东西要联系旧的东西,这样既能巩固旧知识,也能使学习变得轻松。这也是为什么我们学了后面的,再看前面学得容易了的原因。

 

 

注明Servlet入门理解摘自博客地址:http://blog.csdn.net/wangyajin333/article/details/39937163

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/148638.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Java开发经典实战!java编程培训学校排名

    Java开发经典实战!java编程培训学校排名GC概述垃圾收集(GarbageCollection)通常被称为“GC”,由虚拟机“自动化”完成垃圾回收工作。思考一个问题,既然GC会自动回收,开发人员为什么要学习GC和内存分配呢?为了能够配置上面的参数配置?参数配置又是为了什么?“当需要排查各种内存溢出,内存泄露问题时,当垃圾成为系统达到更高并发量的瓶颈时,我们就需要对GC的自动回收实施必要的监控和调节。”JVM中程序计数器、虚拟机栈、本地方法栈3个区域随线程而生随线程而灭。栈帧随着方法的进入和退出做入栈和出栈操作,实现了自动的内存清理。它们的

    2022年7月7日
    27
  • 鸿蒙3部曲先看哪部,星辰变是“鸿蒙”系列的作品,那“鸿蒙”系列到底有多少部曲?…

    鸿蒙3部曲先看哪部,星辰变是“鸿蒙”系列的作品,那“鸿蒙”系列到底有多少部曲?…说到《星辰变》,相信很多人都知道他的作者就是番茄吧?而番茄笔下最出名系列的小说,无疑就是“鸿蒙”系列了,其中《星辰变》就是“鸿蒙”系列中的一部作品。那“鸿蒙”系列小说到底有多少部曲呢?对此也有很多人有了这个疑问。原先的“鸿蒙三部曲”相信很多熟悉番茄小说的朋友都知道,原本番茄的《盘龙》《星辰变》《吞噬星空》被很多粉丝称之为“鸿蒙三部曲”。因为在《星辰变》的结局中我们也知道,鸿蒙创立了三个不同的世界,…

    2022年6月15日
    143
  • android面试题2022

    android面试题2022面试题除了你不会的其余都会,除了你知道的其余都知道,除了你答不上来的答上来了。不积跬步无以至千里,多思考多学习,祝你早日成为大佬。一、mt1.内存优化常用手段2.leacknanry的原理3.腾讯bugly原理4.自己实现一个日志收集的思路,如何收集crash信息5.handler原理及源码6.常见的内存泄漏的方式7.bitmap是在什么内存里1android2.2(APIlevel8)和更早的版本,垃圾回收时,会阻塞UI线程,造成卡顿。而2.3(APIle

    2022年5月21日
    40
  • tree树形结构_什么是树形结构

    tree树形结构_什么是树形结构一、树的基本概念(1)树(Tree)的概念:树是一种递归定义的数据结构,是一种重要的非线性数据结构。树可以是一棵空树,它没有任何的结点;也可以是一棵非空树,至少含有一个结点。(2)根(Root)

    2022年8月3日
    2
  • 破解中国电信华为无线猫路由(HG522-C)自己主动拨号+不限电脑数+iTV

    破解中国电信华为无线猫路由(HG522-C)自己主动拨号+不限电脑数+iTV

    2021年12月8日
    58
  • SynchronousQueue详解「建议收藏」

    SynchronousQueue详解「建议收藏」SynchronousQueue是BlockingQueue的一种,所以SynchronousQueue是线程安全的。SynchronousQueue和其他的BlockingQueue不同的是SynchronousQueue的capacity是0。即SynchronousQueue不存储任何元素。也就是说SynchronousQueue的每一次insert操作,必须等待其他线性的remove操作。而每一个remove操作也必须等待其他线程的insert操作。这种特性可以让我们想起了Exchanger

    2022年6月22日
    32

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号