Eclipse3.02中搭建struts工程

本文介绍了Struts工程的搭建与配置过程。需将jdk的tools.jar添加到配置中,新建tomcat工程并拷贝相关jar和tld文件,配置struts-config.xml和web.xml文件,还给出了HelloForm.java、HelloAction.java、hello.jsp和sayhello.jsp等文件的代码示例,实现根据姓名从数据库获取对应id并转发页面。

 安装tomcat插件

安装tomcat插件

注意要将jdktools.jar添加到配置中,不然会无法编译jsp文件

 新建tomcat工程,取名struts

 新建tomcat工程,取名struts

 jakarta-struts-1.1.zip(新版的也应该没问题)的lib目录下的所有文件.jar.tld文件都拷到struts/web-inf/lib目录下

 jakarta-struts-1.1.zip(新版的也应该没问题)的lib目录下的所有文件.jar.tld文件都拷到struts/web-inf/lib目录下

通过project->properties->java build path将这些jar包都添加到工程中

 将连接mysql数据库的驱动mysql-connector-java- 3.0.14-production-bin.jar拷到struts/web-inf/lib目录下

 将连接mysql数据库的驱动mysql-connector-java- 3.0.14-production-bin.jar拷到struts/web-inf/lib目录下

 新建web-inf/src/com/ben/test/struts目录,在目录下新建HelloForm.javaHelloAction.java文件

 新建web-inf/src/com/ben/test/struts目录,在目录下新建HelloForm.javaHelloAction.java文件

 struts目录下新建jsp目录以存放jsp文件,目录下新建hello.jspsayhello.jsp

 struts目录下新建jsp目录以存放jsp文件,目录下新建hello.jspsayhello.jsp

 struts/web-inf目录下新建struts-config.xml文件,内容如下:

 struts/web-inf目录下新建struts-config.xml文件,内容如下:

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

<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.1//EN"

"http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd">

 <struts-config>

 <struts-config>

    <data-sources>

        <data-source>

            <set-property property="password" value="your password" />

            <set-property property="minCount" value="1" />

            <set-property property="maxCount" value="10" />

            <set-property property="user" value="you username" />

            <set-property property="driverClass" value="org.gjt.mm.mysql.Driver" />

            <set-property property="description" value="" />

            <set-property property="url" value="jdbc:mysql://localhost:3306/your database name" />

            <set-property property="readOnly" value="false" />

            <set-property property="autoCommit" value="true" />

            <set-property property="loginTimeout" value="" />

        </data-source>

    </data-sources>

    <form-beans>

    <form-bean name="helloForm" type="com.ben.test.struts.HelloForm"/>

</form-beans>

 <action-mappings>

 <action-mappings>

    <action path="/helloWorld" type="com.ben.test.struts.HelloAction" name="helloForm" scope="request" validate="true" input="/jsp/hello.jsp">

   <forward name="SayHello" path="/jsp/sayhello.jsp" />

   </action>

 </action-mappings>

 <message-resources parameter="com.ben.test.struts.Application" />

</struts-config>

 <data-source>定义了数据源,其中红色字体那几个地方需要设置为你自己的数据库名称、用户名、密码

 <data-source>定义了数据源,其中红色字体那几个地方需要设置为你自己的数据库名称、用户名、密码

<from-beans>设置了你新建的HelloForm

<action-mapping>设置了HelloFormHelloAction类的对应关系以及访问路径

<forward>定义了转发的jsp文件

 struts/web-inf目录下新建web.xml文件,内容如下:

 struts/web-inf目录下新建web.xml文件,内容如下:

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

<!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>

  <servlet>

    <servlet-name>action</servlet-name>

    <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>

    <init-param>

      <param-name>config</param-name>

      <param-value>/WEB-INF/struts-config.xml</param-value>

    </init-param>

    <load-on-startup>2</load-on-startup>

  </servlet>

  <servlet-mapping>

    <servlet-name>action</servlet-name>

    <url-pattern>*.do</url-pattern>

  </servlet-mapping>

  <taglib>

    <taglib-uri>/WEB-INF/struts-bean.tld</taglib-uri>

    <taglib-location>/WEB-INF/lib/struts-bean.tld</taglib-location>

  </taglib>

  <taglib>

    <taglib-uri>/WEB-INF/struts-html.tld</taglib-uri>

    <taglib-location>/WEB-INF/lib/struts-html.tld</taglib-location>

  </taglib>

  <taglib>

    <taglib-uri>/WEB-INF/struts-logic.tld</taglib-uri>

    <taglib-location>/WEB-INF/lib/struts-logic.tld</taglib-location>

  </taglib>

