安装tomcat插件
安装tomcat插件注意要将jdk的tools.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.java和HelloAction.java文件
新建web-inf/src/com/ben/test/struts目录,在目录下新建HelloForm.java和HelloAction.java文件
在struts目录下新建jsp目录以存放jsp文件,目录下新建hello.jsp和sayhello.jsp
在struts目录下新建jsp目录以存放jsp文件,目录下新建hello.jsp和sayhello.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>设置了HelloForm和HelloAction类的对应关系以及访问路径
<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