`
persistC
  • 浏览: 73104 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论
阅读更多
一、复习
servlet接口的实现类中的service()方法,在继承HttpServlet类时,如果没有覆盖父类的service()方法,
那么父类的service()方法会根据请求类型不同的会分别调用覆盖的doGet(),doPost()方法,如果响应两
种请求的动作相同,那么可以直接覆盖service()方法。如果覆盖了
doGet(),doPost()方法之一,那么就会只对一种请求作出相应。在浏览器的地址栏操作按回车键,或者是
热连接,都是get请求,form的method属性如果不指定,默认为get请求。

我们可以通过ServletRequest对象或HttpServletRequest对象的方法来获取请求中传送的参数。
getParameter(String name)方法,可以获得form表单中指定名字的参数,多参数同名时,只取一个。
getParameterNames(),可以获得一个迭代器Enumeration,通过这个迭代器,来获得form表单中参数的名字。
getParameterValues(String name)获得指定的所有同名参数的值。

get请求,会将参数显示在浏览器的地址栏上,其显示格式,在地址之后会以问号开始,以'&'分隔参数,
可以通过HttpServletRequest对象的getQueryString()方法来获得get请求的参数值。

ServletRequest对象的getInputStream()方法可以获得一个由Socket得来的输入流,可以使用这个流来
实现文件的上传。getReader()方法可以直接获取post请求的参数。

注意:getParameter()与getReader()方法不能同时调用

ServletContext对象是Servlet的上下文对象,这个对象是在服务器启动时创建的,他可以看作是
一个应用的对象,他可以看作是包含Servlet,管理Servlet的对象。


二、servlet的生命周期

遵守servlet规范的类,就可以通过服务器产生对象(反射机制),并处理请求。

servlet接口中的方法
所有的servlet都必须实现javax.servlet.Servlet接口

public class TestServlet implements Servlet {
ServletConfig config;
public void init(ServletConfig config) throws ServletException {
this.config=config;
//这个ServletConfig对象是由服务器生成,也就是有系统提供的,通过他可以获得启动信息。ServletConfig对象和Servlet是一一对应的。
//这个方法是在Servlet创建后调用的。如果要是用到ServletConfig对象是一定要为对象赋值。
}

public ServletConfig getServletConfig() {
return this.config;
}

public void service(ServletRequest request, ServletResponse response) throws ServletException, IOException {
...;//这个方法是用来处理请求的核心方法
}

public String getServletInfo() {
return "....";//这个是用来写Servlet信息的,用来写作者,以及版本信息
}

public void destroy() {
...;//这个方法是用来销毁Servlet对象的
}

}

HttpServlet和GenericServlet都实现了Servlet接口。
HttpServlet中的service(HttpServletRequest request,HttpServletResponse response)方法是通过service(ServletRequest request,ServletResponse response)方法的调用来实现对请求的处理。

1、Servlet的生命周期分为四个阶段
(1)创建Servlet对象,通过服务器反射机制创建Servlet对象,第一次请求时才会创建。(默认)
(2)调用Servlet对象的init()方法,初始化Servlet的信息,init()方法只会在创建后被调用一次
(3)响应请求,调用service()或者是doGet(),doPost()方法来处理请求,这些方法是运行的在多线程状态下的。
(4)在长时间没有被调用或者是服务器关闭时,会调用destroy()方法来销毁Servlet对象。


2、servlet创建时机:
(1)第一个请求到来的时候创建
(2)在web.xml中<servlet>标签下添加<load-on-startup>2</load-on-startup>,则在服务器启动的时候就创建
     标签体是正数的时候,启动服务器,即创建servlet
     并且当多个<servlet>标签都定义了这个时,数字小的先加载

3、初始化参数
可以通过<init-param>标签来配置初始化参数,可以用ServletConfig对象的
getInitParameter(String name)方法来得到参数。

<init-param>
<param-name>...</param-name>
<param-value>...</param-value>
</init-param>

三、多线程下的操作
多线程下所操作的变量,如果操作的是一个变量,且兼有读写操作,就要考虑加上同步,但同步不能乱加,否则会造成死锁问题。
init()和destroy()方法都是运行在单线程下的。

四、分布式模型
把系统部署在不同的地址空间执行
在有限的硬件条件下,服务更多的用户
在Servlet中可以访问,JDBC,RMI(远程方法调用),以及跨语言平台的组件等资源。
在Servlet中是用JDBC很容易,也就是在Servlet中调用JDBC中的方法,就可以实现对数据库的访问

五、有参和无参的init方法。
  public void init(ServletConfig config)throws ServletException
  {
        this.config = config;
        init();
  }

  public void init()throws ServletException
  {
.....;//覆盖了的无参的init()方法,会在Servlet创建,调用有参的init方法时
也会被调用。
  }
 
  先覆盖init(),有父类调init(config)
  init()方法可抛异常,初始化成功才进入service()方法中
 
 
六、war文件
扩展名为“.war”的文件放在tomcat的webapps下,当服务器启动的时候,自动把文件解压开
注意:文件名字,就是将来访问时应用的名字 
分享到:
评论

相关推荐

    Java之servlet2 -- codes

    首先,Servlet2指的是Servlet API的第二个主要版本,即Servlet 2.0,这是在1999年发布的Java Servlet规范。相较于Servlet 1.0,Servlet 2.0引入了许多重要的改进,包括支持多线程服务、HTTP会话管理、过滤器和监听器...

    Java用注解的方式定义一个Servlet

    用注解的方式定义一个Servlet,就不用在web.xml中配置了。Servlet的访问URL是Servlet的必选属性,可以... 如@WebServlet(name="AnnotationServlet",urlPatterns={"/AnnotationServlet","/AnnotationServlet2"})  

    servlet 2d barcode dm驱动

    servlet 2d barcode dm驱动

    servlet2.java

    servlet2.java

    Servlet3.0新特性,Servlet3新特性,Servlet3注解,Servlet3异步处理【蕃薯耀】

    在Servlet2.x中,Servlet线程会一直占用到响应完成,这限制了服务器并发处理请求的能力。而在Servlet3.0中,可以通过`AsyncContext` API来实现异步处理,将请求处理逻辑从主线程分离出来,释放主线程处理其他请求。...

    [转]Servlet3特征 异步Servlet

    在Servlet2.x时代,每个HTTP请求都会创建一个新的线程,并将该线程与Servlet实例关联,直到请求完成。这意味着如果一个请求需要长时间处理(例如,执行数据库查询或调用远程服务),它会占用服务器线程,这可能导致...

    Servlet项目实践 实现学生信息系统的全部代码

    二、Servlet的运行过程 Servlet程序是由WEB服务器调用,web服务器收到客户端的Servlet访问请求后:  ①Web服务器首先检查是否已经装载并创建了该Servlet的实例对象。如果是,则直接执行第④步,否则,执行第②步。 ...

    servlet基础与servlet容器模型

    2. **部署描述符**(web.xml):这是Web应用的配置文件,定义了Servlet、过滤器、监听器等组件的配置信息。 3. **Servlet**:实现了Servlet接口的Java类,处理客户端请求。 4. **Servlet实例**:Servlet容器根据...

    Servlet2.doc

    Servlet技术的基础详细学习笔记,总结了Servlet技术的各个知识点,可以用来复习以及对基础知识的巩固,对新人的学习很有帮助。

    Servlet3.0新特性解析

    **二、Servlet3.0过滤器新实现** 过滤器在Servlet应用中用于对请求或响应进行预处理和后处理。在Servlet2.x中,过滤器同样需要在web.xml中进行配置。而在Servlet3.0中,我们可以通过`@WebFilter`注解来直接定义过滤...

    servlet整合ckeditor编辑器

    最后,确保在Web应用的部署描述符`web.xml`(如果使用Servlet 2.x)中注册这些Servlet,或者如果你使用的是Servlet 3.0以上的版本,可以直接通过注解在类上注册Servlet,无需在`web.xml`中配置。 通过以上步骤,...

    ServletAPI

    二、Servlet生命周期 1. 加载:当服务器启动或者第一次收到对Servlet的请求时,服务器会加载Servlet类并创建其实例。 2. 初始化:Servlet实例被创建后,会调用`init()`方法进行初始化,通常用于配置Servlet。 3. ...

    JSP与servlet之间的传值

    #### 二、JSP 向 Servlet 传值 **1. Form 表单** 通过 `&lt;form&gt;` 标签可以将表单中的数据提交给 Servlet 进行处理。这种情况下,Servlet 可以通过 `request.getParameter()` 方法获取表单提交的数据。 示例代码: `...

    servlet3.0

    Servlet 3.0是Java Servlet规范的一个重要版本,它在原有的Servlet 2.x基础上引入了多项新特性,极大地提升了Web应用程序的开发效率和灵活性。在这个版本中,servlet-api.jar作为核心库,包含了运行Servlet应用所...

    servlet运行原理及生命周期.pdf

    #### 二、Servlet 的启动与加载过程 当第一次访问一个特定的 URL 时,服务器会根据该 URL 的映射关系查找并加载对应的 Servlet 实例。这一过程通常涉及以下几个步骤: 1. **判断是否为首次请求**:服务器接收到...

    servlet相关的实例2(共3包)

    servlet相关的实例2 3 servlet相关的实例2 servlet相关的实例2

    servlet-api.rar_java servlet_servlet api_servlet-api

    这些内容在servlet3.txt、servlet2.txt和servelt1.txt文件中应该有详细介绍,包括具体方法的使用示例、配置示例以及最佳实践。通过学习这些文档,开发者可以更好地理解和使用Servlet API,从而高效地开发Java Web...

    利用servlet技术实现一个简单的聊天室

    (2) 掌握servlet编程基本技能 实验内容及要求 1. 利用servlet技术实现一个简单的聊天室,实现多人同时交流。当发送聊天信息时,信息窗口刷新。信息窗口显示发言人的姓名以及发言的内容。在进入聊天室之前需要进行...

    servlet-api.jar

    - 随着Java EE的演进,Servlet API也经历了多个版本的更新,如Servlet 2.x、3.x、4.x,每次升级都引入了新的特性和性能优化。 综上所述,servlet-api.jar对于理解Java Web开发至关重要,它构成了Web应用与服务器...

    javax.servlet jar包---解决找不到javax.servlet.*等问题

    2. **javax.servlet包中的主要类和接口** - `Servlet`: 这是所有Servlet的基类,定义了Servlet的基本行为,如初始化、服务和销毁方法。 - `GenericServlet`: 一个抽象Servlet类,实现了Servlet和ServletConfig接口...

Global site tag (gtag.js) - Google Analytics