simpappservlet.java
来自「weblogic应用全实例」· Java 代码 · 共 181 行
JAVA
181 行
//声明这个类定义在包examples.wlec.servlets.simpapp中
package examples.wlec.servlets.simpapp;
//声明这个类引入的其他类或包
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.util.Properties;
import org.omg.CORBA.*;
import com.beasys.Tobj.*;
import com.beasys.*;
/* 这些来自WebLogic Enterprise simpapp 实例 */
import SimpleFactory;
import SimpleFactoryHelper;
import Simple;
/**
* 这个实例演示一个WebLogic servlet怎样连接WebLogic Enterprise,并调用一个CORBA对象上的操作。
* 这个servlet在Simpapp.html中被调用。
* 当Weblogic应用服务器启动时,它打开了WebLogic Enterprise IIOP监听的多个连接,在servlet初始化阶段,
* 它从连接池中找到一个连接,即它作为一个WebLogic Enterprise的客户端,获取一个客户端上下文。
* servlet下一步查找构造器。
* 当用户发送表单,从Simple构造器得到了一个Simple对象,并调用toupper/tolower方法。
*/
//servlet类必须继承javax.servlet.HttpServlet
public class SimpappServlet extends HttpServlet {
// 构造器SimpleFactory用来获取Simple对象
static SimpleFactory simple_factory_ref;
final String defaultCase = "UPPER";
final String defaultString = "It Works";
/**
* 初始化servlet。这里我们获取Bootstrap对象,Factory Finder和Simple构造器。
* @参数 config Servlet configuration
* @异常 ServletException if the servlet fails
*/
public void init(ServletConfig config) throws ServletException
{
try {
super.init(config);
// 创建bootstrap对象,
Tobj_Bootstrap bootstrap =
BootstrapFactory.getClientContext("simplepool");
// 使用bootstrap对象查找factory finder.
org.omg.CORBA.Object fact_finder_oref =
bootstrap.resolve_initial_references("FactoryFinder") ;
// 验证factory finder.
FactoryFinder fact_finder_ref =
FactoryFinderHelper.narrow(fact_finder_oref);
// 使用factory finder查找simple构造器.
org.omg.CORBA.Object simple_fact_oref =
fact_finder_ref.find_one_factory_by_id(SimpleFactoryHelper.id());
// 验证simple factory.
simple_factory_ref =
SimpleFactoryHelper.narrow(simple_fact_oref);
}
catch (org.omg.CosLifeCycle.NoFactory e) {
//异常处理
System.err.println("Can't find the simple factory: " +e);
throw new ServletException(e.toString());
}
catch (CannotProceed e) {
//异常处理
System.err.println("FactoryFinder internal error: " +e);
throw new ServletException(e.toString());
}
catch (RegistrarNotAvailable e) {
//异常处理
System.err.println("FactoryFinder Registrar not available: " +e);
throw new ServletException(e.toString());
}
catch (InvalidName e) {
//异常处理
System.err.println("Invalid name from resolve_initial_reference(): " +e);
throw new ServletException(e.toString());
}
catch (org.omg.CORBA.BAD_PARAM e) {
//异常处理
System.err.println("Invalid TOBJADDR=//host:port property specified: " +e);
throw new ServletException(e.toString());
}
catch (org.omg.CORBA.UserException e) {
//异常处理
System.err.println("Unexpected CORBA user exception: " +e);
throw new ServletException(e.toString());
}
catch (org.omg.CORBA.SystemException e) {
//异常处理
System.err.println("CORBA system exception: " +e);
throw new ServletException(e.toString());
}
}
/**
* 实现service方法,其中我们获取Simple对象的IOR,调用tolower或toupper方法,
* 并构造一个servlet页面,把用户的字串转换成大写或小写形式。
*/
public void service(HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException
{
PrintWriter out;
// 创建一个HTML页面
res.setContentType("text/html");
out = res.getWriter();
out.println("<HTML><HEAD><TITLE>");
out.println("Simpapp Servlet Sample");
out.println("</TITLE></HEAD><BODY BGCOLOR=#8B129C>");
out.println("<FONT COLOR=#FFFFFF><H1>Simpapp Servlet Sample</H1>");
// 读取输入数据
String mixed = (String) req.getParameter("InData");
String changeCase = (String) req.getParameter("ChangeCase");
// 如果没有输入数据,使用缺省的
if ((mixed == null) || (mixed.length() <= 0)) {
mixed = defaultString;
out.println("Note: Using the default data: " + mixed);
}
// 如果没有大小写要求, 则用大写
if ((changeCase == null) || (changeCase.length() <= 0)) {
changeCase = defaultCase;
out.println("Note: Using the default action:" + defaultCase);
}
try {
String result;
// 查找simple对象.
Simple simple = simple_factory_ref.find_simple();
if (changeCase.equals(defaultCase)) {
// 调用to_upper操作
org.omg.CORBA.StringHolder buf =
new org.omg.CORBA.StringHolder(mixed);
simple.to_upper(buf);
result = buf.value;
}
else
{
// 调用WebLogic Enterprise Simple object的to_lower方法
result = simple.to_lower(mixed);
}
out.println("<P>");
out.println("Output String: " + result);
out.println("</FONT>");
}
catch (org.omg.CORBA.SystemException e) {
//异常处理
log("CORBA system exception: " +e);
}
out.println("</BODY></HTML>");
out.close();
}
/**
* 基本的servlet信息.
*/
public String getServletInfo() {
return "A simple servlet which acts a client for WebLogic Enterprise";
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?