【Struts2基础】——登录Demo

      前面的文章,介绍了Struts2的工作原理以及与Struts1的区别,理论的东西明白了,下边就该实践了。我们以登录为例,来进行学习。


项目的总体结构




声明:采用的Struts2版本为:struts-2.1.8.1-all


1、首先,创建Java Web项目


2、引入Struts2相关的依赖包,将依赖包拷贝到WEB-INF/lib下



3、在web.xml文件中,配置StrutsPrepareAndExecuteFilter


      新建的JavaWeb项目中,可能不存在web.xml文件,需要我们手动创建。创建完毕后,关于里边的配置,我们可以找到下载的Struts2包,然后找到struts-2.1.8.1\apps\struts2-blank-2.1.8.1\WEB-INF下的web.xml文件,里边有基本的配置,可以直接拷贝过来。


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

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


4、建立相关的JSP页面(login.jsp、login_success.jsp、login_error.jsp)


登录界面:login.sjp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!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=GB18030">
<title>Insert title here</title>
</head>
<body>
	<form action="login.action">
		用户:<input type="text" name="username"><br>
		密码:<input type="password" name="password"><br>
		<input type="submit" value="登录">
	</form>
</body>
</html>

登录成功界面:login_success.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!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=GB18030">
<title>Insert title here</title>
</head>
<body>
	${username },登录成功
</body>
</html>

登录失败界面:login_error.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!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=GB18030">
<title>Insert title here</title>
</head>
<body>
	登录失败
</body>
</html>


5、创建Struts2登录的Action:LoginAction


       Struts2的Action可以不用继承Struts2框架中的任何类,也不用实现Struts2框架中的任何接口。Struts2的Action可以是一个POJO。同时,在Action中提供getter和setter方法,便于数据的收集。


package com.tgb.struts2;

/**
 * Struts2登录Action
 * @author Kirn
 *
 */
public class LoginAction
{
	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;
	}

	//用户名、密码都设定为admin
	public String execute() throws Exception {
		if ("admin".equals(username) && "admin".equals(password)) {
			return "success";
		}else {
			return "error";
		}
	}
}


6、在src下,新建Struts2的配置文件:struts.xml。在里边进行Action与JSP的配置。


关于struts.xml文件中的具体配置,可以参考Struts2包中,struts-2.1.8.1\apps\struts2-blank-2.1.8.1\WEB-INF\src\java目录下的struts.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.xml配置文件发生修改,会立刻加载,在生产环境下最好不要配置 -->
	<constant name="struts.configuration.xml.reload" value="true"/>
	<!-- 会提供更加友好的提示信息 -->
	<constant name="struts.devMode" value="true"/>

	<!-- 需要继承struts-default包,这样就拥有的最基本的功能 -->
	<package name="struts2" extends="struts-default">
		<action name="login" class="com.tgb.struts2.LoginAction">
			<result name="success">/login_success.jsp</result>
			<result name="error">/login_error.jsp</result>
		</action>
	</package>
</struts>

 

       OK,到这我们就实现了采用Struts2框架的用户登录Demo。就这样从初步的学习,到简单Demo的实现。相信,随着学习的深入,对Struts2的理解会更加深刻。


       纸上得来终觉浅,绝知此事要躬行。共勉!


评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值