您的位置:首页 > 编程语言 > PHP开发

PHP学习笔记5-PHP循环语句的介绍与应用

2012-09-24 00:34 731 查看
开发环境:
IDE: MyEclipse7.0 Tomcat服务器: Tomcat6.0 JDK:1.6.0 struts2: struts-2.0.14
struts-2.0.14包中的内容解释:
apps:struts2实例;lib:struts2所需jar包;src:源码;docs:struts2所有帮助文档
步骤:
1>创建WEB工程:struts2。
2>将WEB工程部署到Tomcat服务器中。
具体操作:在Tomcat6.0/conf/server.xml中的<host></host>标签中添加以下内容
<Context path="/struts2" docBase="f:\struts2\WebRoot" reloadable="true"/>
解释:path指的是工程的虚拟路径。docBase:工程的路径\WebRoot。reloadable:当开发时修改当前某个类文件或配置文件时是否重新加载(重启服务器)。如果时true则重新加载,如果时false则不重新加载(手动重启)。在工程真正部署及开发完毕,运行工程时,需要设置为false提高Tomcat效益;
3>配置web.xml文件。在web.xml文件<web-app></web-app>标签中添加以下内容:
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
解释:web.xml将过滤客户端所发过来的所有请求。<filter-class>表示过滤器所在的包名和类名。作为struts2控制器来过滤客户端所发过来的请求。<filter></filter>标签和<filter-mapping></filter-mapping>中的 <filter-name>标签内容必须一致。/*表示所有的请求都应该有struts2控制器来过滤。
4>创建jsp页面。
5>根据jsp页面创建相应的action类文件。在action类文件中添加:
public String execute() throws Exception {
return "success"; //success和struts.xml文件中的result标签中的name属性值一样
}

6>根据jsp页面和action类文件在src目录下创建struts.xml文件。内容如下:
通用部分(不可改变的部分):
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">

解释:<!DOCTYPE struts PUBLIC根据这句话来判断,struts.xml文件中以struts作为根元素(标签).
接着添加以下内容:
<struts>
<package name="struts2" extends="struts-default">//表示struts2这个包继承struts-default包。
<action name="login" class="com.test.action.LoginAction">//name值必须和jsp页面中的 form表单中的
action 属性值一致。
<result name="success">/result.jsp</result> //表示提交成功则跳转到result.jsp页面。
</action>
</package>
</struts>
7>启动Tomcat,测试成功!

学习目的:在jsp页面有两个文本框username和password.当用户什么都不输入提交表单时,提示错误信息
。当输入用户名为hello密码为123时则在另一个页面显示该信息。输入其他信息则提示错误。
1>创建login2.jsp并导入struts2标签.
具体操作:在表头下面添加:<%@ taglib prefix="s" uri="/struts-tags" %>
解释:prefix表示标签修饰符,可以随意定义,默认为:s. uri表示标签在什么地方。
2>在login2.jsp页面,使用struts2创建表单和内容。
注意:
(1)使用struts2标签,表单的action属性值默认时就是.action格式,所以在action值不需加.action
。直接写login就可以也就是说:使用标签action="login"与不使用标签action="login.action"
是一样的。
(2)在创建文本框时,<textfield>标签表示文本框和不使用struts2标签时的<text>一样,其中
label属性值表示文本框前面的名字。
(3)使用struts2标签自动换行。
3>根据login2.jsp页面内容创建相应的action类文件并继承ActionSupport接口。
4>在action类中重新validate()方法。内容如下:
if(null==this.getUsername() || "".equals(this.getUsername().trim()))
{
//在username文本框上面显示username required错误信息。
this.addFieldError("username", "username required");
}
if(null==this.getPassword() || "".equals(this.getPassword().trim()))
{
//在password文本框上面显示passwordrequired错误信息。
this.addFieldError("password", "password required");
}
解释:validate()方法只做简单的判断,如为空或字段的长度。判断逻辑信息时则不在validate()方法中
判断。
5>配置struts.xml
<struts>
<package name="struts2" extends="struts-default">
<action name="login" class="com.test.action.LoginAction">
<result name="success">/result.jsp</result>
<result name="input">/login2.jsp</result> //name属性值input时固定的。当用户名或密码不填
时则回到login2.jsp并提示错误信息。
</action>
</package>

</struts>
6>在action类中execute()方法中添加如下信息:
if("hello".equals(this.getUsername().trim()) && "123".equals(this.getPassword()))
{
return "success";//和struts.xml中的name属性值一值
}
else
{
this.addFieldError("username", "username or password error");

return "failer"; //和struts.xml中的name属性值一值
}
注意:在判断是常量要写在前面。这样不抛NullPointerExcepion异常。
7>返回struts.xml添加
<result name="failer">/login2.jsp</result> //用户名不时hello或密码不是123则跳转到login2.jsp
8>测试。
struts2的流程:在客户端提交信息之后,信息会转到对应的action类,在action处理完之后,又会转
到result.jsp。从jsp到action类,又从action类跳转到jsp页面。全部都是用的dispatcher()请求转发,
也就是在一个request里。

学习目的:在jsp页面有两个文本框username和password.当用户什么都不输入提交表单时,提示错误信息
。当输入用户名为hello密码为123时则在另一个页面显示该信息。输入其他信息则提示错误。
1>创建login2.jsp并导入struts2标签.
具体操作:在表头下面添加:<%@ taglib prefix="s" uri="/struts-tags" %>
解释:prefix表示标签修饰符,可以随意定义,默认为:s. uri表示标签在什么地方。
2>在login2.jsp页面,使用struts2创建表单和内容。
注意:
(1)使用struts2标签,表单的action属性值默认时就是.action格式,所以在action值不需加.action
。直接写login就可以也就是说:使用标签action="login"与不使用标签action="login.action"
是一样的。
(2)在创建文本框时,<textfield>标签表示文本框和不使用struts2标签时的<text>一样,其中
label属性值表示文本框前面的名字。
(3)使用struts2标签自动换行。
3>根据login2.jsp页面内容创建相应的action类文件并继承ActionSupport接口。
4>在action类中重新validate()方法。内容如下:
if(null==this.getUsername() || "".equals(this.getUsername().trim()))
{
//在username文本框上面显示username required错误信息。
this.addFieldError("username", "username required");
}
if(null==this.getPassword() || "".equals(this.getPassword().trim()))
{
//在password文本框上面显示passwordrequired错误信息。
this.addFieldError("password", "password required");
}
解释:validate()方法只做简单的判断,如为空或字段的长度。判断逻辑信息时则不在validate()方法中
判断。
5>配置struts.xml
<struts>
<package name="struts2" extends="struts-default">
<action name="login" class="com.test.action.LoginAction">
<result name="success">/result.jsp</result>
<result name="input">/login2.jsp</result> //name属性值input时固定的。当用户名或密码不填
时则回到login2.jsp并提示错误信息。
</action>
</package>

</struts>
6>在action类中execute()方法中添加如下信息:
if("hello".equals(this.getUsername().trim()) && "123".equals(this.getPassword()))
{
return "success";//和struts.xml中的name属性值一值
}
else
{
this.addFieldError("username", "username or password error");

return "failer"; //和struts.xml中的name属性值一值
}
注意:在判断是常量要写在前面。这样不抛NullPointerExcepion异常。
7>返回struts.xml添加
<result name="failer">/login2.jsp</result> //用户名不时hello或密码不是123则跳转到login2.jsp
8>测试。
struts2的流程:在客户端提交信息之后,信息会转到对应的action类,在action处理完之后,又会转
到result.jsp。从jsp到action类,又从action类跳转到jsp页面。全部都是用的dispatcher()请求转发,
也就是在一个request里。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: