`
fanjava
  • 浏览: 240123 次
  • 来自: ...
文章分类
社区版块
存档分类
最新评论

Struts开发

阅读更多

我们第一步开始配置Tomcat的连接池<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

首先我们将MySQL的JDBC驱动拷贝到${TOMCAT_HOME}\common\lib下面,更改MyWeb设置如下

<Context path="/MyWeb" reloadable="true" docBase="E:\DEV\MyWeb\web"

workDir="E:\DEV\MyWeb\work\org\apache\jsp" >

<!--

设置连接池的JNDI名

-->

<Resource name="jdbc/mysql" auth="Container"

type="javax.sql.DataSource"/>

<ResourceParams name="jdbc/mysql">

<!--

工厂类

-->

<parameter>

<name>factory</name>

<value>org.apache.commons.dbcp.BasicDataSourceFactory</value>

</parameter>

<!--

连接池基本设置

-->

<parameter>

<name>maxActive</name>

<value>100</value>

</parameter>

<parameter>

<name>maxIdle</name>

<value>30</value>

</parameter>

<parameter>

<name>maxWait</name>

<value>10000</value>

</parameter>

<parameter>

我们编写资源文件

password=<font color=red>密码格式错误</font>

userName=<font color=red>帐号格式错误</font>

hbm.session.error=建立Hibernate Session 错误。

no.user=找不到这样得用户。

hbm.session.query=Hibernate HQL 查询错误。

errors.header=</font color=red><ul>

errors.footer=</ul></font>

Logon=登陆

Logon.UserName=帐号

Logon.Password=密码

保存到C:/1.txt

然后运行

native2ascii -encoding GBK C:/1.txt C:/ApplicationResources_zh_CN.properties

将生成得C:/ApplicationResources_zh_CN.properties拷贝到src目录下,我们重新运行此登陆程序。

出现乱码,我们忘了将JSP页面编码设成UTF-8了,添加

contentType="text/html;charset=UTF-8",再次刷新

<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" /><shapetype id="_x0000_t75" stroked="f" filled="f" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t" o:spt="75" coordsize="21600,21600"><stroke joinstyle="miter"></stroke><formulas><f eqn="if lineDrawn pixelLineWidth 0"></f><f eqn="sum @0 1 0"></f><f eqn="sum 0 0 @1"></f><f eqn="prod @2 1 2"></f><f eqn="prod @3 21600 pixelWidth"></f><f eqn="prod @3 21600 pixelHeight"></f><f eqn="sum @0 0 1"></f><f eqn="prod @6 1 2"></f><f eqn="prod @7 21600 pixelWidth"></f><f eqn="sum @8 21600 0"></f><f eqn="prod @7 21600 pixelHeight"></f><f eqn="sum @10 21600 0"></f></formulas><path o:connecttype="rect" gradientshapeok="t" o:extrusionok="f"></path><lock aspectratio="t" v:ext="edit"></lock></shapetype><shape id="_x0000_i1026" style="WIDTH: 165pt; HEIGHT: 75pt" type="#_x0000_t75"><img src="http://www.csdn.net/Develop/ArticleImages/26/26118/CSDN_Dev_Image_2004-3-271455050.png" o=""><font size="3"></font></shape>

OK成功

当你在帐号框里面输入中文,但是没有通过,就会出现下图现象。

<shape id="_x0000_i1025" style="WIDTH: 174.75pt; HEIGHT: 91.5pt" type="#_x0000_t75"><img src="http://www.csdn.net/Develop/ArticleImages/26/26118/CSDN_Dev_Image_2004-3-271455052.png" o=""><font size="3"></font></shape>

又出现乱码,这样的情况解决办法有3个:

1. 在每一个Action里面设置Response得编码,这种方法比较繁琐,每一个Action必须设置一次。

2. 利用Servlet2.3里面得过滤器,统一设置编码

3. 重载ActionServlet里面的Process函数。

1种方法很难通过XML配置来获得编码方式。

23可以通过Web.xml里面配置参数来解决

本文讲述时利用方式2,过滤器Filter

Tomcat里面的samples里面的Filter文件夹下有现成的编码过滤器。

拷贝来,在Eclipse利用重构,解决package不匹配问题。

下面为这个过滤器配置web.xml

<!--

Filter

-->

<filter>

<filter-name>Set Character Encoding</filter-name>

<filter-class>com.yjsoft.filter.SetCharacterEncodingFilter</filter-class>

<init-param>

<param-name>encoding</param-name>

<param-value>UTF-8</param-value>

</init-param>

</filter>

<filter-mapping>

<filter-name>Set Character Encoding</filter-name>

<url-pattern>/*</url-pattern>

</filter-mapping>

<!--

end

-->

再次启动Tomcat测试,OK。

下面开始处理JSP页面出错情况

添加错误页面,内容如下:

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

<%@ page isErrorPage="true" %>

……其他省略,请看源文件

当要在其他页面处理Exception时,只要在头部添加

<%@ page errorPage="error.jsp" %>

测试如下:

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

<%@ taglib uri="/tags/struts-bean" prefix="bean"%>

<%@ taglib uri="/tags/struts-html" prefix="html"%>

<%@ page errorPage="error.jsp" %>

<%

int n=0;

int n1=10/n;

%>

请求时转向出错页面:

<shapetype id="_x0000_t75" stroked="f" filled="f" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t" o:spt="75" coordsize="21600,21600"><stroke joinstyle="miter"></stroke><formulas><f eqn="if lineDrawn pixelLineWidth 0"></f><f eqn="sum @0 1 0"></f><f eqn="sum 0 0 @1"></f><f eqn="prod @2 1 2"></f><f eqn="prod @3 21600 pixelWidth"></f><f eqn="prod @3 21600 pixelHeight"></f><f eqn="sum @0 0 1"></f><f eqn="prod @6 1 2"></f><f eqn="prod @7 21600 pixelWidth"></f><f eqn="sum @8 21600 0"></f><f eqn="prod @7 21600 pixelHeight"></f><f eqn="sum @10 21600 0"></f></formulas><path o:connecttype="rect" gradientshapeok="t" o:extrusionok="f"></path><lock aspectratio="t" v:ext="edit"></lock></shapetype><shape id="_x0000_i1026" style="WIDTH: 225.75pt; HEIGHT: 122.25pt" type="#_x0000_t75"><img src="http://www.csdn.net/Develop/ArticleImages/26/26119/CSDN_Dev_Image_2004-3-271456250.png" o=""></shape>

下面测试Action中的Exception。

现在我们开始为Action中的异常定义处理。

先配置全局Exception

<global-exceptions>

<exception key="errors.message" path="actionerror.jsp" scope=request type="java.lang.Exception" />

</global-exceptions>

修改我们的LogonAction使其抛出一个异常。这样全局配置文件就可以进行处理了

<shape id="_x0000_i1025" style="WIDTH: 103.5pt; HEIGHT: 65.25pt" type="#_x0000_t75"><img src="http://www.csdn.net/Develop/ArticleImages/26/26119/CSDN_Dev_Image_2004-3-271456252.png" o=""></shape>

上面的验证是通过Server端来的,我们继承了ActionForm,其实我们有一种更简单的方式,那就是利用Validator组件。

使用validator组件,既可以支持客户端的验证,同时Server端也进行同样验证。同时验证方式可以重用。

我们来认识一下Struts1.1的Validator。

1.Validators
一个Validator就是,执行一个验证规则时Validator框架调用的一个Java类。框架根据配置文件中定义的方法签名来调用这个Validaotor类。一般情况下,每个Validator类提供一个单独的验证规则,然后这些规则可以组合成更复杂的规则集。Validator框架提供了Web应用程序需要的大多数的验证规则。你可以使用这些现有的验证规则来创建自己验证配置文件。我们也可以根据需要随意的增加更多的Validator。

2.配置文件

Struts1.1的Validator框架,用到这样两个配置文件,一个叫validator-rules.xml,另一个叫validation.xml;其实你也可以随意的给他们命名,甚至可以把它们合并成一个XML文件。但是,你还是最好把它们分开,因为它们各有各的用途。

Validator-rules.xml文件
validator-rules.xml文件定义应用程序可以使用的Validator。Validator-rules.xml充当模板的作用,定义所有应用程序可能要用到的Validator。

下面我们重新设计我们的LogonForm

改为

public class LogonForm extends ValidatorForm/*ActionForm*/

我们注释掉ActionForm的Validate()函数。

我们配置Struts-config.xml文件,在文件最后增加

<plug-in className="org.apache.struts.validator.ValidatorPlugIn">

<set-property property="pathnames" value="/WEB-INF/validator-rules.xml,/WEB-INF/validation.xml" />

</plug-in>

下面我们修改validation.xml文件

增加

<form name="logonForm">

<field

property="userName"

depends="required">

<arg0 key="userName" resource="false"/>

</field>

<field

property="password"

depends="required">

<arg0 key="password" resource="false"/>

</field>

</form>

同时在资源文件中增加

errors.required={0} is required.

重新启动程序,那么登陆程序服务器端验证就起作用了。

下面我们来添加Client端的Javascript验证。

修改Logon.jsp

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

<%@ taglib uri="/tags/struts-bean" prefix="bean"%>

<%@ taglib uri="/tags/struts-html" prefix="html"%>

<%@ page errorPage="error.jsp" %>

<html>

<head>

<title><bean:message key="Logon"/></title>

</head>

<body>

<html:errors property="hbm.session.error"/>

<html:errors property="no.user"/>

<html:errors property="hbm.session.query"/>

<html:form action="/jsp/logon.do" focus="userName"

onsubmit="return validateLogonForm(this)">

<bean:message key="Logon.UserName"/> : <html:text property="userName"/><html:errors property="userName"/></br>

<bean:message key="Logon.Password"/> : <html:text property="password"/><html:errors property="password"/></br>

<html:submit>

<bean:message key="Logon.Submit"/>

</html:submit>

</html:form>

<html:javascript dynamicJavascript="true" staticJavascript="true" formName=logonForm/>

<body>

</html>

<shapetype id="_x0000_t75" stroked="f" filled="f" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t" o:spt="75" coordsize="21600,21600"><stroke joinstyle="miter"></stroke><formulas><f eqn="if lineDrawn pixelLineWidth 0"></f><f eqn="sum @0 1 0"></f><f eqn="sum 0 0 @1"></f><f eqn="prod @2 1 2"></f><f eqn="prod @3 21600 pixelWidth"></f><f eqn="prod @3 21600 pixelHeight"></f><f eqn="sum @0 0 1"></f><f eqn="prod @6 1 2"></f><f eqn="prod @7 21600 pixelWidth"></f><f eqn="sum @8 21600 0"></f><f eqn="prod @7 21600 pixelHeight"></f><f eqn="sum @10 21600 0"></f></formulas><path o:connecttype="rect" gradientshapeok="t" o:extrusionok="f"></path><lock aspectratio="t" v:ext="edit"></lock></shapetype><shape id="_x0000_i1025" style="WIDTH: 339pt; HEIGHT: 139.5pt" type="#_x0000_t75"><img src="http://www.csdn.net/Develop/ArticleImages/26/26120/CSDN_Dev_Image_2004-3-271457470.png" o=""></shape>

OK

下一此按Excel计划开始贯彻前期思想。

下载Excel计划,本期源文件

分享到:
评论

相关推荐

    Struts开发框架简介

    Struts开发框架是一款基于MVC(Model-View-Controller)设计模式的开源Java Web应用程序框架,由Apache软件基金会维护。它的出现旨在解决JSP页面和Servlet在处理动态Web内容时的混乱情况,提供一个结构化的解决方案...

    struts开发的各类jar包

    在“struts开发的各类jar包”中,我们可以找到实现Struts框架功能的各种组件。 1. **核心库(Core Libraries)**:Struts的核心库主要包括`struts-core.jar`,这个文件包含了Struts框架的核心组件,如Action、Form...

    struts开发需要的包

    在Struts开发中,以下是一些关键知识点: 1. **Struts Core**: `struts-core-1.3.5.jar` 是Struts的核心库,包含了Action、ActionForm、ActionServlet等核心类和接口。它负责处理HTTP请求,调度Action,执行业务...

    struts开发包

    标题提到的"struts开发包"指的是Struts框架的核心库,版本为2.3.31。这个版本包含了开发Struts应用程序所需的所有核心组件和依赖。在使用Struts进行开发时,这个开发包是必不可少的,因为不导入它,你的代码将无法...

    Struts开发包

    标题"Struts开发包"暗示这是一个包含Struts2框架所需的所有组件和库的集合,用于帮助开发者快速搭建和运行Struts2应用程序。这可能包括Struts2的核心库、依赖的JAR文件、示例代码、文档等资源,旨在简化开发流程,...

    struts开发入门与项目实践

    struts开发入门与项目实践光盘源码 里面有几个struts项目案例

    Struts开发模式经验总结

    以下是对Struts开发模式的一些关键知识点的详细说明: 1. **Struts1.1 标签使用**: Struts1.1 提供了一系列的JSP标签库,如logic、bean、html等,这些标签简化了视图层的开发。例如,`&lt;html:form&gt;`用于创建表单,...

    struts开发入门与项目实践 源码

    struts开发入门与项目实践的源码,很多人发邮件和我要。就发到csdn里了。忘各位发email和我要的人见谅。要分是因为我也要下载东西。发到csdn是因为给很多人发附件是个痛苦的事情…… 还有就是由于上传限制。去掉了...

    struts开发所用七个jar包

    在Struts框架中,七个核心的JAR文件对于开发和运行Struts应用至关重要。这些JAR文件提供了Struts框架所需的各种组件和服务,使得开发者能够更有效地构建动态、交互式的Web应用。 1. **struts-core-x.x.x.jar**:这...

    Struts开发实例.rar

    一共有14个Struts开发实例:    1、JavaWebStudio常见问题解答;  2、JavaWebStudio系列开发工具简介;  3、Struts完全中文显示解决方案;  4、如何实现分页打印;  5、最简单的Struts程序;  6、...

    经典struts开发集合

    标题"经典Struts开发集合"暗示了这是一个包含多个示例和教程的资源包,旨在帮助开发者深入理解和应用Struts框架。这些示例可能涵盖了从基础到高级的各种用法,包括但不限于Action、Form Bean、Tiles、国际化、异常...

    struts开发环境配置

    在本配置教程中,我们将讨论如何搭建一个用于Struts开发的环境,包括安装Apache Tomcat服务器和配置JDK以及集成开发环境MyEclipse。 首先,我们需要下载Apache Tomcat服务器。在提供的文件中,我们看到的是`apache-...

    struts 开发工具jar包

    Struts是Apache软件基金会下的一个开源项目,主要是一款基于MVC(Model-View-Controller)设计模式的Java Web开发框架。Struts 2是其后续版本,它极大地改进了Struts 1的功能,并且整合了其他优秀的框架,如WebWork...

    struts开发相关插件

    在本压缩包中,包含的"struts开发相关插件"无疑为开发者提供了宝贵的资源,帮助他们提升开发效率,优化项目结构。下面将详细阐述这些插件的功能及其在Struts开发中的应用。 1. Struts GEF (Graphical Editing ...

    struts开发环境搭建过程

    在本教程中,我们将详细讲解如何搭建一个Struts开发环境,以便初学者能够快速入门。 首先,我们需要安装Java开发环境。Java是Struts的基础,因此确保你的系统上已经安装了JDK(Java Development Kit)。你可以访问...

    struts开发标准包

    标题中的"struts开发标准包"指的是包含Struts框架核心组件和其他相关依赖的集合,用于简化Struts应用的开发和部署过程。 描述中提到的问题,即在启动Tomcat服务器时遇到Struts相关的错误,通常是因为缺少必要的库...

    hibernate,Struts开发指南整合

    【hibernate,Struts开发指南整合】是一个针对初学者的综合教程,旨在帮助读者掌握两种主流的Java Web开发框架——Hibernate和Struts。Hibernate是一个强大的对象关系映射(ORM)框架,它允许开发者用面向对象的方式...

    struts开发用lib

    "struts开发用lib"这个标题表明我们关注的是Struts2框架所需的库文件,这些文件对于构建和运行一个有效的Struts2应用至关重要。描述中的"struts2开发"进一步确认了我们将深入探讨Struts2的开发过程。 Struts2的核心...

    myEclipse中配置struts开发环境

    在myEclipse中配置Struts开发环境,可以帮助开发者更高效地进行MVC(Model-View-Controller)架构的开发。以下将详细介绍如何在myEclipse中配置Struts2的开发环境。 1. **安装myEclipse** 首先,确保已经安装了...

    STRUTS开发用c标签

    STRUTS开发用c标签STRUTS开发用c标签STRUTS开发用c标签STRUTS开发用c标签

Global site tag (gtag.js) - Google Analytics