文档章节

NOTE:Jsp and Servlet

猪刚烈
 猪刚烈
发布于 2014/10/12 11:41
字数 1548
阅读 8
收藏 0

2007-4-13
____________________________________________________________________________________________
1.web服务器用于处理HTTP请求,而应用服务器则用于提供和web应用相关的服务
2.Servlet是利用HttpServletRequest类的getParameter()方法来取得网页传来的数据.不过
  数据通过HTTP协议传输时会被转码,因此在润滑剂地,必须再做转码的工作,才能正确地接收到
数据.

2007-4-16
____________________________________________________________________________________________
1.关于response.sendRedirect(String str)

2.关于response.setHeader(String str1,String str2)

3.session对象不像其他的隐含对象,可以在任何的JSP网页中使用,如果在JSP网页中,
page指令的属性session设为false时,使session对象就会产生编译错误.

4.关于pageContext
默认情况下,pageContext的作用域是其所在网页,但是它的功能远不止此.
一方面它能够读取和设置四种作用域不同的对象的属性(通过在它的setAttribute()和getAtrribute()
方法的中添加一个int型参数,来指定其读取和设置的属性所处的域)
另一方面它还具有取得当前页面中session/request/response/application隐含对象的能力!

2007-4-17
____________________________________________________________________________________________
1.关于http的请求与响应的

http作用一种非常简单的通信模型:即请求与响应模式.
客户端需要获取资源或申请服务时,它会向服务器发送一个请求,然后服务器接受请求,给出一个响应.
在http中请求与响应都有固定的形式:

对于一个请求它主要包含一个请求行和一个请求头标和一个请求体.如:

GET /index.html HTTP/1.1 /*请求行*/

