Struts2初识(1)-struts实现简单登录

来源:互联网 发布:北美精算师知乎 编辑:程序博客网 时间:2024/05/29 04:50

如果想了解struts2的基本概念的读者请移步,本文主要介绍的是使用struts实现简单的登录,不涉及数据库操作,不介绍基本概念。
单独使用struts2实现登录比较简单,基本只要编辑两个主要配置文件,一个java类和三个jsp界面。下面就介绍一些实现的简单过程。

1.新建web工程,引入struts2支持,即引入struts2的八个包。
commons-fileupload-1.3.jar
commons-io-2.0.1.jar
commons-lang3-3.1.jar
freemarker-2.3.19.jar
javassist-3.12.0.GA.jar
ognl-3.0.6.jar
struts2-core-2.3.16.3.jar
xwork-core-2.3.16.3.jar

这种包网上很多,读者可以自行下载。

整个工程的目录结构如下:
这里写图片描述

2,编辑web.xml,添加对struts的支持,即配置拦截器,拦截请求。

web.xml

<?xml version="1.0" encoding="UTF-8"?><web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">      <filter>        <filter-name>struts2</filter-name>        <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>    </filter>    <filter-mapping>        <filter-name>struts2</filter-name>        <url-pattern>/*</url-pattern>    </filter-mapping></web-app>

3,在WebRoot下新建login.jsp添加登录界面:
login.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><%@taglib prefix="s" uri="/struts-tags" %><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html>  <head>    <title>登录界面</title>  </head>  <body>    <s:form action="login">      <s:textfield name="username" key="user"/>      <s:textfield name="password" key="pass"/>      <s:submit key="login"/>    </s:form>  </body></html>

界面不要忽视<%@taglib prefix=”s” uri=”/struts-tags” %>这句话,这句话引用了struts标签,否则s:不能被正常的支持。

编写成功和失败的jsp界面,error.jsp和welcome.jsp,这两个界面比较简单,只是输出一句话,请读者自行实现。

3,在src下新建文件LoginAction.java和struts.xml,本文章只是演示最简单的登录界面,正常的工程师需要java类和配置文件分开的。LoginAction负责处理请求,而struts.xml中负责配置Action。

Login.java

package www.clsc.com;import com.opensymphony.xwork2.ActionSupport;public class LoginAction extends ActionSupport{    private static final long serialVersionUID = 5329894686889439159L;    private String username;    private String password;    public String  execute() {        if(getUsername().endsWith("wpz")&&getPassword().endsWith("wpz")){            return "success";        }        return "error";    }    public String getError(){        return "error";    }    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;    }}

在struts.xml配置Action信息。

struts.xml

<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE struts PUBLIC    "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"    "http://struts.apache.org/dtds/struts-2.3.dtd"><struts>   <package name="lee" extends="struts-default">        <action name="login" class="www.clsc.com.LoginAction">          <result name="input">/login.jsp</result>          <result name="error">/error.jsp</result>          <result name="success">/welcome.jsp</result>        </action>   </package></struts>

至此,整个工程编码结束,部署到tomcat中输入网址http://localhost:8080/Struts1.0/login.jsp 用户名密码都输入wpz会访问到welcome.jsp界面,有一个不正确则访问到error.jsp界面。

下面简单分析一下struts实现的流程:

1,程序启动加载web.xml开始为struts拦截post请求。,
2,访问login.jsp提交用户名密码,因为用到了strutsde标签,只要名字一直,就可以实现自动的填充。
3,请求通过struts.xml查找到LoginAction ,请求提交到LoginAction,并填充了LoginAction中的username和password属性, 并执行默认的execute方法。
4,execute中做分支判断,并根据分支返回的字符串匹配struts.xml配置的跳转路径,访问该界面,至此,程序执行完成。

0 0
原创粉丝点击