??xml version="1.0" encoding="utf-8" standalone="yes"?>
用request.setAttribute("name",Object),request.getAttribute("name");
或者session.setAttribute("name",Object),session.getAttribute("name");
注意问题Q?br />
才能׃nrequest中数?br />
基础问题Q?
1Q所有再面提交的数据,在ACTION里只能通过request.getParameter( or values).
2Q要想通过attribute传输数据Q必M持在同一个request中,不论中{?jin)几ơ(forwardQ?
另:(x)参考资料:(x)
h一下关于request.setAttribute()的用?谢谢.[?在线{?]
http://www.aygfsteel.com/flysky19/admin/EditArticles.aspx
问题Q?br />我在myServlet.java的doGet()中写?
request.setAttribute("a","111");
response.sendRedirect("a.jsp");
我的doPost()Ҏ(gu)是这样写?
doGet(request, response);
我在a.jsp中写?
String aValue="";
if(request.getAttribute("a")!=null){
(tng) aValue= String.valueOf(request.getAttribute("a"));
(tng) }
out.println(aValue);
可request.getAttribute("a")L取不到? 是我错误C用了(jin)request.setAttribute()Ҏ(gu)? 如果惌servletljsp面传一些值应该通过什么方法呢? 谢谢~
解决Q?br />response.sendRedirect("a.jsp");
换成
request.getRequestDispatcher("a.jsp").forward(request,response);
才能׃nrequest中数?br />
]]>
面间传递数?
客户端向服务?
post方式(form,隐藏?和get方式(URL,aa.jsp?param1=abc);
服务器端:
request,session,cookie,application
URL和aa.jsp?paraml=abc是一回事Q后者是前者的一个例?同样的隐藏字D也是指包含在form中的隐藏字段
(tng)
q有Q可以用javabean一ơ性把前个界面的D动赋到另一个界面?/font>
request.getParameterValues("shrdCategory")取得同名的复选框的各个value?/font>
Q然后数l遍历,取出各个shrdCategory[i]卛_Q?/font>
代码如下所C:(x)
环境保护<input type="checkbox" name="shrdCategory" value="环境保护">
国民l济<input type="checkbox" name="shrdCategory" value="国民l济">
String[] shrdCategoryQrequest.getParameterValues("shrdCategory");
for (int i=0;i<shrdCategory.Length;i++){
System.out.println(shrdCategory[i]);
}
但是要注意,上面q段代码jspq行时报505错误Q!Z么呢Q?br />因ؓ(f)刚进入页面时Q没有复选框无|shrdCategory为nullQ这时不能?/font>
shrdCategory[i]Q?/font>
解决Q?br />加上非null判断Q?br />String[] shrdCategoryQrequest.getParameterValues("shrdCategory");
if (shrdCategory!=null){
for (int i=0;i<shrdCategory.Length;i++){
(tng) System.out.println(shrdCategory[i]);
(tng) }
}
ok!
板桥里h http://www.jdon.com 2003/02/12
目前所有的B/Spȝ应用可以分ؓ(f)Q有状?statefull)和无状?stateless)两大cd?有状态是指在整个pȝ的处理过E中要保留记住一些信息,而无状态则相反Q每ơrequest都是独立的连接,不需要在每个request之间׃n数据{等?
对于q两U应用,通常W一考虑是性能要最优,性能是我们选择IT技术的主要依据之一?/p>
到最大化的性能Q对于JavapȝQ以前通常的作法是使用对象池,q样节约对象生成时的性能开销Q也是说系l启动时Q预先生成一定数目的对象实例在内存(sh)Q需要用时Q从对象池中取出实例Q用完,归还对象池,对于有状态的应用Q可以用相x(chng)久化QpersistenceQ策略来保存状态?/p>
下一步,如何q行讉K对象池将是非帔R要,java的多U程技术ؓ(f)我们提供?jin)实现可能,U程的创建销毁也是可能非常耗时的,那么Q无疑象使用对象池一P我们必须使用U程池来实现多线Eƈ行计的最优化?/p>
使用U程池和对象池,每次客户端请求发生一ơ就从线E池中借用一个线E,处理完这个请求就线E返回线E池Q同P使用U程快速的讉K对象Q对象也是从对象池中借用Q用完就q回对象池?整个q样的架构设计在性能上是最优的?/p>
有了(jin)性能保证Q安全机制、事务机制、集?cluster)技术也是选择IT技术的主要依据?/p>
J2EE是q样一个实Cq多U考量的综合标准框架系l,在具体用中Q也许我们对所有这些考量的要求ƈ不都一样重视,比如Q如果纯_追求性能是第一Q可以忽视事务机Ӟ那么Q完整的J2EE技术也许就q不适合你?/p>
那么我们先看看J2EE是如何从性能上保证我们的应用pȝ以最快速度q行的,也就是说J2EE中必然应该有上述U程池和对象池的实现技术,servlet实际是基于线E池的更好的U程容器QEJB是基于对象池的更好的对象容器?/p>
看看Servler的架构图Q?/p>
(tng)
当client1发生h时servlet容器?x)从U程池中分配一个线E给q个request.
再看看EJB的架构图Q?/p>
instance Pool作ؓ(f)一个对象实例池Q维持着EJB实例Q当然这个对象池是用生命周期的,单的?EJB=对象?q程对象?/p>
但是QEJBq整合了(jin)相当的其它增强功能,如安?事务机制{,q些对于一般应用都是必需的,当然你还必须Ҏ(gu)你的需要来选择是否使用J2EEQ如果你的应用对安全 事务机制没有要求Q直接用线E池和对象池技术肯定获得最好的性能?/p>
所以,Ҏ(gu)Servler和EJB的原理,我们已经可以规划我们的应用,什么可以放在servletQ或什么需要放在EJB中实玎ͼ(x)
U程的本质决定了(jin)servlet只适合一些轻量的应用Q如分析单XML文, 通过JDBC讉K数据源,使用JMS或JavaMail处理单的信息MessageQ或使用JTS/JTA处理单的事务机制Q注意这些用词都??的,一旦复杂了(jin)Q就要用EJB?jin)?/p>
下面从客L(fng)和服务器端两个方面来具体考量q两个技术的使用Q这里的客户端不一定是指最l客L(fng)Q因为J2EE是多层结构,中间层可能在多个服务器上实现Q如果一个服务器上的服务是供另外一个服务器上的应用讉K的,那么后者我们也UCؓ(f)客户端?/p>
Ҏ(gu)应用的复杂程度和要求不同Q分下列情况Q?/p>
1.在WEB层可以实现的一些应?/p>
如果你的pȝ没有很复杂的事务处理Q或讉K很多企业原有的资源,那么可以借助javabeanq样的一些Help性质的类来实C的应用,但是Q这L(fng)Ҏ(gu)不是最q净clean, 最有效efficient, 或最有扩展性的scalable?/p>
否则Q将所有核?j)计放|入EJB中?/p>
2.所有的复杂商务计算核心(j)都在EJB中完?/p>
如果你的客户端和服务器端之间有防火墙Q那么目前能够无障碍通过防火墙的协议只有Http?Web Service也是Zhttp是q个道理)Q既然用http?jin),而Servlet是基于Http协议的,那么需要通过servlet来访问EJBQ这是我们最普遍的应用情c(din)?/p>
但是Q如果你的客L(fng)和服务器端可以放|在一个网l内Q之间没有防火墙Q那么就不必使用ServletQ直接用Java调用RMI来访问EJBQ这h能是最好的Q这时的Servlet大概只有用于控制Jsp的页面的输出?MVC模式中的控制作用)?/p>
如果是非java客户端,可以通过CORBAlg来访问EJB?/p>
3.如果你的应用寚w度要求很高Q要求非常快Q对于事务处理等斚w几乎无要?/p>
直接使用J2SEQ加上线E池和对象池技术,会(x)使你的javapȝ性能发挥极致。Jakarta.Apache.org有这两种技术的源码Q线E池可以从Servlet容器Tomcat的源码中发现?/p>
2. (tng) (tng) (tng) (tng) (tng) (tng) 修改 MapServlet.java Q?/span>
l?/span> search Q)(j)Ҏ(gu)多添加一个参?/span> tableName Q把 tableName 的gl需要它?/span> getViewData(String tableName) 函数Q?/span>
实现 doGet() Ҏ(gu)Q多接受一个参?/span> tableName Q把 tableName 传给 search Q)(j)函数 ;
Q即Q?/span> String tableName =request.getParameter(“tableName?; search(request,type,tableName Q?/span> );
3. (tng) (tng) (tng) (tng) (tng) (tng) index2.jsp
?/span> type ?/span> tableName 的gl?/span> MapServlet Q?/span>
Var url=?BasePlatform_project/servlet/MapServlet ?
Var pars=’type= ?par+?amp;tableName?tableName;
( 注:(x)路径为:(x) url?pars; 卻I(x) /servlet/MapServlet Q?/span> ’type= ?par+?amp;tableName?tableName )
问题Q?/span>
Jsp,servlet,java
cM间的传递有待学?/span>
(tng)
1. (tng) (tng) (tng) (tng) (tng) (tng) doGet() ?/span> doPost() 的区别:(x)
参考资?/span> 1 Q?/span> http://bbs.blueidea.com/viewthread.php?tid=891513&page=
l (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng)
servlet
它有一?/span>
Ҏ(gu)
默认
被执?/span>
在接?/span>
用户h?/span>
,
q个Ҏ(gu)
是
service()
它会(x)
Ҏ(gu)
用户?/span>
具体?/span>
hcd
自动选择
使用哪种Ҏ(gu)
反应
.
l (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng)
可以理解为针?/span>
form
?/span>
get ,post
来执行相应的
doGet,doPost
Ҏ(gu)
l (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng)
form
?/span>
get
?/span>
post
有什么区别.Q.q个是重点.Q嘿~~谢了(jin)Q.
l (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng)
get
是地址栏参C?/span>
,
q且没有正文体内?/span>
,
它仅仅由一个方法语句和不同的请求标题域
l成
.
例如
:
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,*/*
上面是表?/span>
选择Ҏ(gu)?/span>
get
?/span>
点击提交事g
自动d?/span>
地栏?/span>
,
当然
你也可以q自己写
q样的东?/span>
.
post
的不?/span>
在于
参数信息
保存?/span>
正文体中
对用?/span>
是不可见?/span>
.
不像
get
Ҏ(gu)
,
不能通过改写览器地址
来发送一?/span>
post
h
而前者可?/span>
.
q样不安全的
一?/span>
post
h?/span>
例子
如下
:
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
看到?jin)?/span>
数据被存?/span>
正文体中?/span>
q就是它们之?/span>
最大的区别
.
参考资?/span>
2
Q?/span>
http://book.77169.org/data/web5409/20050328/20050328__3854464.html
问题Q?/span>
1Q?span style="FONT: 7pt 'Times New Roman'"> (tng) servlet 中处理的Ҏ(gu)Q有 doPost Q)(j) doGet Q)(j) 中的Ҏ(gu)Q它们都有共同的参数Q那是 HttpServletRequest HttpservletResponse 对象Q可是我不知道这两个Ҏ(gu)有什么区别,什么该?/span> doPost() 什么时候该?/span> doGet() 呢?Q?/span>
2Q?span style="FONT: 7pt 'Times New Roman'"> (tng) servlet 中的 service Q)(j)Ҏ(gu)又是q什么的呢?Q它?/span> doPost() doGet() 又有什么关pdQ?/span>
回答Q?/span>
l (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) get ?/span> post {那些是指浏览器传给 Servlet 的方法,可以?/span> form ?/span> action 中指定,?/span> action="post",action="get" 之类的,默认使用 get Q如在浏览器直接输入 xxx?param1=xx¶m2=xx Q这U方式是 get ?/span>
l (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) service() ?/span> doGet(),doPost() 的关pLQ?/span> servlet 先调用默认执行的 service() Ҏ(gu)Q由它决定调用哪个处理方法?/span>
l (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng)
我来解释一下什么是Get、Post吧:(x)
1.Post方式是通过表单的submit()Ҏ(gu)提交到服务器的,当然servlet调用的是doPost();
2.Get方式是自定义\径传参数Q比如:(x)../servlets/XX.jsp?parameterName=parameterValue&...
q种形式提交到服务器的,对应的是doGet()Ҏ(gu)。这U方式一般有长度限制Q打的参数多?jin)提交不上去?br />
一般在servlet里面是不用管以哪知Ş式提交的Q可以定义一个公共方法,在doPost()和doGet()Ҏ(gu)里面都去调用Q或者:(x)doPost(){ doGet() }
l (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng)
get
Ҏ(gu)我们可以在地址栏中直接输入参数也可以的
?/span>
post
Ҏ(gu)在地址栏中直接输入׃可以?/span>
,
昄不出面?/span>
问题Q?/span>
1. servlet 是一个接口吗Q是不是接口必d其所有方法实例化Q也是_(d)一一实例?/span> init(),service(),doGet(),doPost() ?/span> destroy() Ҏ(gu)Q?/span>
2. doGet() ?/span> doPost() Ҏ(gu)什么时候可以统一调用Q比?/span> doPost(){ doGet();}. 既然使用 doPost() Ҏ(gu)不能从地址栏里输入参数讉KQ那么ؓ(f)什?/span> doPost() 可以直接使用 doGet() Ҏ(gu)呢?反过来, doGet() 可是使用 doPost() Ҏ(gu)吗?
3. servlet 的方法有哪些Q除?/span> init(),service(),doGet(),doPost() ?/span> destroy() Ҏ(gu)之外q有别的吗?如果只有q五个方法,那么是不是说Q写一?/span> servlet Q就是要实现 doGet() ?/span> doPost() Ҏ(gu)Q(因ؓ(f) service Ҏ(gu)是默认一定启动的Q?/span>
4. java 中接口和 c++ 中虚函数的区别是什么?
参考资?/span> 1 Q?/span> http://www.51dibs.com/html/2006/article/info4/a_11af20782d07b7b7.htm
什么是接口Q?/span>
Java接口定义?jin)一套方法,但没有实现它们。一个实现接口的
cd以实现定义在q个接口中的所有方法,因此可以实现一?br />的行为?/span>
参考资?/span> 2 Q?/span> http://www.umlchina.com/best/g30/u1144079.htm#1144178
l (tng) (tng) (tng) (tng) (tng) (tng) (tng) l (tng) (tng) (tng) (tng) (tng) (tng) (tng) l (tng) (tng) (tng) (tng) (tng) (tng) (tng) 我认为抽象类基本是?span lang="EN-US">“实现机制”?o:p>
我们在分析的时候会(x)ȝ一个类是不是抽象类吗?不会(x)吧?
它的意义在于提供?jin)一个安全的机制Q把一些类的共同行为抽象到一个“半成品”类中,又组lh们用这个“半成品”类?o:p>
自己的理解:(x)Q结合例子来理解Q?span lang="EN-US">
理解接口Q?span lang="EN-US">
接口中没有属性,而且所有的Ҏ(gu)都是抽象的; 比如?span lang="EN-US">Servlet都是通过实例化接口实现的Qservlet接口定义?jin)init(),service(),doGet(),doPost(),destroy()Ҏ(gu)Q但是只是定义,没有d现它们,实现一个servletcL一一实现servlet接口定义的方法?o:p>
理解抽象c:(x)
l (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng)
抽象cd以有属性,而且可以有抽象方法,也可以有实现的方法?/span>
l (tng) (tng) (tng) (tng) (tng) (tng) (tng)
l (tng) (tng) (tng) (tng) (tng) (tng) (tng) servletq种cd的类似的协议的机Ӟ而抽象类提供?jin)一个抽象和半成品的概念Q定义了(jin)所有子cȝ共有属性,q实C(jin)所有子cȝ共有Ҏ(gu)Q子cd需要在此基上实现自qҎ(gu)属性和Ҏ(gu)Q更安全Q更方便。比如一个典型的例子Q关于“R”类Q定义成一个抽象类Qƈ把所有R的共有属性和Ҏ(gu)都定义ƈ实现?jin),子类Q比如carQ就可以在此基础上(h)承ƈ定义和实现自q有的属性和Ҏ(gu)可以了(jin)。没必要定义为接口,把共有的属性和Ҏ(gu)也要依次各自实现?o:p>
5. java 中ؓ(f)什么没有多l承Q你是如何理解的Q?/span>
6.extends
?/span>
implent
的区别?
This means that if you try to connect to 127.0.0.1, you are immediately looped back to your own machine.
If you telnet, ftp, etc... to 127.0.0.1, you are connected to your own machine.
In other words, 127.0.0.1 is you.
For example, if your system was named "joker", and you attempted to telnet to 127.0.0.1, you would see:
# telnet 127.0.0.1
Trying 127.0.0.1...
Connected to joker
Escape character is '^]'.
Convincing newbie's to connect to 127.0.0.1 is a frequent joke on the Internet.
Another name for 127.0.0.1 is localhost.
Although 127.0.0.1 is the most commonly utilized address for localhost, any IP address in the 127.*.*.* range should also function in the same manner.
(tng)
一?/span> 开发环境配|?/span>
W一步:(x)下蝲 j2sdk ?/span> tomcat Q?/span>
W二步:(x)安装和配|你?/span> j2sdk ?/span> tomcat Qƈ分别讄环境变量Q?/span>
W三步:(x)建立自己?/span>
jsp app
目录
1.
?/span>
Tomcat
的安装目录的
webapps
目录Q可以看?/span>
ROOT
Q?/span>
examples, tomcat-docs
之类
Tomcat
自带的的目录Q?/span>
2.
?/span>
webapps
目录下新Z个目录,起名?/span>
myapp
Q?/span>
3.myapp
下新Z个目?/span>
WEB-INF
Q注意,目录名称是区分大写的;
4.WEB-INF
下新Z个文?/span>
web.xml
Q内容如下:(x)
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
<display-name>My Web Application</display-name>
<description>
A application for test.
</description>
</web-app>
5.
?/span>
myapp
下新Z个测试的
jsp
面Q文件名?/span>
index.jsp
Q文件内容如下:(x)
<html><body><center>
Now time is: <%=new java.util.Date()%>
</center></body></html>
6.
重启
Tomcat
7.
打开览器,输入
http://localhost:8080/myapp/index.jsp
看到当前旉的话说明成功了(jin)?/span>
W四步:(x)建立自己?/span>
Servlet
Q?/span>
1.
用你最熟?zhn)的编辑器Q徏议用有语法(g)查的
java ide
Q新Z?/span>
servlet
E序Q文件名?/span>
Test.java
Q文件内容如下:(x)
package test;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class Test extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
PrintWriter out=response.getWriter();
out.println("<html><body><h1>This is a servlet test.</h1></body></html>");
out.flush();
}
}
2 .
~译
?/span>
Test.java
攑֜
c:\test
下,使用如下命o(h)~译Q?/span>
C:\Test>javac Test.java
然后?/span>
c:\Test
下会(x)产生一个编译后?/span>
servlet
文gQ?/span>
Test.class
注意Q?/span>
如果出现无法
import javax.servlet.*
那么是应该?/span>
C:\Tomcat\common\lib
里面?/span>
servlet-api.jar
文g拯刎ͼ
JAVA_HOME
Q?/span>
\jre\lib\ext
中,再次~译Q就没有问题?sh)(jin)?/span>
解析Q?/span>
serlvet / jsp
属于
J2EE
的一部分Q而不?/span>
J2SE
的一部分?/span>
3 .
结?/span>
test\Test.class
剪切?/span>
%CATALINA_HOME%\webapps\myapp\WEB-INF\classes
下,也就是剪切那?/span>
test
目录?/span>
classes
目录下,如果
classes
目录不存在,新Z个?/span>
现在
webapps\myapp\WEB-INF\classes
下有
test\Test.class
的文件目录结?/span>
4 .
修改
webapps\myapp\WEB-INF\web.xml
Q添?/span>
servlet
?/span>
servlet-mapping
~辑后的
web.xml
如下所C,U色为添加的内容
:
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
<display-name>My Web Application</display-name>
<description>
A application for test.
</description>
<servlet>
<servlet-name>Test</servlet-name>
<display-name>Test</display-name>
<description>A test Servlet</description>
<servlet-class>test.Test</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Test</servlet-name>
<url-pattern>/Test</url-pattern>
</servlet-mapping>
</web-app>
q段话中?/span>
servlet
q一D声明了(jin)你要调用?/span>
Servlet
Q?/span>
servlet-mapping
则是声明的
servlet"
映射
"
到地址
/Test
?/span>
5 .
好了(jin)Q重启动
Tomcat
Q启动浏览器Q输?/span>
http://localhost:8080/myapp/Test
如果看到输出
This is a servlet test.
p明编写的
servlet
成功?jin)?/span>
注意Q修改了(jin) web.xml 以及(qing)新加?/span> class Q都要重?/span> Tomcat ?/span>
W四步:(x)建立自己?/span>
Bean
Q?/span>
1.
用你最熟?zhn)的编辑器Q徏议用有语法(g)查的
java ide
Q新Z?/span>
java
E序Q文件名?/span>
TestBean.java
Q文件内容如下:(x)
package test;
public class TestBean{
private String name = null;
public TestBean(String strName_p){
this.name=strName_p;
}
public void setName(String strName_p){
this.name=strName_p;
}
public String getName(){
return this.name;
}
}
2 .
~译
?/span>
TestBean.java
攑֜
c:\test
下,使用如下命o(h)~译Q?/span>
C:\Test>javac TestBean.java
然后?/span>
c:\Test
下会(x)产生一个编译后?/span>
bean
文gQ?/span>
TestBean.class
注释Q自q部v
StuInfoBean.java
Q?/span>
eclipse
的工作空间目录ؓ(f)?/span>
F:\workspace
”,工程名称为?/span>
HelloWord?/span>
Q目录ؓ(f)
F:\workspace\HelloWord,
?/span>
StuInfoBean.java
攑֜
F:\workspace\HelloWord\com\javaBean
下,Q注Q?/span>
com
?/span>
javaBean
是自己徏的两个文件夹Q,使用如下命o(h)~译Q?/span>
F:\workspace\HelloWord\com\javaBean>javac StuInfoBean.java
然后?/span>
F:\workspace\HelloWord\com\javaBean
下会(x)产生一个编译后?/span>
bean
文gQ?/span>
StuInfoBean.class
Q?/span>
3 . ?/span> TestBean.class 文g剪切?/span> %CATALINA_HOME%\webapps\myapp\WEB-INF\classes\test 下,
自己的部|Ԍ(x)
目录结?/span>
com\javaBean\StuInfoBean.class
拯?/span>
%CATALINA_HOME%\webapps\myapp\WEB-INF\classes
下;卛_
StuInfoBean.class
文g剪切?/span>
%CATALINA_HOME%\webapps\myapp\WEB-INF\classes\com\javaBean
下,Q?/span>
classes,com,javaBean
都是自己建的文g夹)(j)Q最后目录结构如下:(x)
%CATALINA_HOME%\webapps\myapp\WEB-INF\classes\com\javaBean\StuInfoBean.class
Q?/span>
4 .
新徏一?/span>
TestBean.jsp
文gQ文件内容ؓ(f)Q?/span>
<%@ page import="test.TestBean" %>
<html><body><center>
<%
TestBean testBean=new TestBean("This is a test java bean.");
%>
Java bean name is: <%=testBean.getName()%>
</center></body></html>
5 .
好了(jin)Q重?/span>
Tomcat
Q启动浏览器Q输?/span>
http://localhost:8080/myapp/TestBean.jsp
如果看到输出
Java bean name is: This is a test java bean.
p明编写的
Bean
成功?jin)?/span>
q样完成了(jin)整个
Tomcat
下的
jsp
?/span>
servlet
?/span>
javabean
的配|。接下来需要做的事情就是多看书、多d人的好代码,自己多动手写代码以增己在q方面开发的能力?jin)?/span>
1. (tng) (tng) (tng) (tng) (tng) (tng) 加蝲和启?/span>
启动意味着创徏一个或多个 servlet ?/span>
2. (tng) (tng) (tng) (tng) (tng) (tng) 初始?/span>
启动后,接着调用 servlet ?/span> init() Ҏ(gu)Q这个方法用?/span> servlet q行初始化,q处理随后到来的hQ如变量初始化或数据库连接?/span>
3. (tng) (tng) (tng) (tng) (tng) (tng) 处理h信息
javax.HttpServletRequest 对象实例中封装了(jin)详细的请求信息。然?/span> wl 自动的调用 servlet 中的 service Q)(j)Ҏ(gu)Q然?/span> service() Ҏ(gu)?x)根据具体情况调用相应的?gu)Q如处理 post ?/span> get hӞ?x)调用相应?/span> doGet Q)(j)?/span> doPost() Ҏ(gu)?/span>
4. (tng) (tng) (tng) (tng) (tng) (tng) 服务的结?/span>
在响?/span> wl 控制台的命o(h)Q或?/span> wl server x(chng)Ӟ wl 调?/span> Destroy Q)(j)Ҏ(gu)Q删?/span> servlet 实例Q从而结束一?/span> servlet 的运行?/span>
参考资料:(x)
1. (tng) (tng) (tng) (tng) (tng) (tng) sun |站上资料的译Q?/span>
http://kinlili.spaces.msn.com/
(tng) (tng) (tng) (tng) (tng) (tng)Servlet
的生命周?/span>
(tng) (tng) (tng) (tng) (tng) (tng)
一?/span>
Java (tng)servlet
h一个生命周期,q个生命周期定义?jin)一?/span>
Servlet
如何被蝲入ƈ被初始化Q如何接收请求ƈ作出对请求的响应Q如何被从服务中清除?/span>
Servlet
的生命周期被
javax.servlet.Servlet
q个接口所定义?/span>
(tng) (tng) (tng) (tng) (tng) (tng)
所有的
Java (tng)Servlet
都会(x)直接地或间接地执?/span>
javax.servlet.Servlet
接口Q这样它才能在一?/span>
Servlet
引擎中运行?/span>
(tng) (tng) (tng) (tng) (tng) (tng)javax.servlet.Servlet
接口定义?jin)?/span>
Servlet
的生命周期中特定旉以及(qing)特定序被调用的Ҏ(gu)?/span>
2. (tng) (tng) (tng) (tng) (tng) (tng) (tng)
sun
原文资料Q?/span>
http://java.sun.com/products/servlet/2.1/servletspec-2.1.zip
(tng)
所以:(x)
appletQ表C客L(fng)应用程序;
servletQ表C服务器端小E序?br />