`
whp0731
  • 浏览: 176071 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

java web 编程注意点

阅读更多

1、get和post的区别
表面上区别:get地址栏会显示参数内容。Servlet中doGet来处理。
本质区别:

http协议是基于(tcp的建立连接后),
http1.1可持续连接。(当过一段时间不再请求,会自动关闭)
http1.1可流水线请求。

http请求由三部分组成:请求行、消息报头、请求正文。

若上面用get方法的话,底层通过以下方式(表单直接附着在请求的资源的后面)
GET /test.html ?username=hello&word=123456 HTTP/1.1 (CRLF)

若通过POST,底层通过以下方式:
POST/login.jsp HTTP/1.1(CRLF)
Accept :Image/gif(CRLF)(...)
Host:www.sample.com(CRLF)
...
Cache-Control:no=cache(CRLF)
(CRLF)
username=hello&word=123456
所以它的表单信息附着在请求头最后的
的下一行的下一行。

http相应由三部分组成:状态行、消息报头、相应正文。

当你发生一个请求,开始行为请求行,当你发生一个相应,开始行为状态行

连接sohu
cmd输入命令行 telnet www.sohu.com 80
再将以下两命令复制到cmd命令行,两次回车
HEAD /index.html HTTP/1.1
Host: www.sohu.com

访问本地的一个测试的页面。
GET /web/result.jsp?username=hello&word=123456 HTTP/1.1
Host: localhost

2、关于HttpServlet中的Service,doGet,doPost方法的关系。
首先客户端提交一个请求,该请求首先到达了Service,然后由Service决定调用哪个do方法。

3、forward与redirect的区别
请求重定向request.sendRedirect(*.jsp)(地址栏改变,而且需要获得值丢失)(总体2个请求,2个响应)

请求转发(地址栏不变,对于客户端不知道后端处理过程)(总体一个请求,一个响应)Crequest.getRequestDispath(“/*.jsp”).forward(request,response)

4、关于servlet的生命周期
初始化阶段(init方法被调用),某一个客户端第一次访问该servlet,那么该servlet将被实例化,紧接着init方法被调用,注意:该init方法在servlet的整个生命周期仅执行一次。

服务阶段:(service方法被调用),客户端每发来一次请求,该service方法都要被调用一次。

销毁阶段:(tomcat关闭时,destroy方法被调用。)

5、关于初始化有两种方式:
1)如上,某一个客户端访问时。
2)可以在web.xml文件中,配置servlet,让服务器启动时就去初始化。
<load-on-startup>1</load-on-startup>
中间整数表示优先,1最先。

6、servlet的多线程

servlet默认是支持多线程的,而且servlet是单实例的(为了效率高,不用每次去生产实例)。(从上面的生命周期上仅实例化了一次也可以看出。)
所以当一个servlet中有一个成员变量name时,如果通过
http://localhost:8080/web/servletTest?name=zhangsan
http://localhost:8080/web/servletTest?name=lishi
他们有可能同时返回lishi

避免方法:将成员变量改成局部变量,如将变量放在doGet中,这样两个线程都有各自的name变量。可以参见我的另一篇博客:
http://whp0731.iteye.com/admin/blogs/358583


以上问题在struts1.0中也是存在的,如果我们一个action,也是要把变量放在excute里面,不要直接放在自己的action下,来避免上面的线程安全问题。
Struts2.0则没有这个问题,因为它对每次请求生产一个实例。

7、getParameter与getAttribute区别
getParameter()描述了服务器与客户端的关系。
getAttribute,在服务器中进行对象保存后取出的操作。返回一个对象。
setAttribute,与之对应。

getParameter,服务器从客户端得到信息,因此没有与之应的setParameter方法。

getParameter返回一个字符串

8、jsp--->servlet,而且只转化一次(单实例),所以第一次访问较慢。
<% ! int a=0;>会在servlet中转化为类的成员变量,
<%  int a=0;>会在servlet中转化为方法的局部变量。

9、session
session会有一个对应一个会话cookie(又叫session cookie)。是保持在浏览器进程里的。
所以你客户端如果关闭浏览器,客户端失去和服务sessionID联系,但是服务器端的sessionID还是存在的,若服务器端如tomcat的session生命设置30分钟,那么30分钟后才会自己销毁

还有一种方法,若会话cookie被用户禁用,系统会通过url重写来跟踪session。

http是无状态的,所以需要session,cookie来帮忙跟踪,才能更好实现网上购物等。

分享到:
评论

相关推荐

    Java Web编程宝典

    《Java Web编程宝典(十年典藏版)》是一本集技能、范例、项目和应用为一体的学习手册,书中介绍了应用Java Web进行程序开发的各种技术、技巧。全书分4篇,共24章,其中,第1篇为技能学习篇,主要包括Java Web开发环境...

    Java Web编程实战宝典(光盘源代码)

    《Java Web编程实战宝典》是一本面向初学者的编程指南,主要涵盖了使用Java语言进行Web应用程序开发的各种技术和实践。这本书的光盘源代码提供了丰富的示例和项目,旨在帮助读者深入理解Java Web开发的核心概念,并...

    Java Web编程实战宝典 01

    Java Web编程实战宝典Java Web编程实战宝典Java Web编程实战宝典Java Web编程实战宝典

    Java Web编程实战宝典 03

    Java Web编程实战宝典Java Web编程实战宝典Java Web编程实战宝典Java Web编程实战宝典Java Web编程实战宝典

    Java Web编程宝典光盘 源码

    【Java Web编程宝典光盘 源码】 在Java Web开发领域,源码学习是提升技能的关键途径。《Java Web编程宝典光盘》提供的源码资源为开发者提供了丰富的学习素材,帮助深入理解Web应用的构建过程。本书可能涵盖了从基础...

    Java Web编程宝典源码

    《Java Web编程宝典源码》是一份专为JavaWeb初学者设计的综合学习资源,它涵盖了服务器配置、框架应用以及数据库操作等多个关键领域。这个压缩包包含了一系列的文本文件和项目目录,旨在帮助初学者逐步理解并掌握...

    Java Web编程宝典源代码

    《Java Web编程宝典》是一本深入探讨Java在Web开发领域的专著,涵盖了从基础到高级的诸多主题。源代码提供了书本理论知识的具体实践示例,帮助读者更直观地理解Java Web编程的核心概念和技术。这里我们将详细解析...

    java web编程习题解析

    总的来说,Java Web编程涉及了从URL解析、HTTP通信、Servlet生命周期管理、JSP页面渲染到Web应用程序的部署和配置等多个知识点。通过理解和熟练运用这些概念,开发者可以构建出功能丰富的、响应式的Web应用程序。

    Java网络编程 JAVA web开发实例讲解 宠物分类展现web项目 实战讲解 全套PPT课件 共10个章节.rar

    Java网络编程 JAVA web开发实例讲解 宠物分类展现web项目 第01章 项目背景知识(共15页).ppt Java网络编程 JAVA web开发实例讲解 宠物分类展现web项目 第02章 用HTML+CSS实现宠物分类展现静态网页版本(共44页)....

    基于 java web编程爱好者博客地带设计与实现.zip

    基于 java web编程爱好者博客地带设计与实现.zip基于 java web编程爱好者博客地带设计与实现.zip基于 java web编程爱好者博客地带设计与实现.zip基于 java web编程爱好者博客地带设计与实现.zip基于 java web编程...

    java web编程宝典

    java web各种经典开发案例, 适用于初级或中级开发,循序渐进!

    《Java Web编程宝典(十年典藏版)》光盘源码

    《Java Web编程宝典(十年典藏版)》是一本集技能、范例、项目和应用为一体的学习手册,书中介绍了应用Java Web进行程序开发的各种技术、技巧。全书分4篇,共24章,其中,第1篇为技能学习篇,主要包括Java Web开发环境...

    java web 编程技术

    在Java Web编程中,开发者需要掌握以下关键技术点: 1. **Servlet**:Java编写的服务器端程序,用于处理HTTP请求并生成响应。 2. **JSP**:将HTML和Java代码结合在一起的视图技术,简化了页面的开发。 3. **MVC**...

    JAVA WEB编程从入门到实践.3

    以上内容构成了"JAVA WEB编程从入门到实践"的主要学习路径,通过深入理解这些知识点,并结合实际项目练习,可以成为一名熟练的Java Web开发者。提供的压缩文件"JAVA WEB编程从入门到实践.part08.rar"、"JAVA WEB编程...

    Java EE Web编程(Eclipse 平台)

    本资料“Java EE Web编程(Eclipse 平台)”可能涵盖了以下几个关键知识点: 1. **Eclipse IDE的使用**:Eclipse作为开源的Java开发工具,拥有丰富的插件支持,对于Java EE开发,它可以提供诸如Java服务器视图、...

    Java Web编程实战宝典-高清-完整目录-2014年9月

    关于Java Web编程的知识点,我将基于标题和描述,对Java Web编程的基本概念、重要技术和应用场景进行详细介绍。 Java Web编程是一种用于开发基于Web应用程序的技术,它结合了Java的跨平台特性与Web应用的动态交互...

    Java EE Web编程(Eclipse平台)源文件

    在Java EE Web编程中,我们通常涉及以下知识点: 1. **Servlet**:Servlet是Java EE中的核心组件,用于处理HTTP请求。它扩展了Web服务器的功能,可以生成动态内容。在Eclipse中,我们可以创建Dynamic Web Project来...

    《java web编程宝典-十年典藏版》 源码 5

    《Java Web编程宝典-十年典藏版》是Java Web开发领域的一本经典教程,它深入浅出地讲解了如何使用Java技术进行Web应用程序的开发。这个源码包包含了作者精心设计的实例代码,旨在帮助读者更好地理解和掌握Java Web...

    java web 网络编程技术

    根据给定的文件信息,我们将深入探讨“Java Web网络编程技术”这一主题,并结合描述中的其他元素如C#编译与连接以及网页制作等进行详细分析。 ### Java Web网络编程技术 #### 一、Java Web简介 Java Web是指用Java...

    java Web 编程宝典(十年典藏版) 光盘源码

    在深入探讨这些知识点之前,我们先来理解一下Java Web编程的基本概念。 Java Web编程主要指的是使用Java技术栈进行Web应用开发的过程。它涵盖了诸如Servlet、JSP(Java Server Pages)、JavaServer Faces(JSF)、...

Global site tag (gtag.js) - Google Analytics