理解
Servlet:
1.
doGet()
和
doPost()
的区别:
参考资料
1
:
http://bbs.blueidea.com/viewthread.php?tid=891513&page=
l
servlet
它有一个
方法
默认
被执行
在接到
用户请求时
,
这个方法
就是
service()
它会
根据
用户端
具体的
请求类型
自动选择
使用哪种方法
反应
.
l
可以理解为针对
form
的
get ,post
来执行相应的
doGet,doPost
方法
l
form
的
get
和
post
有什么区别...这个是重点..嘿~~谢了..
l
get
是地址栏参数传递
,
并且没有正文体内容
,
它仅仅由一个方法语句和不同的请求标题域
组成
.
例如
:
GET /login.html?userName=Iori&passWord=12345 HTTP/1.0
User-Agent:Mozilla/4.51[en](WinNT;1)
Accept:image/gif,image/jpeg.image/pjpeg,*/*
上面是表单
选择方法为
get
时
点击提交事件
自动添加到
地栏的
,
当然
你也可以这自己写
这样的东东
.
post
的不同
在于
参数信息
保存在
正文体中
对用户
是不可见的
.
不像
get
方法
,
不能通过改写浏览器地址
来发送一个
post
请求
而前者可以
.
这样不安全的
一个
post
请求的
例子
如下
:
POST /login.html HTTP/1.0
User-Agent:Mozilla/4.51 [en] (WinNT;1)
Accept:image/gif,image/jpeg,image/pjpeg,*/*
Content-Length:34
Content-Type:application/x-www-form-urlencoded
userName=Iori&passWord=12345
看到了吧
数据被存到
正文体中了
这就是它们之间
最大的区别
.
参考资料
2
:
http://book.77169.org/data/web5409/20050328/20050328__3854464.html
问题:
1,
servlet
中处理的方法,有
doPost
()
doGet
()
中的方法,它们都有共同的参数,那就是
HttpServletRequest HttpservletResponse
对象,可是我不知道这两个方法有什么区别,什么该用
doPost()
什么时候该用
doGet()
呢??
2,
servlet
中的
service
()方法又是干什么的呢??它和
doPost() doGet()
又有什么关系呢?
回答:
l
get
、
post
等那些是指浏览器传给
Servlet
的方法,可以在
form
的
action
中指定,如
action="post",action="get"
之类的,默认使用
get
,如在浏览器直接输入
xxx?param1=xx¶m2=xx
,这种方式是
get
。
l
service()
和
doGet(),doPost()
的关系是:
servlet
先调用默认执行的
service()
方法,由它决定调用哪个处理方法。
l
我来解释一下什么是Get、Post吧:
1.Post方式就是通过表单的submit()方法提交到服务器的,当然servlet调用的是doPost();
2.Get方式就是自定义路径传参数,比如:../servlets/XX.jsp?parameterName=parameterValue&...
这种形式提交到服务器的,对应的是doGet()方法。这种方式一般有长度限制,打的参数多了提交不上去。
一般在servlet里面是不用管以哪知形式提交的,可以定义一个公共方法,在doPost()和doGet()方法里面都去调用,或者:doPost(){ doGet() }
l
get
方法我们可以在地址栏中直接输入参数也可以的
但
post
方法在地址栏中直接输入就不可以了
,
显示不出页面的
问题:
1. servlet
是一个接口吗?是不是接口就必须对其所有方法实例化,也就是说,一一实例化
init(),service(),doGet(),doPost()
和
destroy()
方法?
2. doGet()
和
doPost()
方法什么时候可以统一调用?比如
doPost(){ doGet();}.
既然使用
doPost()
方法不能从地址栏里输入参数访问,那么为什么
doPost()
可以直接使用
doGet()
方法呢?反过来,
doGet()
可是使用
doPost()
方法吗?
3. servlet
的方法有哪些?除了
init(),service(),doGet(),doPost()
和
destroy()
方法之外还有别的吗?如果只有这五个方法,那么是不是说,写一个
servlet
,就是要实现
doGet()
和
doPost()
方法?(因为
service
方法是默认一定启动的)
4. java
中接口和
c++
中虚函数的区别是什么?
参考资料
1
:
http://www.51dibs.com/html/2006/article/info4/a_11af20782d07b7b7.htm
什么是接口?
在
Java中,接口是不相关的对象相互交互的设备。Java接口与
协议很相似。实际上,其它面向对象语言也有Java的接口的
功能,但是它们称为协议。
Java接口定义了一套方法,但没有实现它们。一个实现接口的
类可以实现定义在这个接口中的所有方法,因此可以实现一定
的行为。
定义:接口是方法定义(而不实现)的被命名的集合。接口也
可以包括常量定义。
参考资料
2
:
http://www.umlchina.com/best/g30/u1144079.htm#1144178
l
Java中的接口和抽象类的区别,在于接口中没有属性,而且所有的方法都是抽象的,而抽象类可以有属性,而且可以有抽象方法,也可以有实现的方法。但两者都不能被实例化。
使用的时候,一个类可以继承多个接口,但只能继承一个抽象类。
l
抽象类与接口的重大区别就在于它能提供一部分实现,包括方法和属性。在某些情况下这是非常有用的,比如在
template method模式中。
你说“有了单纯的接口,就不应该使用抽象类了”,这种说法未免过于绝对了。
在逻辑上,抽象类表示了抽象的概念,它们的一部分行为需要在具体的子类中定义,但同时又定义了子类的一部分分共性的行为和属性。
l
我认为抽象类基本就是个“实现机制”。
我们在分析的时候会去管一个类是不是抽象类吗?不会吧?
它的意义在于提供了一个安全的机制,把一些类的共同行为抽象到一个“半成品”类中,又组织人们使用这个“半成品”类。
自己的理解:(结合例子来理解)
理解接口:
接口中没有属性,而且所有的方法都是抽象的;
比如说Servlet都是通过实例化接口实现的,servlet接口定义了init(),service(),doGet(),doPost(),destroy()方法,但是只是定义,没有去实现它们,实现一个servlet类时一一实现servlet接口定义的方法。
理解抽象类:
l
抽象类可以有属性,而且可以有抽象方法,也可以有实现的方法。
l
逻辑上,抽象类表示了抽象的概念,它们的一部分行为需要在具体的子类中定义,但同时又定义了子类的一部分分共性的行为和属性。
l
感觉是,接口没有属性也没有已经实现的方法,适合与servlet这种类型的类似的协议的机制;而抽象类提供了一个抽象和半成品的概念,定义了所有子类的共有属性,并实现了所有子类的共有方法,子类只需要在此基础上实现自己的特有属性和方法,更安全,更方便。比如一个典型的例子,关于“车”类,定义成一个抽象类,并把所有车的共有属性和方法都定义并实现了,子类(比如car)就可以在此基础上继承并定义和实现自己特有的属性和方法就可以了。没必要定义为接口,把共有的属性和方法也要依次各自实现。
5. java
中为什么没有多继承?你是如何理解的?
6.extends
与
implent
的区别?