步入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页面。

目录
相关文章
|
29天前
|
JavaScript 前端开发 程序员
PHP程序员的成长之路
在当今信息技术飞速发展的时代,成为一名优秀的PHP程序员并非易事。本文将探讨PHP程序员在技术领域的成长之路,从初学者到专家的转变过程,以及在这一过程中所面临的挑战与应对方法。
|
25天前
|
设计模式 程序员 PHP
PHP程序员的技术成长之路
技术成长是每个PHP程序员不断追求的目标,而这一过程并非只是关于学习新的语言特性或框架,更多的是关乎思维方式和解决问题的能力。本文将探讨PHP程序员在技术成长之路上所面临的挑战,并提出一些建议,帮助他们不断提升自己的技术水平。
15 5
|
6月前
|
Java 关系型数据库 MySQL
JSP大学生求职就业系统myeclipse开发mysql数据库bs框架java编程jdbc
JSP 大学生求职就业系统是一套完善的web设计系统,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,开发环境为TOMCAT7.0,Myeclipse8.5开发,数据库为Mysql5.0,使用java语言开发,系统主要采用B/S模式开发。
41 1
|
8月前
|
小程序 Java 数据库
基于SpringMvc实现的兼职论坛系统(毕业设计)
基于SpringMvc实现的兼职论坛系统(毕业设计)
55 0
|
10月前
|
安全 小程序 前端开发
基于JSP的校园社团平台设计与实现(论文+源码)_kaic
采用JSP框架并结合微信小程序将传统的管理系统进行改造,完成一套完整的对高校社团的管理以及服务平台,此外,在系统的基础上构建开放平台,致力于建设一个良好的校园开发者生态,为广大热爱开发的同学们提供资源以及平台,以此来促进同学们的综合素质能力的提升。在开发和设计过程中,我们致力于满足用户的需求,包括良好的交互体验、可靠的安全保障、便捷的操控和丰富的功能。我们已经在这些方面取得了巨大的成功,并将其应用到了校园社团的管理系统中。 关键词:JavaWeb;校园社团;管理系统;MYSQL;JSP
|
测试技术
全国大学生软件测试大赛Web应用大赛常用测试语句
全国大学生软件测试大赛Web应用大赛常用测试语句
114 0
全国大学生软件测试大赛Web应用大赛常用测试语句
|
存储 Rust 前端开发
悄悄告诉你如何开启 Web3 的职业生涯
悄悄告诉你如何开启 Web3 的职业生涯
390 0
|
NoSQL Java 关系型数据库
开启新世界的大门
3.24 阿里云服务器使用体验
好好编程-物流项目13【登录认证-shiro实现】
我们已经完成了用户的CRUD操作。本文我们来介绍下基于Shiro的登录认证操作。
好好编程-物流项目13【登录认证-shiro实现】
好好编程-物流项目14【授权管理-shiro实现】
本项目中我们的权限就只涉及到角色,没有再细粒度到菜单,感兴趣的可以自己可扩展实现下。
好好编程-物流项目14【授权管理-shiro实现】