`
罗春桉
  • 浏览: 16051 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

Servlet学习

阅读更多



                                                                     Servlet学习小结

 

      什么是Servlet?Servlet是纯Java文件,是一个类。是Java语言编写的运行在服务器端的小应用程序,类似运行在客户端的Applet。它能够接收客户端的请求,并对Web客户端做出响应,通常是按照HTTP协议进行工作的。当客户机发送请求至服务器时,服务器将请求信息发送给Servlet,Servlet生成响应内容并将其传给Server,然后再由Server将响应返回给客户端。

 

      Servlet API类框图(见附加图片)

 

1.Servlet接口的方法: 

1)void destroy(); 由容器调用,表示该Servlet不可再用。

2)ServletConfig getServletConfig();获取ServletConfig对象,该对象包含了Servlet的初始化和启动参数等信息

3)String getServletInfo();获取Servlet的相关信息,例如开发者、创建日期、描述信息等。

4)Void inti(ServletConfig config);对Servlet进行初始化。实例化后,容器就调用此方法。

5)Void service(ServletRequest req,ServletResponse res)由Servlet容器调用,来对请求进行相应。

 

(Servlet容器有时候也叫做Servlet引擎,是Web服务器或应用程序服务器的一部分,servlet不能独立运行,必须被部署到容器中,由容器来执行实例化和调用Servlet的方法。简言之,Servlet容器在Servlet的生命周期内包容和管理Servlet)

 

2.ServletConfig接口的方法: 

1)String getInitParameter(String name);返回参数所指定的初始化参数值,如果指定的初始化参数不存在返回null;

2)Enumeration getInitParameterNames();返回所有的初始化参数的名字,如果不存在任何初始化参数返回空的Enumeration对象;

3)ServletContext  getServletContext();返回一个ServletContext对象引用;

4)String getServletName();返回Servlet实例的名字;

 

3.GenericServlet是一个通用的与协议无关的Servlet;实现了以上两个接口和Serializable接口。另外定义了一下三个方法

1) log(String msg):把特定信息写到Servlet的日志文件;

2) log(String msg,Throwable()):为Throwable异常添加辅助描述信息,然后写入Servlet的日志文件,消息前面会加上Servlet的名字;

3) void init():如果不需要调用super.init(config),可以覆盖这个方法

 

4.HttpServlet继承自GenericServlet,编写HTTP协议下的Servlet应该继承这个类,该类是抽象类。除继承方法外,还实现了以下方法:

1)protected void doDelete(HttpServletRequest req,HttpServletResponse res);

2)protected void doGet(HttpServletRequest req,HttpServletResponse res);

3)protected void doPost(HttpServletRequest req,HttpServletResponse res); 

4)protected void doLastModified(HttpServletRequest req,HttpServletResponse res); 

5)protected void service(HttpServletRequest req,HttpServletResponse res); 

......


以上方法接受的两个对象是ServletResquest和ServletResponse,ServletRequest对象含有发送给servlet的信息,而ServletResponse对象则是返回给客户机的数据载体。

 

5.Servlet的主要方法有:

1)init 方法:用于初始化。

2)destroy方法:用于释放资源。

3)service 方法:服务类方法,对用户的请求进行处理,并对用户进行响应,几乎所有处理功能都在此完成。该类方法有

                        doPost,响应post方式的请求; doGet,响应get方式的请求; service(),两种请求方式都可以响应;

post/get区别: get提交内容的大小有限制,post好像没有;使用get提交地址栏中会显示提交数据,post不会;get提交

                     通常要求服务器马上处理;通常表单提交使用post方式(提交客户端数据),超链接使用get方式(查询服务

                     端的数据)。

 

6.Servlet的生命周期:

1.编译(即将.java文件编译为.class文件)

2.加载()

3.实例化(分配内存)-

4.初始化-

5.执行-

6.销毁-

 

7.Servlet的三种转发方式:

1)request.getRequestDispatcher(url).include(request, response);包含

2)request.getRequestDispatcher(url).forward(request, response);请求转发

3)response.sendRedirect(url);重定向

区别:include 将url中的资源包含到当前Servlet中输出。原来的资源还在。

         forword 将url中的资源拿到当前Servlet中显示。原来的资源被覆盖。

         sendRedirect将url发送给客户端,让浏览器重新发送request去访问url中的资源。

 

 

 

 

  • 描述: Servlet API类框图
  • 大小: 50.6 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics