创建一个类,继承httpservlet的目的是不是为了分开jsp?

2025-02-23 00:40:04
推荐回答(4个)
回答1:

还没选最佳答案?那我可以插一手喽?嘻嘻嘻嘻嘻嘻~。看lkstarsea哥回答的很好了耶
好了,不卖关子了。给你学习用吧:
首先Java EE是一套 “标准”~~~~,要永远记着Java EE中没有任何实现,这套标准给出的是完完全全的都是接口。那么,为什么不给实现?OK,举个例子,磁带知道吧?不是所有能放磁带的录音机是只由一个厂家生产的,也不是所有磁带都是由一个厂商生产的,但是你惊奇地发现,任何一个磁带能放在任何一个录音机里进行播放。这就是标准的魅力。
从而,做为应用程序开发的你,会发现打出的war包,不管是在jetty,tomcat还是glassfish上都能运行。如果你是服务器开发商的攻城师,你开发的服务器也必须能使任何应用程序war都能在你的服务器上运行。这就是因为无论是应用程序开发者,还是应用服务器开发者,都遵循了那套标准。
好,最简单的,搞JavaEE的人都知道javax.servlet.Servlet, 这个东西有一个初始化方法 ,service方法和一个dispose方法。干什么的就不多说了。然后通常做Web开发,用地最多的就是HttpServlet这个抽象类,在service方法中它会根据request的请求头中的请求方式分别调对应的doGet doPut, doPost等等方法,所以你只要覆写这些方法就行。然后你需要返回数据以供浏览器渲染。正常你可以笨笨地将返回内容写到response的流中,不管是Writer还是OutputStream(). 但是有页面在服务器上的状态下是可以转发和跳转到相应页面上的,转发是携带request数据的,只能转发本服务器中的页面数据,跳转是又一次请求,所以不但可以请求本服务器上的页面数据,还可以请求其他服务器中的页面。

转发: request.getRequestDispatch("").forward(request,response);
跳转: response.sendRedirect("") 词的意思是“重定向”
""中可以是html页面,可以是JSP页面。 主要给浏览器来进行渲染的东西还是在response里,所以你可以 sendError , 就那些400 500都可以用sendError来完成。
OK, servlet懂了,JSP. 在搞JSP之前,我问你个最基本的问题,浏览器读html是解释一行就能出一行,也就是说它是解释型,而Java是编译型的语言,你必须让整个java文件通过编译,才能运行,那么JSP里又能写Java语言从而但浏览器还能看懂JSP页面,这个不是完全冲突的吗?
现在去做一件事,在tomcat中部署一个含有JSP页面的应用,JSP上面写些java代码,然后运行服务器,请求那个有java代码的jsp页面,比如test.jsp。成功看到结果后。 找到tomcat运行目录,(是运行时目录哈,有些IDE可以将运行时目录重定向到不是安装目录的地方),找到work文件夹进去然后Catalina/localhost/{你的应用目录}/org/apache/jsp/ 在这里找到了test_jsp.java. 打开这个java文件,你会在_jspService的方法中某个部位看到你在JSP上写的代码。 你还会看到许多诸如out,request ,response这些jsp内置对象的声明。你还会看到很多很多能解释你疑惑的东西。最重要的,它的基类 HttpJspBase继承了javax.servlet.HttpServert,实现了javax.servlet.jsp.HttpJspPage接口,有了这两个标准的东西.OK,知道原理就好,想要往懂看需要费时间的,而且没啥用,除非你是Server端的开发者。
完全手码。累死

回答2:

servlet是接口。HttpServlet是servlet的实现扩展类

在Servlet API中最重要的是Servlet接口(interface),所有的servlets都必须实现该接口,途径有很多:一是直接实现该接口,二是通过扩展类(class)来实现,如 HttpServlet。 这个Servlet接口提供了servlet与客户端联系的方法。Servlet编写者可以在他们开发 servlet程序时提供更多一些或所有的这样方法。
当一个servlet接收来自客户端的调用请求, 它接收两个对象:一个是ServletRequest,另外一个是ServletResponse。这个ServletRequest类概括从客户端到服务器之间的联系,而 ServletResponse类概括从servlet返回客户端的联系。

JSP主要关注于HTML(或者XML)与Java代码的结合,以及加入其中的JSP标记。如果一个支持JSP的服务器遇到一个JSP页面,它首先查看该页面是否被编译成为一个servlet。由此可见,JSP被编译成servlet,即被转变为纯Java,然后被装载入服务器执行。当然,这一过程,根据不同的JSP引擎而略有不同。

简单的说,SUN首先发展出SERVLET,其功能比较强劲,体系设计也很先进,只是,它输出HTML语句还是采用了老的CGI方式,是一句一句输出,所以,编写和修改HTML非常不方便。

后来SUN推出了类似于ASP的嵌套型的JSP,把JSP TAG嵌套到HTML语句中,这样,就大大简化和方便了网页的设计和修改。新型的网络语言如ASP,PHP都是嵌套型的。

回答3:

不是,继承HttpServlet是Servlet套路写法,你不继承它就不是是一个servlet,服务器中间件(包括tomcat,weblogic,jboss等)就不认为它是servlet,所以继承写法是必须的不是可选的。

回答4:

httpservlet
可以认为是后台的。

从技术的角度,了解一下这个内容就好,不必深究,因为这技术很少使用了。