现在的位置: 首页 > 综合 > 正文

第二章 一个简单的Login 应用程序

2013年06月20日 ⁄ 综合 ⁄ 共 3301字 ⁄ 字号 评论关闭

第一节 需求定义

简单的需求如下图


1 用户处在Welcome.jsp 页面,点击登录连接到达Login.jsp页面

2 Login.jsp输入用户名密码,点击登陆按钮,转到LoginAction处理

3.1 在登陆成功的情况下,再回到Welcome.jsp页面,在页面上显示登录信息

3.2 在登陆失败的情况下,返回到Login.jsp显示登陆错误信息


Welcome.jsp


Login.jsp


1 开始登陆


2 登陆


3.1登陆成功


3.2登陆失败


LoginAction

 

第二节 使用maven建立基本开发结构

使用如下命令建立Struts2 应用程序框架结构

mvn archetype:create  

-DgroupId=com.jpleasure

-DartifactId=login 

-DarchetypeGroupId=org.apache.struts  -DarchetypeArtifactId=struts2-archetype-starter

-DarchetypeVersion=2.0.5-SNAPSHOT -DremoteRepositories=http://people.apache.org/repo/m2-snapshot-repository

目录说明

生成的Struts2开发框架目录满足一般的maven项目,主要由以下目录组成:

src

   ├─main                              源代码目录

     ├─java                             java代码

     ├─resources                        资源文件等

     └─webapp                           Web目录

         ├─jsp                              JSP目录

         ├─styles                           CSS目录

         └─WEB-INF                          WEB-INF目录

   └─test                              测试代码目录

        ├─java                              java代码

        └─resources                         资源文件等

重要文件:

src/main/resources

    applicationContext.xml              Spring配置文件

    log4j.properties                    log4j配置文件

    struts.properties                   struts参数文件

    struts.xml                          struts配置文件

    xwork-conversion.properties         xwork参数文件

 

src/main/webapp/WEB-INF

decorators.xml 

dwr.xml                            DWR配置文件

sitemesh.xml                       SiteMesh配置文件

web.xml                            Web部署描述文件

 

进入工程目录(login目录)使用如下命令建立Eclipse工程文件

mvn eclipse:eclipse

 

使用如下命令打包工程

mvn package

应用程序打包完成之后可以再login/target目录中看到login.war文件,这个文件就是最终的成果文件

 

使用如下命令运行应用程序

mvn jetty:run

 

也可以将login.war拷贝到tomcatwebapps目录下来运行struts2应用程序。

 

打开IE在浏览器中输入:

http://localhost:8080/login

可以看到如下画面

说明自动生成的框架已经可以运行。

 

第三节 补充Login功能

下面我们来完成login功能

首先将login工程导入到Eclipse

 

之后建立在src/main/java目录中建立LoginAction类,代码清单如下:

package com.jpleasure.login.action;

 

import javax.servlet.http.HttpSession;

 

import com.opensymphony.xwork2.ActionSupport;

import org.apache.struts2.ServletActionContext;

 

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 forward() throws Exception {

       return SUCCESS;

    }

   

    @Override

    public String execute() throws Exception {

       if("admin".equals(name)) {

HttpSession session = ServletActionContext.getRequest().getSession();

           session.setAttribute("name", name);

           return SUCCESS;

       } else {

           return INPUT;

       }

    }

}

Action具有以下特点:

1 ActionSupport继承而来。

2 包含一些属性和gettersetter方法,这些属性用来保存客户端传递到服务器的数据,或者用来作为在JSP上显示的数据的源。

3 有一些返回String类型,无参数的方法,在LoginAction中是execute方法forwardLogin方法,这些方法就是Action需要执行的方法。

 

SUCCESSINPUT都在com.opensymphony.xwork2.Action类中定义,类型为String,分别用来表示成功和输入结果。

 

src/main/webapp中建立Welcome.jspLogin.jsp两个JSP文件

Welcome.jsp代码清单如下:

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

    pageEncoding="UTF-8"%>

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

 

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

<title>Welcome</title>

</head>

<body>

 

<s:url action="forwardLogin" id

抱歉!评论已关闭.