</web-app>

 注意红色部分,定义了接收请求的servlet类为org.apache.struts.action.ActionServlet这个servlet负责读取/WEB-INF/struts-config.xml以确定如何转发用户的http请求

 注意红色部分,定义了接收请求的servlet类为org.apache.struts.action.ActionServlet这个servlet负责读取/WEB-INF/struts-config.xml以确定如何转发用户的http请求

<taglib>只是定义了一些标签,这里就不详述了

 HelloForm.java的内容如下:

 HelloForm.java的内容如下:

package com.ben.test.struts;

import javax.servlet.http.HttpServletRequest;

import org.apache.struts.action.ActionError;

import org.apache.struts.action.ActionErrors;

import org.apache.struts.action.ActionForm;

import org.apache.struts.action.ActionMapping;

public final class HelloForm extends ActionForm{

  private String name;

  public String getName(){

    return name;

  }

  public void setName(String name){

    this.name = name;

  }

  public ActionErrors validate(ActionMapping mapping,HttpServletRequest request){

    ActionErrors errors = new ActionErrors();

    //错误处理,自己加上去

    return errors;

  }

}

 HelloAction.java的内容如下:

 HelloAction.java的内容如下:

package com.ben.test.struts;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import org.apache.struts.action.Action;

import org.apache.struts.action.ActionForm;

import org.apache.struts.action.ActionForward;

import org.apache.struts.action.ActionMapping;

 import java.sql.*;

 import java.sql.*;

import javax.sql.*;

 public final class HelloAction extends Action{

 public final class HelloAction extends Action{

  public ActionForward execute(ActionMapping mapping, ActionForm form,

                               HttpServletRequest request,

                               HttpServletResponse response) throws Exception{

    HelloForm helloForm=(HelloForm)form;

    String name =helloForm.getName();

    int id=0;

 

    DataSource dataSource = (DataSource)servlet.getServletContext().getAttribute(

         "org.apache.struts.action.DATA_SOURCE");

   try {

   try {

              Connection conn = dataSource.getConnection();

              Statement stmt = conn.createStatement();

              ResultSet rs = stmt.executeQuery("select * from nametable where name='"+name+"'");

              while(rs.next()){

                     id = rs.getInt("id");

              }

              rs.close();

              stmt.close();

              conn.close();

       }

       catch(SQLException e){

              throw new SQLException("database error");

       }

   

    request.setAttribute("name",new Integer(id));

   

    return mapping.findForward("SayHello");

  }

}

代码中根据struts-config中配置的数据源新建连接,然后根据name到数据库的nametable(我自己建的啊)中获取该name对应的id,然后将id的值放到request的属性中转发到sayhello

而更具struts-config的配置,sayhello对应的事sayhello.jsp这个文件

 Hello.jsp的内容如下:

 Hello.jsp的内容如下:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>

<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>

<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>

<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %>

<html:html locale="true">

<head>

  <title>test struts</title>

</head>

<body>

        <html:form action="/helloWorld">

           name : <html:text property="name"/>

           <html:submit/><html:cancel/>

       </html:form>

</body>

</html:html>

 Sayhello.jsp的内容如下:

 Sayhello.jsp的内容如下:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>

<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>

<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>

<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %>

<html:html locale="true">

<head>

  <title>test struts</title>

</head>

<body>

        welcome <%=request.getAttribute("name")%>

</body>

</html:html>

 非常简单的一个例子,希望对大家有帮助

 非常简单的一个例子,希望对大家有帮助

zaiben@smth,55555555555,@smth,55555555555,水木死掉了 2005-4-16

zaiben@smth,55555555555,@smth,55555555555,水木死掉了 2005-4-16

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值