`

相关servlet

阅读更多
Servlet 是个特殊的Java 类,这个Java 类必须继承HttpServlet 。每个Servlet 可以响应客户端的请求。Servlet 提供不同的方法用于响应客户端请求。
• doGet: 用于响应客户端的get 请求。
• doPost: 用于响应客户端的post 请求。
• doPut: 用于响应客户端的put 请求。
• doDelete: 用于响应客户端的delete 请求。
事实上,客户端的请求通常只有get 和post 两种; Servlet 为了响应这两种请求,必须重写doGet 和doPost 两个方法。如果Servlet 为了响应四个方法,则需要同时重写上面的四个方法。
大部分时候, Servlet 对于所有请求的响应都是完全一样的。此时,可以采用重写一个方法来代替上面的几个方法, Servlet 只需重写service 方法即可响应客户端的所有请求。
另外, HttpServlet 还包含两个方法。
• init(ServletConfig config): 创建Servlet 实例时,调用的初始化方法。
• destroy(): 销毁Servlet 实例时,自动调用的资源回收方法。
通常无须重写init()和destroy()两个方法,除非需要在初始化Servlet 时,完成某些资源初始化的方法,才考虑重写init 方法。如果需要在销毁Servlet 之前,先完成某些资源的回收,比如关闭数据库连接等,才需要重写destroy 方法。
注意:如果重写了init(ServletConfig config)方法,则应在重写该方法的第一行调用super.init(config) 。该方法将调用HttpServlet 的init 方法。
Servlet 和JSP 的区别在于:
• Servlet 中没有内置对象,原来JSP 中的内置对象都必须通过HttpServletRequest对象,或由HttpServletResponse 对象生成;
• 对于静态的HTML 标签, Servlet 都必须使用页面输出流逐行输出。
JSP 是Servlet 的一种简化,使用JSP 只需要完成程序员需要输出到客户端的内容,至于JSP 中的Java 脚本如何镶嵌到一个类中,由JSP 容器完成。而Servlet 则是个完整的Java 类,这个类的service 方法用于生成对客户端的响应。

编辑好的Servlet 源文件并不能响应用户请求,还必须将其编译成class 文件。将编译后的FirstServlet. class 文件放在WEB-INF/classes 路径下,如果Servlet 有包,则还应该将class 文件放在对应的包路径下。
为了让Servlet 能响应用户请求,还必须将Servlet 配置在Web 应用中。配置Servlet时,需要修改web.xrnl 文件。
配置Servlet 需要配置两个部分。
·配置Servlet 的名字:对应web.xml 文件中的<servlet/>元素。
·配置Servlet 的URL: 对应web.xml 文件中的<servlet-mapping/>元素。
因此,配置一个能响应客户请求的Servlet ,至少需要配置两个元素,例:

Xml代码
1.<! -- 配置Servlet 的名字--> 
2.<servlet> 
3.<! -- 指定Servlet 的名字--> 
4.<servlet-name>firstServlet</servlet-name> 
5.<! -- 指定Servlet 的实现类--〉  
6.<servlet-class>lee.FirstServlet</servlet-class> 
7.</servlet> 
8.<! -- 配置Servlet 的URL--> 
9.<servlet-mapping> 
10.<!--指定Servlet 的名字--> 
11.<servlet-name>firstServlet</servlet-name> 
12.<!--指定Servlet 映射的URL 地址--> 
13.<url-pattern>/firstServlet</url-pattern> 
14.</servlet-mapping> 
<! -- 配置Servlet 的名字-->
<servlet>
<! -- 指定Servlet 的名字-->
<servlet-name>firstServlet</servlet-name>
<! -- 指定Servlet 的实现类--〉
<servlet-class>lee.FirstServlet</servlet-class>
</servlet>
<! -- 配置Servlet 的URL-->
<servlet-mapping>
<!--指定Servlet 的名字-->
<servlet-name>firstServlet</servlet-name>
<!--指定Servlet 映射的URL 地址-->
<url-pattern>/firstServlet</url-pattern>
</servlet-mapping>

Servlet 的创建有两个选择。
·客户端请求对应的Servlet 时,创建Servlet 实例:大部分的Servlet 都是这种Servlet 。
• Web 应用启动时,立即创建Servlet 实例:即load-on-startup Servlet 。
每个Servlet 的运行都遵循如下生命周期。
(1)创建Servlet 实例。
(2) Web 容器调用Servlet 的init 方法,对Servlet 进行初始化。
(3) Servlet 初始化后,将一直存在于容器中,用于响应客户端请求。如果客户端有get 请求,容器调用Servlet 的doGet 方法处理并响应请求。对于不同的请求,有不同的处理方法,或者统一使用service 方法处理来响应用户请求。
(4) Web 容器角色销毁Servlet 时,调用Servlet 的destroy 方法,通常在关闭Web容器之时销毁Servlet。
Servlet生命周期:
开始-->创建实例完成-->初始化-->响应客户端请求-->被销毁-->结束
在标准的MVC 模式中, Servlet 仅作为控制器使用。
M: Model,即模型,对应JavaBean 。
V: View ,即视图,对应JSP 页面。
C: Controller,即控制器,对应Servlet。

load-on-startup Servlet
Servlet 的实例化有两个时机:用户请求之时,或应用启动之时。应用启动时就启动的Servlet 通常是用于某些后台服务的Servlet ,或者拦截很多请求的Servlet; 这种Servlet 通常作为应用的基础Servlet 使用,提供重要的后台服务。
如果需要Web 应用启动时,可使用load-on-startup 元素完成Servlet 的初始化。load-on-startup 元素只接收一个整型值,这个整型值越小, Servlet 就越优先初始化。

Xml代码
1.<servlet> 
2.<! -- Servlet 名--> 
3.<servlet-name>timerServlet</servlet-name> 
4.<!-- Servlet 的实现类--> 
5.<servlet-class>lee.TimerServlet</servlet-class> 
6.<!-- 配置应用启动时,创建Servlet 实例--> 
7.<load-on-startup>l</load-on-startup> 
8.</servlet> 
<servlet>
<! -- Servlet 名-->
<servlet-name>timerServlet</servlet-name>
<!-- Servlet 的实现类-->
<servlet-class>lee.TimerServlet</servlet-class>
<!-- 配置应用启动时,创建Servlet 实例-->
<load-on-startup>l</load-on-startup>
</servlet>该Servlet 将一直作为后台服务执行。

访问Servlet 的配置参数:
访问Servlet 配置参数要通过ServletConfig 类的实例完成, ServletConfig提供如下
方法。
• java.lang.String getInitParameter(java.lang.String name): 用于获取初始化参数。
注意: JSP 的内直对象config 就是此处的ServletConfig

Jsp代码
1.//获取ServletConfig对象  
2.ServletConfig config = getServletConfig();  
3.//通过ServletConfig对象获取配置参数: dirver  
4.String driver = config.getInitParameter("driver"); 
//获取ServletConfig对象
ServletConfig config = getServletConfig();
//通过ServletConfig对象获取配置参数: dirver
String driver = config.getInitParameter("driver");
Servlet 访问配置参数的方式非常类似于application方式。只是application 的配置参
数对整个Web 应用有效,而Servlet 配置参数仅对该Servlet 有效,下面是配置该Servlet的配置片段:

Xml代码
1.<servlet> 
2.<!--配置Servlet 名--> 
3.<servlet-name>testServlet</servlet-name> 
4.<!--指定Servlet 的实现类--> 
5.<servlet-class>lee.TestServlet</servlet-class> 
6.<!--配置Servlet 的初始化参数: driver--> 
7.<init-param> 
8.<param-name>driver</param-name> 
9.<param-value>com.mysql.jdbc.Driver</param-value> 
10.</init-param> 
11.</servlet> 
12.<servlet-mapping> 
13.<!--确定Servlet 名--> 
14.<servlet-name>testServlet</servlet-name> 
15.<!--配置Servlet 映射的URL--> 
16.<url-pattern>/testServlet</url-pattern> 
17.</servlet-mapping> 


servlet笔记
Servlet总结

Whatà
是一种服务端的小应用程序

Whyà
1, 高效:在servlet中,每个请求都由一个java线程来处理
2, 方便:自动地解析和解码HTML表单数据、读取和设置HTTP头、处理Cookie、跟踪会话状态等。
3, 可移植性好:几乎所有的主流服务器都直接或通过插件支持Servlet。

Howà
SERVLET的运行流程:

客户端向WEB服务器发送请求,WEB服务器接收客户端发送过来的相关请求,
并把请求信息转发给SERVLET容器进行相关处理。SERVLET容器处理之后回送处
理后的相关信息给客房端。


Servlet的生命周期


Servlet的缺点:
1, servlet中没有内置对象,原来jsp中的内置对象都必须由程序显式的创建
2, 对于静态的html标签,servlet都必须要使用页面输出流逐行输出


Servlet中生命周期中doPost()和doGet()的区别
当一个客户通过HTML 表单发出一个HTTP POST请求时,doPost()方法被调用。与POST请求相关的参数作为一个单独的HTTP 请求从浏览器发送到服务器。当需要修改服务器端的数据时,应该使用doPost()方法。
当一个客户通过HTML 表单发出一个HTTP GET请求或直接请求一个URL时,doGet()方法被调用。与GET请求相关的参数添加到URL的后面,并与这个请求一起发送。当不会修改服务器端的数据时,应该使用doGet()方法。


Servlet的工作原理:Jsp+javabean+servlet(成为mvc模式的一种有效选择)

Servlet和jsp的区别:
1, servlet的生命周期比jsp少了一步编译
2, servlet是手动配置处理的,jsp是自动的
3, servlet可扩展,可维护,提高编码性能
4, url的区别表现在:在地址栏输入url时,jsp是*.jsp,而servlet是任意的
5, servlet是纯java代码,jsp可以潜入html,js,css等

servlet的继承关系
                        servlet           ServletConfig       
                            \                 /
                             \               /
                              \             /
                               \           /
                               GenericServlet
                                     |
                                     |
                                     |
                                     |        
                                HttpServlet
                                     |
                                     |
                                     |
                                     |
                               我们的servlet

Servlet的过滤器
Servlet的过滤器是特殊的servlet,能够对特定的请求路径进行过滤,在访问这个路径之前,先执行过滤器,过滤器进行处理
典型的应用:字符编码的转换,对用户的验证,记录用户的登录日志


分享到:
评论

相关推荐

    相关servlet学习代码

    在本"相关servlet学习代码"资料中,你将找到关于Servlet基础以及一些实用功能实现的详细示例。下面,我们将深入探讨Servlet的主要概念和关键知识点。 1. **Servlet生命周期**: - **加载与实例化**:当服务器启动...

    servlet-ppt java web相关servlet课件

    - `&lt;servlet&gt;`元素定义Servlet,`&lt;servlet-name&gt;`指定Servlet名称,`&lt;servlet-class&gt;`指定Servlet类全名。 - `&lt;servlet-mapping&gt;`元素将URL与Servlet关联,`&lt;url-pattern&gt;`指定匹配的URL模式。 4. **请求处理**:...

    servlet.jar,httpservlet架包

    Servlet和HTTPServlet是Java Web开发中的核心组件,主要用于构建动态Web应用程序。...servlet.txt可能是辅助开发的资源文件,包含有关Servlet的教程或示例。理解和熟练使用这些工具,对于Java Web开发者来说至关重要。

    servlet基础与servlet容器模型

    1. **Web应用**:一组相关的资源(HTML、CSS、JavaScript、图片、Servlet类等),按照特定的目录结构打包成WAR(Web Archive)文件,部署在容器中。 2. **部署描述符**(web.xml):这是Web应用的配置文件,定义了...

    Servlet接口及方法

    - 该方法的具体实现由Servlet开发者自行决定,主要用于提供有关Servlet的一些元数据。 ### 四、总结 通过上述内容可以看出,`Servlet`接口和`RequestDispatcher`接口为Java Web开发者提供了强大的工具集,用于处理...

    servlet的有关知识

    Servlet是Java Web开发中的核心组件,它是一种服务器端的Java应用程序,主要用于扩展Web服务器的功能,处理来自客户端(通常是Web浏览器)的请求并返回响应。在深入理解Servlet之前,我们需要先了解一些基本概念。 ...

    servlet api servlet api

    下面将详细介绍Servlet API的相关知识点。 1. **Servlet概念**: Servlet是一个Java类,它扩展了服务器的功能,尤其是用于Web应用。它被部署在Web服务器或应用服务器中,接收并响应来自客户端(如浏览器)的HTTP...

    java-servlet-api.doc

    当Servlet引擎决定卸载一个Servlet时(例如,如果这个引擎被关闭或者需要让资源),这个引擎必须允许Servlet释放正在使用的资源并存储有关资料。为了完成以上工作,引擎会调用Servlet的destroy()方法。 在卸载一个...

    servlet相关的实例(共三个包)第一包

    在这个“servlet相关的实例(共三个包)第一包”中,我们可以深入理解如何使用Servlet技术来构建实际的应用程序,比如人力资源管理系统。这个压缩包包含源码下载和一个使用JSP(JavaServer Pages)和Servlet实现的人力...

    serlvet 源码 servlet-src 源文件

    在这个压缩包中,我们可能会找到`javax`包,这是Java标准库的一部分,包含了Servlet相关的类和接口。 Servlet API主要包含以下几个核心概念: 1. **Servlet接口**:所有Servlet都必须实现这个接口,它定义了...

    servlet-api_servlet_

    在描述中提到的"全新的servlet相关jar包,值得学习与研究",暗示了这是一个新的版本或者更新,包含了最新的Servlet规范和API。学习和研究Servlet API对于理解Web服务器如何处理HTTP请求,以及如何编写服务端代码来...

    Servlet进阶的相关内容

    这篇博客"Servlet进阶的相关内容"可能深入探讨了Servlet的高级特性和实践应用。由于没有直接提供博客的具体内容,我会根据Servlet的常见进阶主题进行详细的阐述。 1. **Servlet生命周期**:Servlet在服务器启动时...

    servlet3.0相关包

    servlet3.0相关的servlet包 servletapi包以及对应的jsee6.0以上支持的jstl-impl包

    servlet-api中文文档

    在`jsp.txt`文件中,可能包含了关于JSP指令、表达式、脚本元素、动作标签等相关内容的解释。 1. JSP指令:如`&lt;%@ page %&gt;`, `&lt;%@ include %&gt;`, 和`&lt;jsp:directive&gt;`,它们用于配置整个JSP页面或引入其他资源。 2. ...

    servlet 相关内容

    本篇文章将深入讲解Servlet的相关内容,包括其基本概念、生命周期、工作原理以及如何通过实例来理解和应用Servlet。 一、Servlet基本概念 Servlet是Java Servlet API规范定义的一种接口,用于扩展服务器的功能。在...

    servlet 心的练习

    在"day02"这个目录中,很可能包含了多个Servlet实例和相关的配置文件。你可以通过以下步骤进行实践: 1. 创建Servlet:创建一个新的Java类,继承`HttpServlet`,重写`doGet()`和`doPost()`方法。 2. 注册Servlet:在...

    servlet常用类接口

    4. **getServletInfo()**:返回有关Servlet的信息字符串,通常是版本信息或其他描述性信息。 5. **getServletConfig()**:返回当前Servlet的配置对象。 #### 二、GenericServlet类 `GenericServlet`是Servlet接口...

    servlet3.0与mybatis整合的示例

    1. 添加依赖:在项目中引入Servlet3.0和MyBatis的相关jar包,如果是Maven项目,可以在pom.xml中添加对应的依赖。 2. 配置MyBatis:创建mybatis-config.xml配置文件,设置数据源、事务管理器、SqlSessionFactory等。...

    Head First Servlet & JSP

    SCWCD认证是Java Web开发者的权威证明,涵盖Servlet和JSP的相关知识。《Head First Servlet & JSP》作为备考书籍,不仅涵盖了考试大纲中的所有知识点,还通过生动的图表、游戏和互动方式帮助读者理解并记忆复杂概念...

    servlet入门经典笔记

    `ServletInfo`方法返回Servlet的相关信息,如开发者、版本等,主要用于文档和调试目的。 总的来说,Servlet是Java Web开发中不可或缺的一部分,它允许我们用Java代码处理HTTP请求,实现动态网页和服务器端业务逻辑...

Global site tag (gtag.js) - Google Analytics