- 浏览: 416810 次
- 性别:
- 来自: 广州
文章分类
最新评论
-
u010620626:
foreach是最快的,因为php的array内部元素之间有指 ...
[流言终结者] PHP for / foreach / while 性能比较 -
ostrich_sun:
谢楼主
Sybase PowerDesigner 12.5 破解补丁/序列号/注册码 -
xuxueqin29:
为什么我这边用不上
Sybase PowerDesigner 12.5 破解补丁/序列号/注册码 -
sdpfoue:
http://www.php-internals.com/bo ...
[流言终结者] PHP for / foreach / while 性能比较 -
nakupanda:
lovelease 写道nakupanda 写道你应该去阅读一 ...
java调用microsoft translate api webservice
原文时间:2007-10-11
昨天拿起副班长的一本JSP书,复习了一下Struts基础才发现自己把东西忘记得很干净,同时也发现那本<JSP网络编程技术与实例>有关Struts那部分存在不少问题(实际上是很多问题,包括配置和编译问题,语法错误问题等等,我相当怀疑书上的例子是闭上眼乱敲上去的,CD里的另论),如果从空白跟着那章书一步一步地做我想写个helloworld也是相当困难。为让副班长以后少走弯路挤出更多时间为逃课的同学服务,我将该书有关Struts那部分的例子修正了一下并写下来。
使用IDE很方便没错,但那是生产时的事情,学习始终从细节开始比较好,在遇上问题而不知原因的时候再花时间去研究投资可能更大。
往下阅读之前,确定你的tomcat已能正常运行使用,这就是说,你的JDK没有问题,TOMCAT也没有问题。
一、下载Struts和建立编译运行Struts的环境
下载页面:http://struts.apache.org/downloads.html
选择你需要的版本,我使用的是Struts 1.3.8,不建议下载较旧的版本,因为有些特性已改动较大或者废除。
解压下载完的ZIP文件,得到一堆.jar文件,将他们复制到你运行JSP/Servlet的TOMCAT目录的WEB-INF/lib(注意大小写)目录下,如果没有WEB-INF/lib目录请新建一个并把Struts的.jar文件复制到该目录。请确保你的WEB-INF/目录下存在lib和classes目录,如果不存在请建立相应的目录。
至此,编译和运行Struts的准备工作其实已经做好了。
二、编写、编译一个最简单的Struts例子
我希望你能将MVC想像成一部电视机,你按下频道按钮(控制器),屏幕(视图)就会显示你想看的频道信号(模型)的图像。屏幕(视图)能将频道的视频信号(模型)转化成我们喜欢的图像,我们想看哪个频道(模型)要通过按钮(控制器)选择,然后就可以从屏幕(视图)上看到了。
本例是一个验证输入用户名和密码的程序,模型是代表一个账号(含有用户名和密码)的JavaBean,控制器本质上是一个Servlet,负责验证用户名和密码并转向有关页面,视图是3个JSP文件和一个代表输入表单的JavaBean,负责提供输入界面、验证成功和验证失败时要显示的页面和封装表单数据(什么是封装表单数据不用理会,只要知道点击了提交按钮后我们可以从这个代表输入表单的JavaBean中拿到表单的数据就行了),还有一个简单的消息资源文件,用于提供一些文字信息,例如网页的标题,用户名输入框前面的“用户名”之类的文字。
1、模型
在WEB-INF/classes下建立目录login,再在login下建立目录model,在model目录中新建一个名为AccountBean.java的文件,内容如下:
假设AccountBean.java位于e:\struts\WEB-INF\classes\login\model下,打开windows的命令行模式,键入:javac e:\struts\WEB-INF\classes\login\model\AccountBean.java 然后回车,如无意外编译完成后model目录中会增加一个AccountBean.class文件。
2、视图
a、输入页面 login.jsp
在主目录(如果刚才模型位于e:\struts\WEB-INF\classes\login\model下,那么.jsp文件就放在e:\struts下,其实放在classes下也没所谓,不过不能直接请求)新建一个名为login.jsp的文件,内容如下:
b、验证成功页面 success.jsp
在login.jsp相同的目录中新建success.jsp,内容如下:
验证成功的页面
c、验证失败页面 fail.jsp
在login.jsp相同的目录中新建fail.jsp,内容如下:
验证失败的页面
d、代表输入表单的JavaBean LoginForm.java
在WEB-INF/classes/login目录下建立目录form,再在form目录下建立名为LoginForm.java的文件,内容如下:
手工编译这个文件有点麻烦,需要指定classpath,当然如果你成功将Servlet和Struts加入系统环境变量中可以省去classpath。
假设TOMCAT的主目录是e:\tomcat,LoginForm.java位于e:\struts\WEB-INF\classes\login\form下,打开windows的命令行模式,键入:javac -classpath e:\tomcat\lib\servlet-api.jar;e:\struts\WEB-INF\lib\struts-core-1.3.8.jar e:\struts\WEB-INF\classes\login\form\LoginForm.java 然后回车,如无意外编译完成后form目录中会增加一个LoginForm.class文件。
3、控制器
在WEB-INF/classes/login目录下建立目录action,再在action目录下建立名为LoginAction.java的文件,内容如下:
假设路径信息如上例,打开windows的命令行模式,键入:javac -classpath e:\tomcat\lib\servlet-api.jar;e:\struts\WEB-INF\lib\struts-core-1.3.8.jar;e:\struts\WEB-INF\classes e:\struts\WEB-INF\classes\login\action\LoginAction.java 然后回车
4、消息资源文件
在WEB-INF/classes/login下建立一个名为ApplicationResources.properties的文件,内容如下:
login.jsp.error.no.name = no name
login.jsp.error.no.password = no password
login.jsp.error.wrong.account = wrong account input
login.jsp.title = struts test
login.jsp.username = UserName:
login.jsp.password = Password:
三、运行这个最简单的Struts例子
在WEB-INF目录下新建一个名为web.xml文件(如果存在则修改),内容如下:
再在WEB-INF目录下新建一个名为struts-config.xml的文件(如果存在则修改),内容如下:
一切都准备好了,现在重启你的TOMCAT,输入相应的路径访问 /login.jsp .
昨天拿起副班长的一本JSP书,复习了一下Struts基础才发现自己把东西忘记得很干净,同时也发现那本<JSP网络编程技术与实例>有关Struts那部分存在不少问题(实际上是很多问题,包括配置和编译问题,语法错误问题等等,我相当怀疑书上的例子是闭上眼乱敲上去的,CD里的另论),如果从空白跟着那章书一步一步地做我想写个helloworld也是相当困难。为让副班长以后少走弯路挤出更多时间为逃课的同学服务,我将该书有关Struts那部分的例子修正了一下并写下来。
使用IDE很方便没错,但那是生产时的事情,学习始终从细节开始比较好,在遇上问题而不知原因的时候再花时间去研究投资可能更大。
往下阅读之前,确定你的tomcat已能正常运行使用,这就是说,你的JDK没有问题,TOMCAT也没有问题。
一、下载Struts和建立编译运行Struts的环境
下载页面:http://struts.apache.org/downloads.html
选择你需要的版本,我使用的是Struts 1.3.8,不建议下载较旧的版本,因为有些特性已改动较大或者废除。
解压下载完的ZIP文件,得到一堆.jar文件,将他们复制到你运行JSP/Servlet的TOMCAT目录的WEB-INF/lib(注意大小写)目录下,如果没有WEB-INF/lib目录请新建一个并把Struts的.jar文件复制到该目录。请确保你的WEB-INF/目录下存在lib和classes目录,如果不存在请建立相应的目录。
至此,编译和运行Struts的准备工作其实已经做好了。
二、编写、编译一个最简单的Struts例子
我希望你能将MVC想像成一部电视机,你按下频道按钮(控制器),屏幕(视图)就会显示你想看的频道信号(模型)的图像。屏幕(视图)能将频道的视频信号(模型)转化成我们喜欢的图像,我们想看哪个频道(模型)要通过按钮(控制器)选择,然后就可以从屏幕(视图)上看到了。
本例是一个验证输入用户名和密码的程序,模型是代表一个账号(含有用户名和密码)的JavaBean,控制器本质上是一个Servlet,负责验证用户名和密码并转向有关页面,视图是3个JSP文件和一个代表输入表单的JavaBean,负责提供输入界面、验证成功和验证失败时要显示的页面和封装表单数据(什么是封装表单数据不用理会,只要知道点击了提交按钮后我们可以从这个代表输入表单的JavaBean中拿到表单的数据就行了),还有一个简单的消息资源文件,用于提供一些文字信息,例如网页的标题,用户名输入框前面的“用户名”之类的文字。
1、模型
在WEB-INF/classes下建立目录login,再在login下建立目录model,在model目录中新建一个名为AccountBean.java的文件,内容如下:
package login.model; public class AccountBean { private String userName; private String password; public String getUserName() { return userName; } public void setUserName(String userName) { this.userName = userName; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } }
假设AccountBean.java位于e:\struts\WEB-INF\classes\login\model下,打开windows的命令行模式,键入:javac e:\struts\WEB-INF\classes\login\model\AccountBean.java 然后回车,如无意外编译完成后model目录中会增加一个AccountBean.class文件。
2、视图
a、输入页面 login.jsp
在主目录(如果刚才模型位于e:\struts\WEB-INF\classes\login\model下,那么.jsp文件就放在e:\struts下,其实放在classes下也没所谓,不过不能直接请求)新建一个名为login.jsp的文件,内容如下:
<%@ page language="java"%> <%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %> <%@ taglib uri="http://struts.apache.org/tags-html" prefix="html" %> <html> <head> <title> <bean:message key="login.jsp.title" /> </title> </head> <body> <html:form action="/login"> <bean:message key="login.jsp.username" /> <html:text property="userName" /> <html:errors property="userName" /> <br /> <bean:message key="login.jsp.password" /> <html:password property="password" /> <html:errors property="password" /> <br /> <html:submit /> <html:cancel /> </html:form> </body> </html>
b、验证成功页面 success.jsp
在login.jsp相同的目录中新建success.jsp,内容如下:
验证成功的页面
c、验证失败页面 fail.jsp
在login.jsp相同的目录中新建fail.jsp,内容如下:
验证失败的页面
d、代表输入表单的JavaBean LoginForm.java
在WEB-INF/classes/login目录下建立目录form,再在form目录下建立名为LoginForm.java的文件,内容如下:
package login.form; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.struts.action.Action; import org.apache.struts.action.ActionErrors; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping; import org.apache.struts.action.ActionMessage; import org.apache.struts.action.ActionMessages; public class LoginForm extends ActionForm { private String userName; private String password; public ActionErrors validate(ActionMapping mapping,HttpServletRequest request) { ActionErrors errors = new ActionErrors(); if(userName==null||userName.length()<1) errors.add("userName",new ActionMessage("login.jsp.no.name.error")); if(password==null||password.length()<1) errors.add("password",new ActionMessage("login.jsp.no.password.error")); return errors; } public void reset(ActionMapping mapping,HttpServletRequest request) { userName=null; password=null; } public String getUserName() { return userName; } public void setUserName(String userName) { this.userName=userName; } public String getPassword() { return password; } public void setPassword(String password) { this.password=password; } }
手工编译这个文件有点麻烦,需要指定classpath,当然如果你成功将Servlet和Struts加入系统环境变量中可以省去classpath。
假设TOMCAT的主目录是e:\tomcat,LoginForm.java位于e:\struts\WEB-INF\classes\login\form下,打开windows的命令行模式,键入:javac -classpath e:\tomcat\lib\servlet-api.jar;e:\struts\WEB-INF\lib\struts-core-1.3.8.jar e:\struts\WEB-INF\classes\login\form\LoginForm.java 然后回车,如无意外编译完成后form目录中会增加一个LoginForm.class文件。
3、控制器
在WEB-INF/classes/login目录下建立目录action,再在action目录下建立名为LoginAction.java的文件,内容如下:
package login.action; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.struts.action.Action; import org.apache.struts.action.ActionErrors; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping; import org.apache.struts.action.ActionMessage; import org.apache.struts.action.ActionMessages; import login.form.LoginForm; import login.model.AccountBean; public class LoginAction extends Action { public ActionForward execute(ActionMapping mapping,ActionForm form,HttpServletRequest request,HttpServletResponse response) { LoginForm loginForm = (LoginForm)form; AccountBean ab=new AccountBean(); String userName=(String)loginForm.getUserName(); String password=(String)loginForm.getPassword(); ab.setUserName(userName); ab.setPassword(password); if(userName.equals("admin")&&password.equals("admin")) return mapping.findForward("success"); else return mapping.findForward("fail"); } }
假设路径信息如上例,打开windows的命令行模式,键入:javac -classpath e:\tomcat\lib\servlet-api.jar;e:\struts\WEB-INF\lib\struts-core-1.3.8.jar;e:\struts\WEB-INF\classes e:\struts\WEB-INF\classes\login\action\LoginAction.java 然后回车
4、消息资源文件
在WEB-INF/classes/login下建立一个名为ApplicationResources.properties的文件,内容如下:
login.jsp.error.no.name = no name
login.jsp.error.no.password = no password
login.jsp.error.wrong.account = wrong account input
login.jsp.title = struts test
login.jsp.username = UserName:
login.jsp.password = Password:
三、运行这个最简单的Struts例子
在WEB-INF目录下新建一个名为web.xml文件(如果存在则修改),内容如下:
<?xml version="1.0" encoding="ISO-8859-1"?> <!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> <display-name>www.badboy.net.cn</display-name> <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> <welcome-file-list> <welcome-file>login.jsp</welcome-file> </welcome-file-list> </web-app>
再在WEB-INF目录下新建一个名为struts-config.xml的文件(如果存在则修改),内容如下:
引用
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE struts-config PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 1.3//EN"
"http://struts.apache.org/dtds/struts-config_1_3.dtd">
<struts-config>
<form-beans>
<form-bean name="loginForm" type="login.form.LoginForm"/>
</form-beans>
<global-exceptions />
<global-forwards />
<action-mappings>
<action
attribute="loginForm"
input="/login.jsp"
name="loginForm"
path="/login"
scope="request"
validate="true"
type="login.action.LoginAction" >
<forward name="success" path="/welcome.jsp" />
<forward name="fail" path="/fail.jsp" />
</action>
</action-mappings>
<message-resources parameter="login.ApplicationResources" />
</struts-config>
<!DOCTYPE struts-config PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 1.3//EN"
"http://struts.apache.org/dtds/struts-config_1_3.dtd">
<struts-config>
<form-beans>
<form-bean name="loginForm" type="login.form.LoginForm"/>
</form-beans>
<global-exceptions />
<global-forwards />
<action-mappings>
<action
attribute="loginForm"
input="/login.jsp"
name="loginForm"
path="/login"
scope="request"
validate="true"
type="login.action.LoginAction" >
<forward name="success" path="/welcome.jsp" />
<forward name="fail" path="/fail.jsp" />
</action>
</action-mappings>
<message-resources parameter="login.ApplicationResources" />
</struts-config>
一切都准备好了,现在重启你的TOMCAT,输入相应的路径访问 /login.jsp .
发表评论
-
java 线程池
2011-02-11 23:19 1106package test; import java. ... -
axis 1.4 使用 digest authentication
2011-01-15 11:41 22091, 配置client-config.wsdd, 其中一个方法 ... -
[转]java中byte转换int时为何与0xff进行与运算
2010-12-01 15:15 1661在剖析该问题前请看如 ... -
java 位操作
2010-12-01 14:05 1030以下是java位操作符的小总结,具体如下: 二进制负数以它正 ... -
JAVA 进制表示
2010-11-30 10:25 1837由于数据在计算机中的表示,最终以二进制的形式存在,所以有时候使 ... -
java调用microsoft translate api webservice
2010-06-28 23:47 3951想做个东西简体转繁体,找到微软的API可用: http://m ... -
Java 获得文件编码
2010-04-15 10:24 1586package cn.net.badboy.subtitl ... -
解决 STRUTS2 GET 参数中文乱码问题
2010-03-10 11:39 7102STRUTS2中使用GET中文参数乱码问题,网上讨论这个问题的 ... -
struts2 if 中使用请求参数parameters
2010-03-09 11:32 1560#parameters.station[0]相当于<%= ... -
Google Sitemap 生成工具
2010-02-02 11:51 802如题如题 使用方式见压缩包内readme.txt ... -
xml java 类映射工具
2010-01-05 08:34 1113http://www.iteye.com/news/12756 ... -
只读的JTable
2009-10-26 09:33 1654JTable table = new JTable( ... -
JLabel中的鼠标形状
2009-10-20 08:39 1395JLabel label = new JLabel(&qu ... -
一个JUNIT4测试
2009-10-15 11:22 1312/** * */ package bookst ... -
一个提取EMAIL的正则表达式
2009-10-08 10:27 1213Pattern p = Pattern.c ... -
TextAnalyser ,分析文本中的字母出现次数、百分比等
2009-04-12 06:13 1311碰巧要做这个作业的同学低调地参考一下 public ... -
输出指定小数位数double值
2009-04-12 05:34 2776new java.math.BigDecimal(myDoub ... -
Spring简单使用
2009-03-20 12:21 1129时间: 2007-12-19 使用Spring的一些好处: ... -
使用ant构建应用
2009-03-20 12:19 1242时间: 2007-12-18 使用an ... -
一个switch中的关于变量声名和使用的问题
2009-03-20 12:17 1124时间: 2007-12-17 先看看几句简单的代码 ...
相关推荐
### 徒手配置Struts2的关键知识点 #### 一、徒手配置Struts2环境时需注意的关键事项 ...此外,通过深入理解配置文件的每一个元素,可以帮助开发者更好地掌握Struts2的工作原理,从而提高应用程序的开发效率和质量。
Struts2.0是一个用于Java EE平台的开源Web应用程序框架,是Struts1.x的升级版。它采用了MVC(Model-View-Controller)设计模式,简化了Web应用的开发和维护工作。 **主要特点:** 1. **MVC设计模式:** 将业务逻辑...
- JDK的下载、安装和环境变量配置,使Java开发者可以在IDE中顺利编译和运行Java代码; - 服务器的安装配置,如Tomcat和JBoss,它们对于Web应用程序的开发和测试至关重要; - 数据库的安装配置,这里以MySQL5为例...
学习Maven的生命周期、插件管理和配置,以及Struts2和Spring的原理和实践,将有助于提升开发者在企业级应用开发中的效率和能力。同时,了解如何自动化部署到Tomcat或其他应用服务器,也是现代开发流程中不可或缺的一...
Struts2的配置文件struts.xml中,定义Action类和结果映射。最后,Ibatis的配置文件sqlMapConfig.xml中,包含SQL映射信息。 总的来说,这个组合提供了完整的Web应用程序解决方案,从项目构建到数据库操作,涵盖了...
Ant是Apache软件基金会Jakarta项目的一个子项目,它是一个基于Java的构建工具,用来替代Java应用程序的构建过程中手工执行Java编译、测试、部署等步骤。Ant使用XML来描述构建过程,这使得构建脚本独立于开发环境,...
1. JDK的下载、安装和配置 - 从官方网站下载JDK并安装。 - 配置环境变量,使JDK能够被系统识别。 - 下载中文文档以方便查阅JDK相关资料。 2. 服务器的下载、安装和运行 - 选择合适的Tomcat、JBoss等服务器,并...
1.5.1 MySQL 5 官方版本的下载和安装,运行 32 1.5.2 MySQL 5绿色版的下载安装和运行 32 1.5.2.1 下载 32 1.5.2.2 用法图解 33 1.6 Eclipse 3.3的下载,安装和运行 35 1.7 MyEclipse 6的下载,安装和运行 37 1.7.1...
接着,作者通过实例引导读者开发第一个Java应用程序,无论是手工编写、编译运行Java程序,还是使用Eclipse/MyEclipse来编写、编译并运行Java程序,都是为了让读者了解Java程序的基本运行过程。这部分内容主要帮助...
1. **环境搭建**: 包括JDK、Tomcat、JBoss和MySQL等服务器软件的下载、安装和配置流程。这是进行任何Java Web应用开发的基础。 2. **集成开发环境(IDE)的选择**: Eclipse 和 MyEclipse 的安装与使用,特别是 ...
目前在将struts2部署到weblogic8.1.6的时候,总会提示很多莫名其妙的错误,后来经过查找时因为struts2是需要jdk1.5的,但是weblogic是使用的是1.4,所以在使用的时候需要将struts2和相关的jar文件用jdk1.4编译一下。...
- **手工和自动编译:** 手动触发编译任务或设置自动编译选项。 - **直接粘贴 Java 源码为类文件:** 快速创建类文件的方法。 - **复制项目中的文件:** 复制文件至项目中的其他位置。 - **断点和调试器:** 使用断点...
- **Tomcat服务器的下载、安装和运行**:提供了Tomcat的安装指南及其运行方式。 - **JBoss服务器的下载、安装和运行**:介绍了JBoss的安装流程与启动方法。 - **MySQL 5 数据库服务器下载、安装和运行** - **MySQL ...