`

head first 学习笔记 JSP&Servlet--6

阅读更多
1. 不是所有的类都需要实现序列化接口,在同一个JVM中,且未写入存储设备中,不需要实现序列化接口。

2. 了解各种常见的监听器

3. 三种存储空间的比较

                应用上下文            请求                                  会话

生命周期        整个应用           单个请求(线程安全)                 会话连接(非线程安全)

可访问性        servlet,jsp,       持有这个会话的所有servlet          该请求相关的对象及相关监听器
                lisntener etc        jsp

适用于         整个应用共享的资源    与客户端会话有关的资源和数据      将模型数据从控制器传递到视图 
                DB连接,JNDI,
                 email

4. 上下文中值的存储设置需要设置为线程安全,对关键代码做同步,而不需要对所有方法做同步

例如:
@Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp)
        throws ServletException, IOException
    {
        PrintWriter out = resp.getWriter();
        out.println("test content attributes<br>");

        synchronized(getServletContext())
        {
            getServletContext().setAttribute("foo", "22");
            getServletContext().setAttribute("bar", "42");
           
        }

        out.println(getServletContext().getAttribute("foo"));
        out.println(getServletContext().getAttribute("bar"));
       
       
    }

  
   5. 会话中保持线程安全。同理,在获取会话的时候进行同步加锁

        HttpSession session = req.getSession();
        synchronized (session)
        {
            session.setAttribute("foo", "df");
            session.setAttribute("bar", "df");
        }
       
        out.println(session.getAttribute("foo"));
        out.println(session.getAttribute("bar"));


   6. 若是多个线程在运行某段servlet代码,那么该servlet的实例变量也不是线程安全的,所以尽量不要在servlet中定义实例变量。
      servlet只有一个实例,但是可以有多个线程  。若是为了解决多个线程访问同一个值的话,那么可以考虑设置在某一级别的作用域中 



  
分享到:
评论

相关推荐

    Head First Servlet & JSP

    《Head First Servlet & JSP》是一本非常受欢迎的IT教程,专为准备SCWCD(Sun Certified Web Component Developer)认证的读者设计。本书以其独特的学习风格,深入浅出地介绍了Servlet和JSP(JavaServer Pages)这两...

    head_first_servlet&jsp学习笔记

    【Servlet&JSP基础知识】 ...以上是`head_first_servlet&jsp`学习笔记的主要知识点,涵盖了Servlet和JSP的基础、Web应用架构、MVC模式、会话管理和JSP编程等多个方面,为深入理解和实践Servlet与JSP开发奠定了基础。

    Head First Servlets & JSP 学习笔记

    以上只是《Head First Servlets & JSP》一书中的部分核心知识点,实际内容还包括过滤器、监听器、MVC设计模式、JSTL等更广泛的主题,旨在帮助读者全面理解和掌握Servlet和JSP技术。通过深入学习,开发者能够构建高效...

    Head First Servlet JSP(中文版)

    《Head First Servlet JSP(中文版)》是一本专为初学者设计的Java Web开发教程,旨在通过生动有趣的方式引导读者快速掌握Servlet和JSP的核心概念和技术。这本书以易理解的图文并茂的形式,深入浅出地讲解了这两个重要...

    SCWCD学习笔记(Head First Servlets & JSP)

    SCWCD,全称Sun Certified Web Component Developer,是Java EE认证的一部分,主要涉及Servlet和JSP的...通过学习《SCWCD Exam Study Kit》和《Head First Servlets & JSP》,你可以深入理解这些概念并掌握实践技巧。

    jsp-servlet

    3. **书籍**:如《Head First Servlets & JSP》等经典书籍。 4. **开源项目**:参与开源项目,如GitHub上的相关项目,可以深入理解JSP-Servlet的实际应用。 总的来说,`jsp-servlet`是Java Web开发中的核心组成部分...

    JSP学习笔记(精简)

    ### JSP学习笔记精简版 #### 一、JSP简介 JSP(JavaServer Pages)是一种基于Java的服务器端动态网页技术标准。它通过在HTML文档中嵌入Java代码来实现动态页面的功能。与其他动态网页技术如ASP、PHP等相比,JSP具有...

    java jdk7 学习笔记

    再看第二本《java核心技术卷1-基础知识》,bruce eckel推荐的入门书籍。 第三本是《java核心技术卷2-高级特性》。 第四本是bruce eckel本人编写...第五本是《head first servlet &jsp》。 第六本是《head first ejb》。

    j2ee学习笔记(对于初学者而言如虎添翼)

    2. **教程和书籍**:选择一些经典教材,如《Head First Servlets & JSP》、《Java EE 7 Development with WildFly》等。 3. **在线课程**:参加Coursera、Udemy等平台的J2EE课程,通过视频教程和实战项目学习。 4. *...

    SCWCD 题库整理

    Head First 串讲笔记.pdf可能以易于理解的方式阐述了这些概念。 3. **JSTL**:JSTL是JavaServer Pages Standard Tag Library的缩写,它提供了用于处理常见任务的标签,比如XML处理、SQL查询、国际化和格式化。...

    八种编程语言毕业设计参考文献

    《JSP&Servlet学习笔记》**(2012):通过作者的学习笔记形式,详细记录了JSP和Servlet的学习过程和心得,适合自学。 7. **刘京华.《JavaWeb整合开发王者归来》**(2010):介绍了JavaWeb开发的各种技术,并且强调了...

    SCWCD(310-083)复习资料与题库

    SCWCD,全称为Sun Certified Web Component Developer,是...Head First系列的笔记总结以其生动易懂的方式,通常能帮助学习者更直观地理解复杂概念。因此,这些资源对于备考SCWCD 310-083考试的考生来说是非常宝贵的。

    这些年学习JAVA的资源,包括工具和资源包

    对于Java Web,推荐《深入分析Java Web技术内幕》、《Spring实战》和《Head First Servlets & JSP》。 实践项目是提升技能的关键。GitHub是开发者社区,其中的开源项目可以作为学习材料。你可以使用Astral这样的...

    21天学通java

    3. **HeadFirst设计模式(中文版)**: - 设计模式是软件工程中解决常见问题的模板,本书以一种易于理解的方式介绍了各种设计模式。 - 适合希望提高软件设计能力的学习者。 ### 实战案例与项目开发 1. **疯狂...

Global site tag (gtag.js) - Google Analytics