`
todd841026
  • 浏览: 8180 次
  • 性别: Icon_minigender_1
  • 来自: 河北
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

J2EE总结--Servlet技术 我的所有随笔属于个人总结,有不足之处请回复指出

阅读更多
 

Servlet技术:

1.       什么是servlet

Servlet是一个java类,是一个提供基于协议请求和响应的java类;

2.       它的生命周期

      1.       启动服务器时就会实例化并加载servlet实例;

      2.       进行初始化:自动调用initServletConfig servletConfig)方法;

      3.       Servlet就绪:调用serviceHttpServletRequest requestHttpServletResponse response)方法(其   中     service   就是dopost()或doget()方法),这是客户提交时,自动调用的;

      4.       Servlet销毁:自动调用调用distory()

   注意:在实例化并加载servlet后,步骤二和四只调用一次,而步骤三,是在每次客户端发出请求时都调用;

3.       怎样部署一个servlet

Servlet类是必须在web.xml中注册才能使用的,例如,我有一个MyServlet类:

必须在web.xml中注册:

<web-app>

//-----------------------Servlet声明----------------------

           <servlet>

                 <servlet-name>myServlet</servlet-name>

                 <servlet-class>servletPakage.MyServlet</servlet-class>

      </servlet>

//------------------------Servlet注册(镜像)---------------

           <servlet-mapping>

                 <servlet-name>myServlet</servlet-name>

                 <url-pattern>myServletURL</ url-pattern >

      </servlet-mapping>

</web-app>

这样你在提交时的Url地址就是/myServletURL了;

4.       什么是serviceHttpServletRequest requestHttpServletResponse response)方法?

其中serviceHttpServletRequest requestHttpServletResponse response)方法包括两种:

      1.       dogetHttpServletRequest requestHttpServletResponse response)方法:

      这种方法被称为显式提交方法,主要原因是它的得到的参数放在url中,可以被看到,所以称为显示提      交;

      例如:有个表单:

      <form action=”/myServletURL?name=todd” method=”get”>

      </form>

      这种方法其request获得的参数就是你看到的name=todd

      例如:String s=request.getParameter(“name”);

            其结果s=”todd”;

      2.       dopostHttpServletRequest requestHttpServletResponse response)方法:

         这种方法被称为隐式提交方法,它的参数不会在url里得到,而是在请求数据体得到参数;

         例如:有个表单:

            <form action=”/myServletURL” method=”post”>

                     <input type=”text” name=”name” value=”todd”>

         </form>

      这种方法其request获得的参数就是表单体的name=todd

            例如:String s=request.getParameter(“name”);

            其结果s=”todd”;

5.       什么是ServletContext?

         ServletContext是一个接口,是WebApplication的视图,它的作用域时Application,它能访问Application中的初始化参数和属性,它不局限域一个Servlet,它属于整个Application

ServletContext的初始化参数:

web.xml中:

<web-app>

    <context-param>

<param-name>myBlog</param-name>

<param-value>www.blogjava.net/todd841026</param-value>

</context-param>

</web-app>

 这样在application中任意一个Servlet中可以得到这个参数,

例如:ServletContext sc = getServletContext ();

          String s = sc.getInitParameter(“myBlog”);

那么结果s就是”www.blogjava.net/todd841026”

6.       什么是ServletConfig

是单独的Servlet初始化配置;

例如:在web.xml

<web-app>

            <servlet>

                 <servlet-name>myServlet</servlet-name>

                 <servlet-class>servletPakage.MyServlet</servlet-class>

      </servlet>

      <init-param>

            <param-name>cache</param-name>

            <param-value>off</param-value>

</init-param>

</web-app>

在这个Servlet中:ServletConfig sc = getServletConfig();

                            String s = sc.getInitParameter(“cache”);

那么结果s就是off”;

7.       Servlet怎样处理多线程

在默认的情况下,单个Servlet实例是可以处理多个并发请求的,所以要考虑到多线程的共享同一对象的问题,例如:

//做个Servlet中产生了多少个object对象一个变量的例子

Private int count = 0 ;

Public void dopost(HttpServletRequest request,HttpServletResponse response){

           Object object = new Object() ;

           count++ ;

           System.out.println(“count = ” + count) ;

}

当有5个用户提交数据时,因为Servlet是处理多线程的,所以可能出现,第四个用户的程序已经执行了count++,而第五个用户刚执行完Object object = new Object() ,就会出现数据不一致性,因为当前有5object对象,但是count却是4

解决方案一:

Private boolean flag = false

Private int count = 0 ;

Public void dopost(HttpServletRequest request,HttpServletResponse response){

           synchronized(flag){

                    Object object = new Object() ;

                    count++ ;

}                

           System.out.println(“count = ” + count) ;

}

用同步程序块解决多线程的问题,这样在同一时刻就只能有一个访问该程序块了;

解决方案二:

Private int count = 0 ;

Public void dopost(HttpServletRequest request,HttpServletResponse response)

Implements SingleThreadModel{

           Object object = new Object() ;

           count++ ;

           System.out.println(“count = ” + count) ;

}

实现SingleThreadModel接口,可以解决多线程问题;

8.       什么是servlet过滤器?

也是一个java类,只是它实现了Filter这个接口;

9.       servlet过滤器的生命周期;

初始化:自动调用init(FilterConfig config)方法

执行:自动调用doFilter()方法;

销毁:自动调用destory()方法;

10.   servlet过滤器有什么用途?

      个人认为目前自己用到的Servlet过滤器的主要用途:是安全性检查

         当然过滤器在Servlet之前也可以修改请求,要是在Servlet之后,也可以修改响应; 

11.   servlet过滤器怎样部署?

web.xml中:

<web-app>

    <filter>

      <filter-name>myFilter</filter-name>

      <filter-class>filterPage.MyFilter</filter-class>

</filter>

<filter-mapping>

      <filter-name>myFilter</filter-name>

      <url-pattern>/Todd/*</url-pattern>

</filter-mapping>

</web-app>

这样就是说要访问WEB-INF下的Todd包下的jspServlet的话,就必须要先通过myFilter这个类;



田亮 2007-04-08 13:31 发表评论
分享到:
评论
2 楼 song218888 2008-08-18  
或者改成
synchronized(this){

                    Object object = new Object() ;

                    count++ ;

}                

1 楼 song218888 2008-08-18  
写的太好了,不过就是有点疑问,在servlet处理多线程的问题中
synchronized(flag){

                    Object object = new Object() ;

                    count++ ;

}                
这里的flag的初始化值为什么是false,这里设置为同步,flag初始化应该为true吧.

相关推荐

    精通J2EE--Eclipse、Struts、Hibernate及Spring整合应用案例全书

    《精通J2EE--Eclipse、Struts、Hibernate及Spring整合应用案例全书》是一本深入探讨J2EE Web应用程序开发的专业书籍。J2EE,全称Java 2 Platform, Enterprise Edition,是Java平台上用于构建企业级分布式应用程序的...

    geronimo-j2ee-management_1.1_spec-1.0.1-API文档-中文版.zip

    赠送jar包:geronimo-j2ee-management_1.1_spec-1.0.1.jar; 赠送原API文档:geronimo-j2ee-management_1.1_spec-1.0.1-javadoc.jar; 赠送源代码:geronimo-j2ee-management_1.1_spec-1.0.1-sources.jar; 包含...

    RAD--J2EE,Servlet and JSP

    ### 关于RAD-J2EE、Servlet与JSP的相关知识点 #### 一、J2EE Web组件简介 在探讨具体的Servlet和JavaServer Pages (JSP)之前,首先需要了解J2EE(Java 2 Platform, Enterprise Edition)框架的基本概念及其组成...

    J2EE------- 全面简介

    ### J2EE全面简介 #### 一、J2EE概念 Java 2 Platform, Enterprise Edition (J2EE) 是一种企业级应用开发平台标准,它基于 Java 语言,并且为开发分布式多层 Web 应用提供了强大的支持。J2EE 的主要目标是使企业级...

    J2EE-4-第4章 Servlet.ppt

    J2EE-4-第4章 Servlet.ppt

    精通J2EE--Eclipse、Struts、Hibernate及Spring整合应用案例(5) 随书源码

    &lt;精通J2EE--Eclipse、Struts、Hibernate及Spring整合应用案例&gt;源码和数据库。这是第5卷,请下载完7卷后解压。

    J2EE-API-7和J2EE-API-6中英文对照版

    **J2EE (Java 2 Platform, Enterprise Edition)** 是Java平台的一个版本,专注于服务器端的软件开发,尤其适合构建和部署分布式企业级应用程序。J2EE API是它的一部分,提供了丰富的接口和类库,用于开发各种功能,...

    精通J2EE--Eclipse、Struts、Hibernate及Spring整合应用案例完整源码.zip

    《精通J2EE--Eclipse、Struts、Hibernate及Spring整合应用案例》是针对Java企业级开发的一个深度学习资源,涵盖了四个核心的技术领域:Eclipse集成开发环境、Struts MVC框架、Hibernate对象关系映射(ORM)框架以及...

    J2EE -- 字符编码问题

    在J2EE(Java 2 Platform, Enterprise Edition)应用开发中,字符编码问题是非常常见的技术难题之一。如果处理不当,可能会导致数据乱码,影响用户体验甚至导致数据错误。本文将围绕如何解决J2EE中的字符编码问题...

    geronimo-j2ee-management_1.1_spec-1.0.1-API文档-中英对照版.zip

    赠送jar包:geronimo-j2ee-management_1.1_spec-1.0.1.jar; 赠送原API文档:geronimo-j2ee-management_1.1_spec-1.0.1-javadoc.jar; 赠送源代码:geronimo-j2ee-management_1.1_spec-1.0.1-sources.jar; 包含...

    J2EE完全参考手册-J2EE概述-pdf

    **J2EE完全参考手册-J2EE概述** Java 企业版(Java 2 Platform, Enterprise Edition,简称 J2EE)是 Oracle 公司推出的一种用于构建企业级分布式应用的平台。它提供了一套全面的框架和服务,使得开发人员能够创建、...

    j2ee视频servlet视频教程

    资源名称:j2ee视频servlet视频教程资源目录:【】j2ee视频servlet第0讲开山【】j2ee视频实战教程servlet第1讲初识【】j2ee视频实战教程servlet第2讲(上集)【】j2ee视频实战教程servlet第2讲(下集)【】j2ee视频实战...

    j2ee-1_4-doc-tutorial

    **Java 2 Platform, Enterprise Edition (J2EE) 1.4 教程文档** Java 2 Platform, Enterprise Edition(J2EE)1.4 是一个用于构建企业级分布式应用程序的平台,它提供了多种服务、API 和服务器端的运行时环境。这个...

    j2ee-1.4.jar

    j2ee-1.4.jar j2ee-1.4.jar j2ee-1.4.jar j2ee-1.4.jar

    中文版EXPERT-ONE-ON-ONE-J2EE-DEVELOPMENT-WITHOUT-EJB.part2.rar(3-3)

    中文版EXPERT-ONE-ON-ONE-J2EE-DEVELOPMENT-WITHOUT-EJB.part2.rar

    J2EE--tutorial.chm

    J2EE--tutorial.chm java jsp js python sql/plsql/oracle/mssql/mysql c# software

    The J2EE Tutorial-中文版.pdf

    ### J2EE教程知识点概述 #### 一、J2EE平台简介 - **定义与背景**:Java2 Enterprise Edition(J2EE)是Java平台的一个版本,专为开发企业级应用而设计。J2EE继承和发展了Java SE,并且特别强调了支持分布式计算...

    精通J2EE--Eclipse、Struts、Hibernate及Spring整合应用案例 PDF及光盘ISO

    《精通J2EE--Eclipse、Struts、Hibernate及Spring整合应用案例》是一本深入探讨J2EE企业级开发的权威书籍。它涵盖了Java企业级开发中的四个关键技术和框架:Eclipse集成开发环境(IDE)、Struts MVC框架、Hibernate...

    J2EE5 API Java Servlet2.5 DocumenTation chm英文版(5.04)

    该文档根据sun官方java_ee_sdk-5_04-...本次发布是官方1.5update4的chm版,各位如有需要官网5.0的API的chm版,请在后面留言,根据使用情况我再制作。 &lt;br&gt;J2EE 5-API Java Servlet2.5 DocumenTation(5.04).chm

Global site tag (gtag.js) - Google Analytics