真正的高手请进!关于weblogic7和servlet的一个问题。

jasongufeng 2003-02-28 08:29:59
大虾,您好!
我装了weblogic7,jsp文件在C:\bea\user_projects\mydomain\applications\DefaultWebApp目录里面,而且能正常运行(http://cne5:7001/*.jsp),但运行后出现乱码,怎样解决?另外,我新建了一个servlet,比如是Hello.java,怎样才能不通过编译就可以在浏览器里面直接访问(也就是不用手工编译,通过服务器编译)?比如http://cne5:7001/Hello/可以浏览,请您说详细点,谢谢!即使我编译后把class文件放在WEB_INF/classes也修改了web.xml访问也不行。
...全文
11 点赞 收藏 4
写回复
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
star821116 2003-03-01
…………
不好意思中…………:)
回复
jasongufeng 2003-03-01
star821116(全民公敌),你太伟大了,我对你的崇拜之情,犹如哗哗大雨倾盆而下,又如山洪暴发一发不可收拾。
我向你敬礼,我向你学习,以后我要多多访问官方网站。
我给你100分!
jason古风
回复
star821116 2003-02-28
引:众所周知,发布一个由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!两个字。
回复
zxhong 2003-02-28
一,文件头上加:
<%@ contentType="text/html; charset=gb2312" %>
二 运行servlet:
1,将servlet放在test(jsp文件所在目录)\web-inf\classes\package(if you have package in your java class)\*.class
2,配置web.xml文件:
<web-app>
<servlet>
<servlet-name>TestServlet</servlet-name>
<servlet-class>TestServlet</servlet-class>
</servlet>

<servlet-mapping>
<servlet-name>TestServlet</servlet-name>
<url-pattern>/TestServlet</url-pattern>
</servlet-mapping>

</web-app>
3,运行 http://localhost:8080/test/TestServlet
回复
发动态
发帖子
Web 开发
创建于2007-09-28

7.9w+

社区成员

Java Web 开发
申请成为版主
社区公告
暂无公告