步入struts2大门(用户登录)
2011-12-22 16:19 虫师 阅读(10889) 评论(4) 编辑 收藏 举报
最近在学struts2框架,其实好多技术并不难,之所以觉得它难就是,只是一直徘徊在外围而找不到打开它的入口。找开的入口后面学起来就很顺了,本文用最详细的步骤,最傻瓜方式为你打开这个入口。只要你少有java基础,那就可以跟我一起来做吧!
准备三样东西:
MyEclipse 8.5
tomcat 6.0
struts2.0.14 我这个版本较早,你可以用最新版本,可能会存在些差异,具体的说明。
=============================================================
整体项目目录结构如下:
================================================================
配置三步骤:
再MyEclipse 中创建一个web项目,new----web project----命名为struts2
第一步:导入相关包
再下载好struts2下载的目录下面,找到一下几个jar包,因为struts2下的\lib下面会有很多jar包,我们暂时只需要几个常用的就够了。
struts2-core-2.1.6.jar
freemarker-2.3.13.jar
commons-logging-1.0.4.jar
ognl-2.6.11.jar
xwork-2.1.2.jar
commons-fileupload-1.2.1.jar
如何导入包,我用最简便的方式,将上面几个文件复制,找到我们创建的项目struts2--webRoot---lib文件夹,右击---Paste(粘贴ctrl+v)就OK了。
第二步,导配web.xml文件
下面来配置我们的web.xml文件。展开我们的项目就会看到这个文件。WebRoot/lib/web.xml
注意不同的struts版本略有不同,本配置是struts2.0.14版本下的配置。
<?xml version="1.0" encoding="UTF-8" ?>
<web-app id="WebApp_9" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<display-name>Struts Blank</display-name>
<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-app>
如果你下载的struts包是完整的,里面会带有实例。请参考实例中web.xml文件配置。
第三步:创建struts.xml文件
在src文件夹下面创建strutx.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">
<struts>
稍后在此处添加内容
</struts>
第一步,文件Login.jsp配置已经完成,下面开始我们登录功能的编写。
要文件夹webRoot创建一个login.jsp编写用户登录前台页面。
<%@ taglib prefix="s" uri="/struts-tags" %><!—- 由于下面的内容是用strurs2标签编写,所以这里要引入struts2标签库-- >
</body>
<s:form action="login">
<s:textfield name="username" label="username"></s:textfield>
<s:password name="password" label="password"></s:password>
<s:submit label="submit"></s:submit>
</s:form>
</body>
第二步,编写LoginAction.java程序
在src文件夹下创建一个包:com.test.action
在包下面创建LoginAction.java文件,内容如下:
package com.test.action;
import com.opensymphony.xwork2.ActionSupport;
//首先这个类继承 ActionSupport类
public class LoginAction extends ActionSupport {
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;
}
//此处验证用户必须等hello 密码登录word才会返回成功页面。当然,真实开发中肯定不会这样写,这里只是做一个模拟。
public String execute() throws Exception
{
if("hello".equals(this.getUsername().trim()) && "word".equals(this.getPassword().trim()))
{
return "success";
}
else
{
this.addFieldError("username", "usernmae or password error");
return "failer";
}
}
//下面内容判断用户名不能为空
@Override
public void validate()
{
if(null == this.getUsername() || "".equals(this.getUsername().trim()))
{
this.addFieldError("username", "username error");
}
if(null == this.getPassword() || "".equals(this.getPassword().trim()))
{
this.addFieldError("password", "username error");
}
}
}
第三步,登录成功的页面success.jsp
在WebRoot创建一个success.jsp页面,如果用户登录成功,将跳转到这个页面。
<body>
Success!!
</body>
第四步,下面配置我的struts2.xml文件
在<struts>..</struts>之间插入如下配置:
<package name="struts2" extends="struts-default" namespace="/">
<action name="login" class="com.test.action.LoginAction">
<result name="success">/result.jsp</result>
<result name="failer">/login.jsp</result>
</action>
</package>
==================================================
上面的过程操作完成了,下面配置我们tomcat
菜单栏windows---->Preferences---->搜索tomcat
点击 Browse...按钮,找到我们tomcat的目录,然后点击 OK 按钮
再myeclipse窗口的下面,点击Servers标签,来启动tomcat 6
注意:这里我们也许会建立多个项目,如何让tomcat 来识别我们需要启动的项目呢。
右键点击tomcat选择add deployment
再打开的对话框中,选择我们需要启动的项目名(struts2)
好吧!我们现在启动tomcat ,打开浏览器输入:http://localhost:8080/Struts2/login.jsp
如果没有错误的话,页面会显示如下:
处理流程分析:
下面我们来说一下程序的处理流程。
1.在用户登录有页面(login.jsp)后,通过form表单的action属性,去找配置文件(struts.xml)对应的action属性,Form表单的action=”login”与action的name=”login”必须相同。
2. 然后同过action的class=”com.test.action.LoginAction”找到LoginAction.java程序。
3. LoginAction.java处理完成后,将返回success 和failer两个结果给struts.xml文件。
4.Struts.xml根据<result></result>中的配置,如果结果是success将跳转到result.jsp页面,如果是failer则跳转login.jsp页面。