<2003-3-5 下午05时20分00秒> <Error> <JDBC> <001060> <Cannot startup connection pool "demoXAPool" weblogic.common.ResourceException: Cannot load driver class: com.pointbase.xa.xaDataSource>
<2003-3-5 下午05时20分00秒> <Error> <JDBC> <001060> <Cannot startup connection pool "demoPool" weblogic.common.ResourceException: Cannot load driver class: com.pointbase.jdbc.jdbcUniversalDriver>
<2003-3-5 下午05时20分05秒> <Error> <JDBC> <001059> <Error during Data Source creation: weblogic.common.ResourceException: DataSource(examples-dataSource-demoPool) can't be created with non-existent Pool (connection or multi) (demoPool)
<2003-3-5 下午05时20分05秒> <Error> <JDBC> <001059> <Error during Data Source creation: weblogic.common.ResourceException: DataSource(examples-dataSource-demoXAPool) can't be created with non-existent Pool (connection or multi) (demoXAPool)
<2003-3-5 下午05时20分06秒> <Alert> <JMS> <040052> <JMSServer "examplesJMSServer", store failed to open, java.io.IOException: JMS JDBC store, connection pool = <demoPool>, prefix = <examples>: connection pool does not exist.
java.io.IOException: JMS JDBC store, connection pool = <demoPool>, prefix = <examples>: connection pool does not exist
<2003-3-5 下午05时20分06秒> <Error> <JMS> <040123> <Failed to start JMS Server "examplesJMSServer" due to weblogic.jms.common.JMSException: JMS can not open store exampleJDBCStore.
weblogic.jms.common.JMSException: JMS can not open store exampleJDBCStore
----------- Linked Exception -----------
java.io.IOException: JMS JDBC store, connection pool = <demoPool>, prefix = <examples>: connection pool does not exist
<2003-3-5 下午05时20分10秒> <Error> <EJB> <010070> <Error activating EJB Module : ejb20_basic_containerManaged.jar
Exception is :
Unable to deploy EJB: containerManaged from ejb20_basic_containerManaged.jar:
weblogic.ejb20.WLDeploymentException: The DataSource with the JNDI name: examples-dataSource-demoPool could not be located. Please ensure that the DataSource has been deployed successfully and that the JNDI name in your EJB Deployment descriptor is correct.
Unable to deploy EJB: containerManaged from ejb20_basic_containerManaged.jar:
weblogic.ejb20.WLDeploymentException: The DataSource with the JNDI name: examples-dataSource-demoPool could not be located. Please ensure that the DataSource has been deployed successfully and that the JNDI name in your EJB Deployment descriptor is correct.
<2003-3-5 下午05时20分10秒> <Error> <Deployer> <149231> <The slave deployer was unable to set the activation state to true for the application _appsdir_ejb20_basic_containerManaged_ear
weblogic.management.ApplicationException: activate failed forejb20_basic_containerManaged.jar
{
Module Name: ejb20_basic_containerManaged.jar, Error: Exception activating module: EJBModule(ejb20_basic_containerManaged.jar,status=PREPARED)
Unable to deploy EJB: containerManaged from ejb20_basic_containerManaged.jar:
weblogic.ejb20.WLDeploymentException: The DataSource with the JNDI name: examples-dataSource-demoPool could not be located. Please ensure that the DataSource has been deployed successfully and that the JNDI name in your EJB Deployment descriptor is correct.
TargetException:
Unable to deploy EJB: containerManaged from ejb20_basic_containerManaged.jar:
weblogic.ejb20.WLDeploymentException: The DataSource with the JNDI name: examples-dataSource-demoPool could not be located. Please ensure that the DataSource has been deployed successfully and that the JNDI name in your EJB Deployment descriptor is correct.
我是按下面设置weblogic7的。
WebLogic7的配置:
1. 启动WebLogic7
2. 打开IE6,在地址栏中输入:<http://localhost:7001/console>
3. 输入用户名和密码
4. 在左边的目录树中选中Services->JDBC->Connection Pools,单击右侧的Configure a new JDBC Connection Pool.,输入以下信息:
Configuration->General页:
Name = SQL Server Connection Pool
URL = jdbc:weblogic:mssqlserver4:northwind@localhost
Driver classname = weblogic.jdbc.mssqlserver4.Driver
Properties :
user = cne5
Password = “********” <- sa的密码
单击Create建立连接池。
Targets->Server页:
将myserver(服务器名称)移至右侧的列表中,但击单击Apply
5. 在左边的目录树中选中Services->JDBC->Data Sources(或者TXData Sources),单击右侧的Configure a new JDBC Connection Pool.,输入以下信息:
Configuration->General页:
Name = SQLServer Tx Data Source
JNDI Name = SQLServer
Pool Name = SQL Server Connection Pool
选中Emulate Two-Phase Commit for non-XA Driver和Row Prefetch Enabled
单击Create建立数据源。
Targets->Server页:
将myserver(服务器名称)移至右侧的列表中,但击单击Apply,配置完毕。
servlet源文件:
package test;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class Servlet extends HttpServlet
{
public void doGet(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException
{
PrintWriter out = response.getWriter();
out.println("Hello World");
}
}
并且我是用sql和windows登陆sql的。
因为我很蠢,请说详细点,谢谢!在线等待!马上结帐。
1 个解决方案
#1
引:众所周知,发布一个由JSP/SERVLET开发的网站,除了需要相应的WEB服务器来响应普通网页的请求外还需要专门的应用服务器来响应动态网页JSP/SERVLET的请求。对于商业用户来说,目前最流行的应用服务器软件要数BEA公司开发的WebLogic。在一年一度由读者评选的奖项中,Java Pro杂志的众多读者们都投票给了BEA WebLogic Server服务器以及BEA WebLogic Portal。使用者们都认为,这两种产品在它们各自的领域中都可以算得上是最一流的。对于那些正在寻求能够提供Java平台所拥有的一切的应用服务器的用户来说,WebLogic将是一个十分正确的选择。下面我们就来简单介绍如何在Win 2000 的Weblogic上编写和配置HTTP SERVLET。
一、介绍和编写Servlet
Servlet是运行在java服务器上java类。http servlet是一种特殊类型的servlet,它能接收客户端浏览器发送的http请求,处理后向客户端的浏览器发送http response.。 WebLogic Server的http servlet完全支持Sun Microsystems 定义的Servlet 2.2 规范
现在我们编写一个简单的HTTP Servlet-HelloWorldServlet.java,打印“Hello World!”。通过这个例子来了解HTTP Servlet的编写过程。
1:在程序的开头必须引入程序需要的类和包,在这个例子中要引入三个类,过程如下:
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
2:扩展 javax.servlet.http.HttpServlet.如:
public class HelloWorldServlet extends HttpServlet
3:编写主程序service()方法;
Servlet的主要功能是接收Web浏览器的Http请求,并返回Http response。接收和返回的工作由Servlet的Service()方法调用。它包括使用request对象接收从客户端提交的数据和response 对象创建输出结果到客户端。
你可能在看到一些servlet例子使用doPost()或doGetO方法来接收和执行请求。但是这些方法只回应POST或GET请求。如果你想使用一个方法接收来自客户端的各种类型的请求,你就可以使用service()方法。(如果你已经使用了service()方法,你就不能使用doPost()和doGet方法。http servlet规范描述了对应各种类型请求的方法,所有的这些类型都能用service方法。)
所有的service方法有一样的变量参数,HttpServletRequest接收请求的信息,HttpServletResponse返回客户端信息。例子如下:
public void service(HttpServletRequest req, HttpServletResponse res)
throws IOException {
4:设置输出类型:
res.setContentType("text/html");
5:使用java.io.PrintWriter对象定义一个输出对象;
PrintWriter out = res.getWriter();
6:用out.println()方法打印输出结果;
out.println("<html><head><title>Hello World!</title></head>");
out.println("<body>");
out.println("<h1>Hello World!</h1></body></html>");
这样一个完整的servlet就完成了,经过编译和配置就可以通过浏览器访问。完整的例子HelloWorldServlet.java如下:
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
public class HelloWorldServlet extends HttpServlet {
public void service(HttpServletRequest req, HttpServletResponse res)
throws IOException
{
// Must set the content type first
res.setContentType("text/html");
// Now we can obtain a PrintWriter
PrintWriter out = res.getWriter();
out.println("<html><head><title>Hello World!</title></head>");
out.println("<body>");
out.println("<h1>Hello World!</h1></body></html>");
}
}
二、配置Http Servlet
在Weblogic中,Web应用程序有相应的目录结构,所有的文件必须放在相应的目录内,其目录结构如图:
所有的servlet都放在\web-inf\classes目录下,jsp,html,jpg,gif文件放在webApplicationRoot的根目录下。
除了设置相应的目录, Servlet还必须经过配置才能被Java和服务器识别和运行。第一个配置文件是web.xml,它是Sun Java Servlet规范定义的配置文件,描述web应用。第二个配置文件是Weblogic.xml,定义web.xml在weblogic服务器上对应的资源,定义JSP和HTTP session变量。它们可以用记事本编写。
Web.xml(Web ApplicationDeployment Descriptor)定义Http servlet的如下属性:
1:Servlet的名字;
2:Servlet所属的类;
3:Servlet的初始变量;
4:在WebLogic启动时是否需要进行初始化;
5:Servlet对应的URL地址;
6:安全
7:MINE type;
8:servlet出现错误时指向的页面;
9:是否引用了EJBs;
10:引用其他资源;
详细说明请参考:http://e-docs.bea.com/wls/docs61/webapp/webappdeployment.html#web-xml
weblogic.xml(Weblogic-Specific Deployment Descriptor)定义Http servlet的如下属性:
1:Http session的设置;
2:Cookie 的设置
3:EJB资源的映射;
4:JSP的设置;
详细说明请参考:http://e-docs.bea.com/wls/docs61/webapp/webappdeployment.html#weblogic-xml
了解了Web.xml 和weblogic.xml两个配置文件,下面介绍在Win 2000的Weblogic上配置我们刚才编写的例子:HelloWorldServlet。
配置环境是:Windows2000并在C盘安装了weblogic6.0。当你启动 Weblogic时,可以通过http://localhost:7001/ 访问到WebLogic默认服务器的Web Server Index页面。其中c:\bea\wlserver6.0\config\mydomain\applications\DefaultWepApp_myserver为WebLogic默认服务器根目录。
配置过程如下:
1:按照Servlet的目录要求,建立相应的目录WEB-INF,classes,lib。
2:编译刚才编写的HelloWorldServlet.java,输出到\WEB-INF\classes目录下,生成HelloWorldServlet.class;
3::在WEB-INF目录下的web.xml中说明刚才编写的servlet,内容如下:
<?xml version="1.0" ?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN" "http://java.sun.com/j2ee/dtds/web-app_2_2.dtd">
<web-app>
<servlet>
<servlet-name>
HelloWorldServlet
</servlet-name>
<servlet-class>
HelloWorldServlet
</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>
HelloWorldServlet
</servlet-name>
<url-pattern>
quickStartServlet
</url-pattern>
</servlet-mapping>
</web-app>
web.xml中的<servlet></servlet>和<servlet-mapping></servlet-mapping>对servlet的说明必不可少,否则系统会找不到servlet。
4:重新启动Weblogic服务器;
这样Servlet就已经配置完成,通过http://localhost:7001/quickStartServlet 即可访问HelloWorldServlet,在页面可以看到Hello World!两个字。
一、介绍和编写Servlet
Servlet是运行在java服务器上java类。http servlet是一种特殊类型的servlet,它能接收客户端浏览器发送的http请求,处理后向客户端的浏览器发送http response.。 WebLogic Server的http servlet完全支持Sun Microsystems 定义的Servlet 2.2 规范
现在我们编写一个简单的HTTP Servlet-HelloWorldServlet.java,打印“Hello World!”。通过这个例子来了解HTTP Servlet的编写过程。
1:在程序的开头必须引入程序需要的类和包,在这个例子中要引入三个类,过程如下:
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
2:扩展 javax.servlet.http.HttpServlet.如:
public class HelloWorldServlet extends HttpServlet
3:编写主程序service()方法;
Servlet的主要功能是接收Web浏览器的Http请求,并返回Http response。接收和返回的工作由Servlet的Service()方法调用。它包括使用request对象接收从客户端提交的数据和response 对象创建输出结果到客户端。
你可能在看到一些servlet例子使用doPost()或doGetO方法来接收和执行请求。但是这些方法只回应POST或GET请求。如果你想使用一个方法接收来自客户端的各种类型的请求,你就可以使用service()方法。(如果你已经使用了service()方法,你就不能使用doPost()和doGet方法。http servlet规范描述了对应各种类型请求的方法,所有的这些类型都能用service方法。)
所有的service方法有一样的变量参数,HttpServletRequest接收请求的信息,HttpServletResponse返回客户端信息。例子如下:
public void service(HttpServletRequest req, HttpServletResponse res)
throws IOException {
4:设置输出类型:
res.setContentType("text/html");
5:使用java.io.PrintWriter对象定义一个输出对象;
PrintWriter out = res.getWriter();
6:用out.println()方法打印输出结果;
out.println("<html><head><title>Hello World!</title></head>");
out.println("<body>");
out.println("<h1>Hello World!</h1></body></html>");
这样一个完整的servlet就完成了,经过编译和配置就可以通过浏览器访问。完整的例子HelloWorldServlet.java如下:
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
public class HelloWorldServlet extends HttpServlet {
public void service(HttpServletRequest req, HttpServletResponse res)
throws IOException
{
// Must set the content type first
res.setContentType("text/html");
// Now we can obtain a PrintWriter
PrintWriter out = res.getWriter();
out.println("<html><head><title>Hello World!</title></head>");
out.println("<body>");
out.println("<h1>Hello World!</h1></body></html>");
}
}
二、配置Http Servlet
在Weblogic中,Web应用程序有相应的目录结构,所有的文件必须放在相应的目录内,其目录结构如图:
所有的servlet都放在\web-inf\classes目录下,jsp,html,jpg,gif文件放在webApplicationRoot的根目录下。
除了设置相应的目录, Servlet还必须经过配置才能被Java和服务器识别和运行。第一个配置文件是web.xml,它是Sun Java Servlet规范定义的配置文件,描述web应用。第二个配置文件是Weblogic.xml,定义web.xml在weblogic服务器上对应的资源,定义JSP和HTTP session变量。它们可以用记事本编写。
Web.xml(Web ApplicationDeployment Descriptor)定义Http servlet的如下属性:
1:Servlet的名字;
2:Servlet所属的类;
3:Servlet的初始变量;
4:在WebLogic启动时是否需要进行初始化;
5:Servlet对应的URL地址;
6:安全
7:MINE type;
8:servlet出现错误时指向的页面;
9:是否引用了EJBs;
10:引用其他资源;
详细说明请参考:http://e-docs.bea.com/wls/docs61/webapp/webappdeployment.html#web-xml
weblogic.xml(Weblogic-Specific Deployment Descriptor)定义Http servlet的如下属性:
1:Http session的设置;
2:Cookie 的设置
3:EJB资源的映射;
4:JSP的设置;
详细说明请参考:http://e-docs.bea.com/wls/docs61/webapp/webappdeployment.html#weblogic-xml
了解了Web.xml 和weblogic.xml两个配置文件,下面介绍在Win 2000的Weblogic上配置我们刚才编写的例子:HelloWorldServlet。
配置环境是:Windows2000并在C盘安装了weblogic6.0。当你启动 Weblogic时,可以通过http://localhost:7001/ 访问到WebLogic默认服务器的Web Server Index页面。其中c:\bea\wlserver6.0\config\mydomain\applications\DefaultWepApp_myserver为WebLogic默认服务器根目录。
配置过程如下:
1:按照Servlet的目录要求,建立相应的目录WEB-INF,classes,lib。
2:编译刚才编写的HelloWorldServlet.java,输出到\WEB-INF\classes目录下,生成HelloWorldServlet.class;
3::在WEB-INF目录下的web.xml中说明刚才编写的servlet,内容如下:
<?xml version="1.0" ?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN" "http://java.sun.com/j2ee/dtds/web-app_2_2.dtd">
<web-app>
<servlet>
<servlet-name>
HelloWorldServlet
</servlet-name>
<servlet-class>
HelloWorldServlet
</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>
HelloWorldServlet
</servlet-name>
<url-pattern>
quickStartServlet
</url-pattern>
</servlet-mapping>
</web-app>
web.xml中的<servlet></servlet>和<servlet-mapping></servlet-mapping>对servlet的说明必不可少,否则系统会找不到servlet。
4:重新启动Weblogic服务器;
这样Servlet就已经配置完成,通过http://localhost:7001/quickStartServlet 即可访问HelloWorldServlet,在页面可以看到Hello World!两个字。
#1
引:众所周知,发布一个由JSP/SERVLET开发的网站,除了需要相应的WEB服务器来响应普通网页的请求外还需要专门的应用服务器来响应动态网页JSP/SERVLET的请求。对于商业用户来说,目前最流行的应用服务器软件要数BEA公司开发的WebLogic。在一年一度由读者评选的奖项中,Java Pro杂志的众多读者们都投票给了BEA WebLogic Server服务器以及BEA WebLogic Portal。使用者们都认为,这两种产品在它们各自的领域中都可以算得上是最一流的。对于那些正在寻求能够提供Java平台所拥有的一切的应用服务器的用户来说,WebLogic将是一个十分正确的选择。下面我们就来简单介绍如何在Win 2000 的Weblogic上编写和配置HTTP SERVLET。
一、介绍和编写Servlet
Servlet是运行在java服务器上java类。http servlet是一种特殊类型的servlet,它能接收客户端浏览器发送的http请求,处理后向客户端的浏览器发送http response.。 WebLogic Server的http servlet完全支持Sun Microsystems 定义的Servlet 2.2 规范
现在我们编写一个简单的HTTP Servlet-HelloWorldServlet.java,打印“Hello World!”。通过这个例子来了解HTTP Servlet的编写过程。
1:在程序的开头必须引入程序需要的类和包,在这个例子中要引入三个类,过程如下:
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
2:扩展 javax.servlet.http.HttpServlet.如:
public class HelloWorldServlet extends HttpServlet
3:编写主程序service()方法;
Servlet的主要功能是接收Web浏览器的Http请求,并返回Http response。接收和返回的工作由Servlet的Service()方法调用。它包括使用request对象接收从客户端提交的数据和response 对象创建输出结果到客户端。
你可能在看到一些servlet例子使用doPost()或doGetO方法来接收和执行请求。但是这些方法只回应POST或GET请求。如果你想使用一个方法接收来自客户端的各种类型的请求,你就可以使用service()方法。(如果你已经使用了service()方法,你就不能使用doPost()和doGet方法。http servlet规范描述了对应各种类型请求的方法,所有的这些类型都能用service方法。)
所有的service方法有一样的变量参数,HttpServletRequest接收请求的信息,HttpServletResponse返回客户端信息。例子如下:
public void service(HttpServletRequest req, HttpServletResponse res)
throws IOException {
4:设置输出类型:
res.setContentType("text/html");
5:使用java.io.PrintWriter对象定义一个输出对象;
PrintWriter out = res.getWriter();
6:用out.println()方法打印输出结果;
out.println("<html><head><title>Hello World!</title></head>");
out.println("<body>");
out.println("<h1>Hello World!</h1></body></html>");
这样一个完整的servlet就完成了,经过编译和配置就可以通过浏览器访问。完整的例子HelloWorldServlet.java如下:
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
public class HelloWorldServlet extends HttpServlet {
public void service(HttpServletRequest req, HttpServletResponse res)
throws IOException
{
// Must set the content type first
res.setContentType("text/html");
// Now we can obtain a PrintWriter
PrintWriter out = res.getWriter();
out.println("<html><head><title>Hello World!</title></head>");
out.println("<body>");
out.println("<h1>Hello World!</h1></body></html>");
}
}
二、配置Http Servlet
在Weblogic中,Web应用程序有相应的目录结构,所有的文件必须放在相应的目录内,其目录结构如图:
所有的servlet都放在\web-inf\classes目录下,jsp,html,jpg,gif文件放在webApplicationRoot的根目录下。
除了设置相应的目录, Servlet还必须经过配置才能被Java和服务器识别和运行。第一个配置文件是web.xml,它是Sun Java Servlet规范定义的配置文件,描述web应用。第二个配置文件是Weblogic.xml,定义web.xml在weblogic服务器上对应的资源,定义JSP和HTTP session变量。它们可以用记事本编写。
Web.xml(Web ApplicationDeployment Descriptor)定义Http servlet的如下属性:
1:Servlet的名字;
2:Servlet所属的类;
3:Servlet的初始变量;
4:在WebLogic启动时是否需要进行初始化;
5:Servlet对应的URL地址;
6:安全
7:MINE type;
8:servlet出现错误时指向的页面;
9:是否引用了EJBs;
10:引用其他资源;
详细说明请参考:http://e-docs.bea.com/wls/docs61/webapp/webappdeployment.html#web-xml
weblogic.xml(Weblogic-Specific Deployment Descriptor)定义Http servlet的如下属性:
1:Http session的设置;
2:Cookie 的设置
3:EJB资源的映射;
4:JSP的设置;
详细说明请参考:http://e-docs.bea.com/wls/docs61/webapp/webappdeployment.html#weblogic-xml
了解了Web.xml 和weblogic.xml两个配置文件,下面介绍在Win 2000的Weblogic上配置我们刚才编写的例子:HelloWorldServlet。
配置环境是:Windows2000并在C盘安装了weblogic6.0。当你启动 Weblogic时,可以通过http://localhost:7001/ 访问到WebLogic默认服务器的Web Server Index页面。其中c:\bea\wlserver6.0\config\mydomain\applications\DefaultWepApp_myserver为WebLogic默认服务器根目录。
配置过程如下:
1:按照Servlet的目录要求,建立相应的目录WEB-INF,classes,lib。
2:编译刚才编写的HelloWorldServlet.java,输出到\WEB-INF\classes目录下,生成HelloWorldServlet.class;
3::在WEB-INF目录下的web.xml中说明刚才编写的servlet,内容如下:
<?xml version="1.0" ?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN" "http://java.sun.com/j2ee/dtds/web-app_2_2.dtd">
<web-app>
<servlet>
<servlet-name>
HelloWorldServlet
</servlet-name>
<servlet-class>
HelloWorldServlet
</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>
HelloWorldServlet
</servlet-name>
<url-pattern>
quickStartServlet
</url-pattern>
</servlet-mapping>
</web-app>
web.xml中的<servlet></servlet>和<servlet-mapping></servlet-mapping>对servlet的说明必不可少,否则系统会找不到servlet。
4:重新启动Weblogic服务器;
这样Servlet就已经配置完成,通过http://localhost:7001/quickStartServlet 即可访问HelloWorldServlet,在页面可以看到Hello World!两个字。
一、介绍和编写Servlet
Servlet是运行在java服务器上java类。http servlet是一种特殊类型的servlet,它能接收客户端浏览器发送的http请求,处理后向客户端的浏览器发送http response.。 WebLogic Server的http servlet完全支持Sun Microsystems 定义的Servlet 2.2 规范
现在我们编写一个简单的HTTP Servlet-HelloWorldServlet.java,打印“Hello World!”。通过这个例子来了解HTTP Servlet的编写过程。
1:在程序的开头必须引入程序需要的类和包,在这个例子中要引入三个类,过程如下:
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
2:扩展 javax.servlet.http.HttpServlet.如:
public class HelloWorldServlet extends HttpServlet
3:编写主程序service()方法;
Servlet的主要功能是接收Web浏览器的Http请求,并返回Http response。接收和返回的工作由Servlet的Service()方法调用。它包括使用request对象接收从客户端提交的数据和response 对象创建输出结果到客户端。
你可能在看到一些servlet例子使用doPost()或doGetO方法来接收和执行请求。但是这些方法只回应POST或GET请求。如果你想使用一个方法接收来自客户端的各种类型的请求,你就可以使用service()方法。(如果你已经使用了service()方法,你就不能使用doPost()和doGet方法。http servlet规范描述了对应各种类型请求的方法,所有的这些类型都能用service方法。)
所有的service方法有一样的变量参数,HttpServletRequest接收请求的信息,HttpServletResponse返回客户端信息。例子如下:
public void service(HttpServletRequest req, HttpServletResponse res)
throws IOException {
4:设置输出类型:
res.setContentType("text/html");
5:使用java.io.PrintWriter对象定义一个输出对象;
PrintWriter out = res.getWriter();
6:用out.println()方法打印输出结果;
out.println("<html><head><title>Hello World!</title></head>");
out.println("<body>");
out.println("<h1>Hello World!</h1></body></html>");
这样一个完整的servlet就完成了,经过编译和配置就可以通过浏览器访问。完整的例子HelloWorldServlet.java如下:
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
public class HelloWorldServlet extends HttpServlet {
public void service(HttpServletRequest req, HttpServletResponse res)
throws IOException
{
// Must set the content type first
res.setContentType("text/html");
// Now we can obtain a PrintWriter
PrintWriter out = res.getWriter();
out.println("<html><head><title>Hello World!</title></head>");
out.println("<body>");
out.println("<h1>Hello World!</h1></body></html>");
}
}
二、配置Http Servlet
在Weblogic中,Web应用程序有相应的目录结构,所有的文件必须放在相应的目录内,其目录结构如图:
所有的servlet都放在\web-inf\classes目录下,jsp,html,jpg,gif文件放在webApplicationRoot的根目录下。
除了设置相应的目录, Servlet还必须经过配置才能被Java和服务器识别和运行。第一个配置文件是web.xml,它是Sun Java Servlet规范定义的配置文件,描述web应用。第二个配置文件是Weblogic.xml,定义web.xml在weblogic服务器上对应的资源,定义JSP和HTTP session变量。它们可以用记事本编写。
Web.xml(Web ApplicationDeployment Descriptor)定义Http servlet的如下属性:
1:Servlet的名字;
2:Servlet所属的类;
3:Servlet的初始变量;
4:在WebLogic启动时是否需要进行初始化;
5:Servlet对应的URL地址;
6:安全
7:MINE type;
8:servlet出现错误时指向的页面;
9:是否引用了EJBs;
10:引用其他资源;
详细说明请参考:http://e-docs.bea.com/wls/docs61/webapp/webappdeployment.html#web-xml
weblogic.xml(Weblogic-Specific Deployment Descriptor)定义Http servlet的如下属性:
1:Http session的设置;
2:Cookie 的设置
3:EJB资源的映射;
4:JSP的设置;
详细说明请参考:http://e-docs.bea.com/wls/docs61/webapp/webappdeployment.html#weblogic-xml
了解了Web.xml 和weblogic.xml两个配置文件,下面介绍在Win 2000的Weblogic上配置我们刚才编写的例子:HelloWorldServlet。
配置环境是:Windows2000并在C盘安装了weblogic6.0。当你启动 Weblogic时,可以通过http://localhost:7001/ 访问到WebLogic默认服务器的Web Server Index页面。其中c:\bea\wlserver6.0\config\mydomain\applications\DefaultWepApp_myserver为WebLogic默认服务器根目录。
配置过程如下:
1:按照Servlet的目录要求,建立相应的目录WEB-INF,classes,lib。
2:编译刚才编写的HelloWorldServlet.java,输出到\WEB-INF\classes目录下,生成HelloWorldServlet.class;
3::在WEB-INF目录下的web.xml中说明刚才编写的servlet,内容如下:
<?xml version="1.0" ?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN" "http://java.sun.com/j2ee/dtds/web-app_2_2.dtd">
<web-app>
<servlet>
<servlet-name>
HelloWorldServlet
</servlet-name>
<servlet-class>
HelloWorldServlet
</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>
HelloWorldServlet
</servlet-name>
<url-pattern>
quickStartServlet
</url-pattern>
</servlet-mapping>
</web-app>
web.xml中的<servlet></servlet>和<servlet-mapping></servlet-mapping>对servlet的说明必不可少,否则系统会找不到servlet。
4:重新启动Weblogic服务器;
这样Servlet就已经配置完成,通过http://localhost:7001/quickStartServlet 即可访问HelloWorldServlet,在页面可以看到Hello World!两个字。