Java-Servlet的讲解

大家好,我是IT修真院深圳分院的学员,一枚正直善良的JAVA程序员。

1.背景介绍

Servlet(ServerApplet)是JavaServlet的简称,一般称为小服务程序或服务连接器,是一个用Java编写的服务器端程序。

主要功能在于处理请求和发送响应、交互式地浏览和修改数据,生成动态Web内容,甚至可以说Servlet是为了解决实现动态页面而衍生的程序。

狭义的Servlet是指Java语言实现的一个接口,广义的Servlet是指任何实现了这个Servlet接口的类,一般情况下,

人们将Servlet理解为后者。Servlet运行于支持Java的应用服务器中。

2.知识剖析

Servlet的四个主要内置对象

ServletConfig对象

ServletContext对象

request对象

Request对象的作用是与客户端交互,收集客户端的Form、Cookies、超链接,或者收集服务器端的环境变量。

request对象是从客户端向服务器发出请求,包括用户提交的信息以及客户端的一些信息。同时也会向服务器或者浏览器定义自己需要的返回的东西。

response对象

Response对象用于动态响应客户端请示,控制发送给用户的信息,并将动态生成响应。

Response对象只提供了一个数据集合cookie,它用于在客户端写入cookie值。若指定的cookie不存在,则创建它。若存在,则将自动进行更新。结果返回给客户端浏览器。

3.常见问题

1.servlet的生命周期是怎么样的?

2.Servlet与JSP的异同

4.解决方案

1.servlet的生命周期是怎么样的?

Servlet生命周期分为三个阶段:

1,初始化阶段调用init()方法

2,响应客户请求阶段  调用service()方法

3,终止阶段  调用destroy()方法

初始化阶段

1,Servlet容器启动时自动装载某些Servlet

-loadon-startup-1-loadon-startup-

2,在Servlet容器启动后,客户首次向Servlet发送请求的时候

3,Servlet类文件被更新后,重新装载Servlet



2.Servlet与JSP的区别是什么?

Servlet与JSP有许多相似之处,都可以生成动态网页。

背景:

Servlet体系是基于B/S架构开发web应用程序,使用Servlet类将HTTP请求和响应封装在标准JAVA类中来实现各种web应用方案的。

当大量的B/S架构程序开发出来以后出现了很多问题:首先servlet类有大量冗余代码,其次是开发Servlet的没法做到有精美的页面效果。

所以sun提出将服务端代码添加在已经设计好的静态页面上,经过JSP容器对JSP文件进行自动解析并转换成Servlet类来交给web服务器运行。

创建方式:

Servlet都是由JAVA程序代码构成,用于流程控制和事务处理,通过Servlet来生成动态网页很不直观。

而JSP由HTML代码和JSP标签构成,可以方便地编写动态网页.

编译:

JSP修改后可以立即看到结果,不需要编译;

而Servelt缺需要编译。

转换:

JSP是动态网页开发技术,是运行在服务器端的脚本语言,而Servlet是web服务器端编程技术。

所以JSP运行时就是转换为Servlet,也就是java程序来执行。

优缺点:

JSP的优点是擅长于网页制作,生成动态页面比较直观,缺点是不容易跟踪与排错。

Servlet是纯Java语言,擅长于处理流程和业务逻辑,缺点是生成动态网页不直观。

5.编码实战

这是因为Tomcat7以及之前的编码方式都是iso8859-1,tomcat8以后默认编码格式开始改为utf-8;

这时候我们需要在页面进行设置,添加下列代码使得页面的编码方式变成utf-8.

<%@ pagecontentType="text/html;charset=UTF-8" language="java" %>

<%@ page language="java"import="java.util.*" pageEncoding="UTF-8" %>

就可以将页面的获取内容改为UTF8,显示正常的数据。

但是在我们向服务器提交信息的时候,返回的信息依然会是iso8859-1,

这就需要我们在后台进行处理。这里就不仔细讲了,也不是什么很麻烦的事情。

6.扩展思考

1、为什么创建的servlet是继承自httpServlet,而不是直接实现Servlet接口?

2、servlet的生命周期中,可以看出,执行的是service方法,为什么我们就只需要写doGet和doPost方法呢?

7.参考文献

链接:http://www.cnblogs.com/whgk/p/6399262.html

作者:一杯凉茶

链接:https://baike.baidu.com/item/Response%E5%AF%B9%E8%B1%A1/7465134?fr=aladdin

作者:百度百科

8.更多讨论

jsp中的内置对象在servlet中对应的是什么?

servlet有九大内置对象,其中对应的关系如下:

1、out 来源于Java.io.Writer类,它用于发送输出流到客户端。

2、request 来源于javax.servlet.http.HttpServletRequest接口。它被关联到每一个HTTP请求。

3、response 来源于javax.servlet.http.HttpServletResponse。response对象用于把取得的数据返回到客户端。

4、pageContext 提供访问JSP页面的命名空间。它也提供用来访问其他的JSP隐含对象。

5、session 来源于javax.servlet.http.HttpSession。它用于存储客户端请求的信息,因此它是有状态交互式的。

6、application 来源于javax.servlet.ServletContext。

7、config 来源于ServletConfig,它包含了当前JSP/Servlet所在的WEB应用的配置信息。

8、page 来源于当前被访问JSP页面的实例化。它实际使用的是JSP转换成的Servlet。

9、exception 用于捕获JSP抛出的异常。它只有在JSP页面属性isErrorPage=true时才可用。

2.关于程序Servlet的乱码关系?

spring早就已经做好了对应的处理,只需要在程序中加入z:

3.Tomcat与Servlet

PPT链接:戳这里看PPT

腾讯视频:腾讯视频

技能树.IT修真院

“我们相信人人都可以成为一个工程师,现在开始,找个师兄,带你入门,掌控自己学习的节奏,学习的路上不再迷茫”。

这里是技能树.IT修真院,成千上万的师兄在这里找到了自己的学习路线,学习透明化,成长可见化,师兄1对1免费指导。快来与我一起学习吧

直接点击此链接:http://www.jnshu.com/login/1/10985551

你可能感兴趣的:(Java-Servlet的讲解)