李佳薇煎熬简谱教学:第一个Struts2的实例

来源:百度文库 编辑:偶看新闻 时间:2024/05/09 10:21:17
   本实例的开发工具及语言:eclipse 3.2 + struts2 + tomcat 5.5
实现用户登陆功能,在这因没有连接数据库,所以用固定的用户名和密码登陆.

用户名:luanmad
密码:admin

  本实例用到的文件及其结构:(看图1)
//***********************************************************************
K:/ECLIPSEWORKS/MYFIRSTSTRUTS2
│  .classpath    (ECLIPSE 自动生成)
│  .mymetadata   (ECLIPSE 自动生成)
│  .project      (ECLIPSE 自动生成)

├─.myeclipse     (ECLIPSE 自动生成)
├─src
│  │  struts.xml
│  │
│  └─cn
│      └─struts2
│              LoginAction.java

└─WebRoot
    │  login.jsp
    │  loginFailure.jsp
    │  loginSuccess.jsp
    │
    ├─META-INF
    │      MANIFEST.MF
    │
    └─WEB-INF
        │  web.xml
        │
        ├─classes
        │  │  struts.xml
        │  │
        │  └─cn
        │      └─struts2
        │              LoginAction.class
        │
        └─lib
                commons-logging-1.0.4.jar
                freemarker-2.3.8.jar
                ognl-2.6.11.jar
                struts2-core-2.0.11.2.jar
                xwork-2.0.5.jar

//***********************************************************************

1.Tomcat 5.5的具体配置在这里就赘述了,可以上网搜(一大把的)
本实例配置用到的TOMCAT 5.5 文件是server.xml.

在你安装好的TOMCAT 5.5目录下找到conf的文件夹,下面有一个叫server.xml的文件(如:C:/tomcat 5.5/conf/server.xml),打开此文件进行编辑,在之间加入一句:



此句是用于让TOMCAT 5.5 找到你的启动程序;

2.编写LoginAction.java 文件,用于处理登陆的作息,在(MyFirstStruts2/src/cn/struts2/LoginAction.java)
LoginAction.java
//***********************************************************************
package cn.struts2;

import com.opensymphony.xwork2.ActionSupport;

public class LoginAction extends ActionSupport
{
    private String name;
    private String password;
    public String getName()
    {
        return name;
    }
    public void setName(String name)
    {
        this.name = name;
    }
    public String getPassword()
    {
        return password;
    }
    public void setPassword(String password)
    {
        this.password = password;
    }


    public String execute()throws Exception
    {
        String path=null;
        if(name.equals("luanmad") && password.equals("admin"))
        {
            path = SUCCESS;
        }
        else
        {
            path = ERROR;
        }
        return path;
    }

    //重写一个validate()函数,它用来对用户输入信息的验证,它先于execute()函数执行
    @Override
    public void validate()
    {
        // 验证用户名和密码是否为空
        if(null == name || "".equals(name))
        {
            this.addFieldError("name", "name is required!");
        }

        if(null == password || "".equals(password))
        {
            this.addFieldError("password", "password is required!");
        }

    }



}


//***********************************************************************

3.配置struts.xml文件(src/struts.xml)
struts.xml
//***********************************************************************






    
        
            /loginSuccess.jsp
            /loginFailure.jsp
            /login.jsp
        

    



//***********************************************************************

4.配置web.xml文件(WebRoot/WEB-INF/web.xml)
web.xml
//***********************************************************************


    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">

 
      struts2
      org.apache.struts2.dispatcher.FilterDispatcher
 


 
      struts2
      /*
 



//***********************************************************************

5.三个.jsp文件(在WebRoot文件夹下)

login.jsp
//***********************************************************************

<%@ page language="java" import="java.util.*" pageEncoding="gbk"%>
<%
    String path = request.getContextPath();
    String basePath = request.getScheme() + "://"
            + request.getServerName() + ":" + request.getServerPort()
            + path + "/";
%>
<%@ taglib prefix="s" uri="/struts-tags"%>


    
        

        My JSP 'login2.jsp' starting page

        
        
        
        
        
        

    

    
        
            
            
            
            
        

    


//***********************************************************************

loginSuccess.jsp
//***********************************************************************

<%@ page language="java" import="java.util.*" pageEncoding="gbk"%>
<%
    String path = request.getContextPath();
    String basePath = request.getScheme() + "://"
            + request.getServerName() + ":" + request.getServerPort()
            + path + "/";
%>
<%@ taglib prefix="s" uri="/struts-tags"%>


    
        

        My JSP 'login2.jsp' starting page

        
        
        
        
        
        

    

    
        

登陆成功!


        


            User Name :

            Password :
        


    


//***********************************************************************

loginFailure.jsp
//***********************************************************************

<%@ page language="java" import="java.util.*" pageEncoding="gbk"%>
<%
    String path = request.getContextPath();
    String basePath = request.getScheme() + "://"
            + request.getServerName() + ":" + request.getServerPort()
            + path + "/";
%>



    
        

        My JSP 'login2.jsp' starting page

        
        
        
        
        
        

    

    
        

登陆失败!


        

用户名或密码错误!


    


//***********************************************************************

6.注意别忘了导入STRUTS2的JAR包(用此5个即可)(放在WebRoot/WEB-INF/lib/)下,这是必须的.
commons-logging-1.0.4.jar
freemarker-2.3.8.jar
ognl-2.6.11.jar
struts2-core-2.0.11.2.jar
xwork-2.0.5.jar

7.如图1
同时也要就以上5个JAR包导入Referced Libraries里,这是在ECLIPSE 下编辑时用的.

8.此程序可以正常运行,当你配置好时在浏览器上写
http://localhost:8080/MyFirstStruts2/login.jsp
即可(默认是8080端口)