• 步入struts2大门(用户登录)


    最近在学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页面。

  • 相关阅读:
    Android 平板模拟器内存修改
    UI设计另类,创意的网站和App 集合(持续更新)
    Android平台根据分辨率计算屏幕尺寸,基于物理尺寸来验证手机和平板应用合并的可行性
    shape和selector的结合使用
    RGB浅谈
    Android开发大牛们的博客地址(持续更新)
    解决ViewPager添加点击监听器无触发的问题
    VC 输出闪烁的字母
    计算机体系结构精要
    Xmanager远程连接Ubuntu,窗口无法输入字母'd'
  • 原文地址:https://www.cnblogs.com/fnng/p/2298006.html
Copyright © 2020-2023  润新知