打印

Solaris操作系统上搭建Java EE开发环境

本帖已经被作者加入个人空间

5.5控制器Servlet的开发

完成了 JSP 与 JavaBean 的开发后,就可以进行核心控制器 Servlet 的开发了,步骤如下:

( 1 )在 classes 目录下新建 CenterServlet.java 文件,用于实现核心控制器 Servlet 。

( 2 )在 CenterServlet.java 文件中添加如下代码,实现核心控制器功能。

package xsz;

import javax.servlet.*;

import javax.servlet.http.*;

import java.io.*;

import java.util.*;

public class CenterServlet extends HttpServlet

{

public void doPost ( HttpServletRequest req, HttpServletResponse resp )

throws ServletException, IOException

{

// 设置接受 / 发送 中文参数

req.setCharacterEncoding( "gb2312" );

resp.setContentType( "text/html;charset=gb2312" );

// 接受隐含 查询方式

String action = req.getParameter( "QType" ).trim();

if ( action != null ) {

// 创建 QueryBean 的对象

DBBean db = new DBBean();

List list = null;

// 接受文本框里输入的值

String qt = req.getParameter( "QueryInfo" );

if ( qt.trim().length() != 0 )

{

if ( action.equals( "QTISBN" ) ) {

// 通过书的 ID 号查询

String quryIDSQL = "select tisbn, tbname, tauthor, chubanshe,"

+ "bookdate, bookpage, leixing, bprice from "

+ "book where tisbn='" + qt + "'";

// 获取查询结果

list = db.getQuery(quryIDSQL);

} else if ( action.equals( "QTBName" ) ) {

// 通过书的名字查询

String bookNameSQL = "select tisbn, tbname, tauthor, chubanshe,"

+ "bookdate, bookpage, leixing, bprice from "

+ "book where tbname like '%" + qt + "%'";

// 获取查询结果

/*

* 请读者特别注意,由于 mysql 默认使用 iso-8859-1 编码格式

* 存储字符数据,因此进行检索的 SQL 语句字符串也必须转换

* 成 iso-8859-1 编码格式,否则可能检索不出正确的结果。

*/

list = db.getQuery( new String ( bookNameSQL.getBytes(), "iso-8859-1") );

} else if ( action.equals( "QTAuthor" ) ) {

// 通过书的作者名查询

String authorNameSQL = "select tisbn, tbname, tauthor, chubanshe,"

+ "bookdate, bookpage, leixing, bprice from "

+ "book where tauthor like '%" + qt + "%'";

// 获取查询结果

/*

* 请读者特别注意,由于 mysql 默认使用 iso-8859-1 编码格式

* 存储字符数据,因此进行检索的 SQL 语句字符串也必须转换

* 成 iso-8859-1 编码格式,否则可能检索不出正确的结果。

*/

list = db.getQuery( new String ( authorNameSQL.getBytes(), "iso-8859-1") );

}

}

// 往 JSP 传结果

req.setAttribute( "result", list );

// 清空 list 引用

list = null;

// 跳转到结果显示页面

forward( req, resp, "/Search.jsp" );

}

}

public void doGet ( HttpServletRequest req, HttpServletResponse resp )

throws ServletException, IOException

{

this.doPost(req, resp);

}

public void forward ( HttpServletRequest req, HttpServletResponse resp, String url )

throws ServletException, IOException

{

// 跳转到指定的 URL

req.getRequestDispatcher( url ).forward( req, resp );

}

}

说明:

l 上述代码中的 doPost 方法实现了接收请求,调用 JavaBean 与数据库交互并将返回的结果放置到 request 中,最后跳转到结果显示页面的功能。

l 上述代码中的 forward 方法实现了跳转到指定页面的功能,其为 doPost 方法中的页面跳转功能服务。

( 3 )在“ /BookApp/WEB-INF/classes ”目录中将上述代码进行编译,命令如下:

javac –d . CenterServlet.java

( 4 )编译成功后 classes 目录下将出现 xsz 子目录,其中有编译后的 CenterServlet.class 字节码文件。

( 5 )在 WEB-INF 目录下新建 Web 应用的配置文件 web.xml ,对 Servlet 等进行配置,其内容如下:

<?xml version="1.0" encoding="UTF-8"?>

<web-app version="2.5"

xmlns="http://java.sun.com/xml/ns/javaee"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://java.sun.com/xml/ns/javaee

http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">

<!-- 设置整个 web 应用的欢迎页面为 Search.jsp -->

<welcome-file-list>

<welcome-file>Search.jsp</welcome-file>

</welcome-file-list>

<!-- 对 CenterServlet 进行配置 -->

<servlet>

<servlet-name>CenterServlet</servlet-name>

<servlet-class>xsz.CenterServlet</servlet-class>

</servlet>

<servlet-mapping>

<servlet-name>CenterServlet</servlet-name>

<url-pattern>/CenterServlet</url-pattern>

</servlet-mapping>

</web-app>
|-- AI by Spruce Lab -- | Discover the Info. Tech. for Personal! && Powered by Solaris & Oracle

通告:即日起启用新MSN和Mail地址:aic.lab.sif@gmail.com 原来的最多1个月后停用!

TOP

5.6程序的部署运行

在完成了上述所有的开发过程后,就可以部署运行应用程序了,步骤如下:

( 1 )将 BookApp 目录整个拷贝到 Tomcat 安装目录下的 webapps 目录中。

( 2 )启动 Tomcat 服务器。

( 3 )在浏览器地址栏中输入“ http://localhost:8080/BookApp/Search.jsp ”,即可看到如前面图 4-4-1 到图 4-4-5 的功能页面。

到这里,整个 Web 应用的开发就结束了,如果读者需要整个程序包,可以发邮件到 javase6_guide@yahoo.cn 索取。
|-- AI by Spruce Lab -- | Discover the Info. Tech. for Personal! && Powered by Solaris & Oracle

通告:即日起启用新MSN和Mail地址:aic.lab.sif@gmail.com 原来的最多1个月后停用!

TOP


感谢一直以来您对我们的支持!
当前时区 GMT+8, 现在时间是 2008-12-2 18:29 京ICP证060528 号

Designed By 17DST