文档章节

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
海淀
程序员
Servlet的一些细节--学习笔记

Servlet细节 1)浏览器访问的url-pattern只是一个符合格式的任意字符串,以/开头 2)一个Servlet的url-pattern可以是1个或多个,有二种形式; a).xx b)/xx/ 注意:/不能一起直接使用 3)/和....

知止内明
04/17
0
0
如何针对servlet写测试用例-包括jsp请求等

通过ServletUnit,可以写测试用例。 具体用法如下: As a testing tool, HttpUnit is primarily designed for "black-box" testing of web sites. In many cases that may be all you need; ......

毛朱
2012/11/30
0
0
Tomcat如何与Servlet对象进行交互

Tomcat 是Web应用服务器,是一个Servlet/JSP容器. Tomcat作为Servlet容器,负责处理客户请求,把请求传送给Servlet,并将Servlet的响应传送回给客户.而Servlet是一种运行在支持Java语言的服务器上...

KeepMoving
2015/03/09
0
0
访问WEB-INF目录中的JSP文件

方法1: 本来WEB-INF中的jsp就是无法通过地址栏访问的.所以安全.如果说你要访问这个文件夹中的jsp文件需要在项目的web.xml文件中去配置servlet格式差不多的配置就ok了。如下: [html] view p...

moz1q1
2015/03/31
0
0
Servlet 生命周期、工作原理

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

ArlenXu
2015/01/24
0
0

没有更多内容

加载失败,请刷新页面

加载更多

关于pip

我在更新pip的时候碰到的一些问题。 第一次安装,直接安装就ok了,所以也没研究,没想到后来由于安装了python2.x和python3.x之后出现了问题。 如果要将pip更新到最新版本需要指明是哪个版本的...

恰东
29分钟前
1
0
对硬盘进行分区时,GPT和MBR有什么区别

在Windows 8或8.1中设置新磁盘时,系统会询问你是想要使用MBR还是GPT分区。GPT是一种新的标准,并在逐渐取代MBR。 GPT带来了很多新特性,但MBR仍然拥有最好的兼容性。GPT并不是Windows专用的...

yizhichao
30分钟前
2
0
区块链教程btcpool矿池源码分析StratumServer模块解析

兄弟连区块链教程btcpool矿池源码分析StratumServer模块解析 核心机制总结 接收的job延迟超过60秒将丢弃 如果job中prevHash与本地job中prevHash不同,即为已产生新块,job中isClean状态将置为...

兄弟连区块链入门教程
31分钟前
1
0
JS中的异常捕获

JS中的异常捕获(目的:把抛出的错误捕获到,不让其阻断浏览器的继续执行) try{//需要执行的JS代码(可能会报错)}catch(e){//try中代码报错,会执行catch}finally{//不管try中的代...

NDweb
41分钟前
2
0
ObjectARX_AcDb2dPolyline复杂实体

1遍历:访问或者编辑复杂实体也需要通过特定的方式。 AcDb2dPolyline的顶点信息不能通过AcDb2dPolyline对象直接得到,需要遍历AcDb2dPolyline所包含的AcDb2dVertex对象: void IteratePolylin...

一个小妞
43分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部