`
whp0731
  • 浏览: 178869 次
  • 性别: 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应用程序开发的各种技术和实践。这本书的光盘源代码提供了丰富的示例和项目,旨在帮助读者深入理解Java Web开发的核心概念,并...

    Java Web编程宝典

    《Java Web编程宝典(十年典藏版)》是一本集技能、范例、项目和应用为一体的学习手册,书中介绍了应用Java Web进行程序开发的各种技术、技巧。全书分4篇,共24章,其中,第1篇为技能学习篇,主要包括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编程中,开发者需要掌握以下关键技术点: 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 网络编程技术

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

    Java Web编程技术

    Java Web编程技术是开发基于Web的应用程序的一种强大方法,它结合了Java语言的强大功能与Web的广泛可访问性。在Java Web开发中,开发者可以创建动态、交互式的网站,为用户提供丰富的用户体验。以下是对Java Web编程...

    Java Web高级编程pdf含下载地址和源码

    Java Web高级编程pdf含下载地址和源码,《Java Web高级编程:涵盖WebSockets、Spring Framework、JPA 》面向的读者是已经了解Java SE、SQL和基本的HTML,准备将他们的Java编码技能提升到更高水平的程序员。...

    java web编程 帮助文档大全

    Java Web编程是构建基于互联网应用程序的关键技术,涵盖了服务器端编程、客户端交互以及数据管理等多个方面。本资源包“java web编程 帮助文档大全”提供了四份重要的帮助手册,包括Struts2.0、Spring、DHTML以及...

Global site tag (gtag.js) - Google Analytics