Host: www.gefionsoftware.com /*请求头标*/
User-Agent: Mozilla/5.0 (Windows; U; Win 9x 4.90; en-US; rv: 1.0.2)
Accept: image/gif, image/jpeg, image/pjpeg, image/png, */*
Accept-Language : en
Accept-Charset : iso-8859-1,*,utf-8

对于一个响应,它主要包含一个响应行/一个响应头标/和一个可选的响应体(例如一段html代码)

HTTP/1.1 200 OK //响应行,其中200为响应代码,它标示了响应的状态,

Last-Modified: Mon, 20 Dec 2002 23:26:42 GMT //以下为响应头标
Date: Tue, 11 Jan 2003 20:52:40 GMT
Status: 200
Content-Type: text/html
Servlet-Engine: Tomcat Web Server/5.0
Content-Length: 59
   
<html> //以下为响应体
  <body>
    <h1>Hello World!</h1>
  </body>
</html>

2.关于请求的参数的传递方法
在一个请求中,有用的请求信息就是请求参数,它是一种map,由键-值对构成.
这些参数的传递方法有两种:GET和POST.
对于这两种方法的不同之处在于:
1) GET方法将参数转换为查询字串,把它们加在指定的URL之后,中间有用问题连接,然后传送至
指定的程序做处理.
2) POST方法将参数做为请求体的一部分传递出去.在URL中看不到相关的信息.
一般来说get方法用于传送信息量较少的请求(少于255个字符)
而POST而用于传送信息量很大的请求.另外在传递用户名称和密码时,为防止它们出现在URL
中,应使用POST方法.

3.所有的控件必须放在<form>.....</form>之中.


2007-4-19
_____________________________________________________________________________________________________________________
1.关于jsp指令.(page/include/taglib)

a directive doesn't directly affect the content of the response sent to the browser, but it tells the container how it should handle the page

一个jsp指令并不会影响送至浏览器的响应的具体内容,但是它会告诉容器应该如何处理这个页面

 

2009-8-10

 

 

1.关于Servlet的生命同期

The servlet is normally
created when a user first invokes a URL corresponding to the servlet, but you
can also specify that the servlet be loaded when the server is first started。

Servlet默认是延迟加载的,即只有请求第一次委派到这个Servlet上时,Servlet容器才会创建这个Servlet的实例,然后调用init方法进行初始化。此后再有请求到达时,容器会新起一个线程或是从线程池中分配一个闲置线程,在该线程中进行service方法,而service方法的主要工作就是查看HTTP请求,找出是由哪种方法提交的请求(比如:GET,POST等等),然后调用相应的doXXX方法处理请求。

以下servlet生命周期示意图:

 

2.关于Servlet的类层次结构

 

3.关于HttpServletRequest和HttpServletResponse

 

Q: Who implements the interfaces for HttpServletRequest and HttpServletResponse? Are those classes in the API?
A: The Container, and No. The classes aren’t in the API because they’re left to the vendor to implement. The good news is, you don’t have to worry about it. Just trust that when the service() method is called in your servlet, it’ll be handed references to two perfectly good objects that implement HttpServletRequest and HttpServletResponse. You should never care about the actual implementation class name or type. All you care about is that you’ll get something that has all the functionality from HttpServletRequest and HttpServletResponse.
In other words, all you need to know are the methods you can call on the objects the Container gives you as part of the request! The actual class in which they’re implemented doesn’t matter to you—you’re referring to the request and response objects only by the interface type.

 

记住:HttpServletRequest和HttpServletResponse都是接口,平台API中没有任何这两个接口的实现类,它们的实现类都是由Servlet容器定义和创建的,对于开发人员来说,并不需要了解这些,只要使用接口就OK了。

 

4.为什么会有GenericServlet 、ServletRequest 、 ServletResponse?而不是只保留http打头的那些对应类呢?

Q: I’m still confused about why there’s a GenericServlet and ServletRequest and ServletResponse. If nobody’s doing anything except HTTP servlets... then what’s the point?
A: We didn’t say nobody. Somebody, somewhere, one could imagine, is using the servlet technology model without the HTTP protocol. Just nobody we’ve met personally or read about. Ever.
Still, the flexibility was designed into the servlet model for those who might want to use servlets with, say, SMTP or perhaps a proprietary custom protocol. The only support built-in to the API, though, is for HTTP, and that’s what virtually everyone’s using.

原因在于:原则上讲Servlet技术并不只是单单同http协议工作的,理论上讲Servlet能和应用层的各种协议工作,比如SMTP,FTP,Talnet等等。这就是设计GenericServlet 、ServletRequest 、 ServletResponse的用意,可以由他们扩展出像FTPServlet,FTPRequest这样的类来,使得Servlet可以和其他应用层协议工作。

 

 

 

5.关于Servlet生命周期和Request的重点:

 

本文转载自:http://blog.csdn.net/bluishglc/article/details/4429942

共有 人打赏支持
猪刚烈
粉丝 22
博文 708
码字总数 110
作品 1
海淀
程序员
私信 提问
tomcat 5.5 部署项目报错 关于Filter的错误。。

我在tomcat7.0部署没不报错,但是再tomcat5.5就会报错。。 listener.ContextListener UrlRewriteFilter org.tuckey.web.filters.urlrewrite.UrlRewriteFilter logLevel WARN UrlRewriteFilte......

庄泽锐
2014/03/06
1K
5
oscache缓存的页面为乱码

项目用的oscache,用的web.xml配置 CharacterEncodingFilter org.springframework.web.filter.CharacterEncodingFilter encoding UTF-8   forceEncoding   true    CharacterEncodingF......

kkli
2014/03/13
378
1
Servlet 生命周期、工作原理

Servlet 生命周期:Servlet 加载--->实例化--->服务--->销毁。 init():在Servlet的生命周期中,仅执行一次init()方法。它是在服务器装入Servlet时执行的,负责初始化Servlet 对象。可以配...

ArlenXu
2015/01/24
0
0
Servlet生命周期与工作原理

Servlet生命周期分为三个阶段:   1,初始化阶段 调用init()方法   2,响应客户请求阶段  调用service()方法   3,终止阶段  调用destroy()方法 Servlet初始化阶段:   在下列时...

№贪↗恋♂
2012/08/08
0
0
(JavaEE-07)JSP.md

JSP JSP全称是Java Server Pages,它和Servlet技术一样,都是SUN公司定义的一种用于开发动态Web资源的技术。JSP的编写就像编写HTML一样简单,但是与HTML不同的是,在JSP中,可以编写Java代码...

_-Leon-_
2014/07/04
0
0

没有更多内容

加载失败,请刷新页面

加载更多

window下安装maven

1.下载软件包: 2.解压到当前的安装路径: D:\Maven3.5.3 3.添加环境变量: 新建一个名为:MAVEN_HOME 填写解压路径:D:\Maven3.5.3 打开path,添加:%MAVEN_HOME%\bin 确定即可。 4.验证环境...

狼王黄师傅
6分钟前
0
0
聊聊flink的FsCheckpointStorage

序 本文主要研究一下flink的FsCheckpointStorage CheckpointStorage flink-runtime_2.11-1.7.0-sources.jar!/org/apache/flink/runtime/state/CheckpointStorage.java /** * CheckpointStor......

go4it
28分钟前
2
0
makefile 常用函数

Linux 环境下的程序员如果不会使用GNU make来构建和管理自己的工程,应该不能算是一个合格的专业程序员,至少不能称得上是 Unix程序员。今天我们来学习下makefile的常用函数。 《GNU make》h...

科陆李明
今天
17
0
Android 报错 Could not find com.android.tools.build:aapt2:3.2.1-4818971.

报错信息: Could not find com.android.tools.build:aapt2:3.2.1-4818971.Searched in the following locations: file:/C:/Users/96110/AppData/Local/Android/Sdk/extras/m2reposito......

lanyu96
今天
9
0
我的Linux系统九阴真经

我的Linux系统九阴真经 在今天,互联网的迅猛发展,科技技术也日新月异,各种编程技术也如雨后春笋一样,冒出尖来了。各种创业公司也百花齐放百家争鸣,特别是针对服务行业,新型互联网服务行...

linuxCool
今天
34
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部