Struts2框架入门简单示例——登录功能

说明

最近SSH框架学的好像还不错,后面如果学的好,就要做一个综合项目了。不过我的英语还是一直没有学习,我觉得我就是做任何事情都会把英语排到最后,其他事情再难也想先做其他事情,这样当然不行了,我决定把中午的时间给英语。
好了,废话不多说了。
现在只是一个最简单Struts2框架的小例子

环境

jdk1.7
eclipse mars4.5.2
tomcat8

jar包

我这里用到的是Struts2.3.37
在这里插入图片描述
可以到这里下载https://struts.apache.org/download.cgi#struts2520
我这里下载的是full distribution,即完整版。我不敢下载太新的,怕出错。

步骤

先新建一个Java web项目
在这里插入图片描述
刚建完的项目中什么都没有,首先导包,把下载好的Struts包解压,将lib里面的这些包复制到WEB-INF下面的lib文件夹中
在这里插入图片描述
在这里插入图片描述
在WEB-INF下新建一个xml文件名为web.xml,作用是拦截客户端请求,并将请求转发给相应的Action类处理,代码如下:

<?xml version="1.0" encoding="UTF-8"?>
<!-- 拦截所有的请求,并将请求转到Struts2处理, -->
<web-app>
<!-- 配置struts2框架的核心Filter -->
    <filter>
    <!-- 配置Struts2核心Filter的名字 -->
        <filter-name>struts2</filter-name>
        <!-- 配置Struts2核心Filter的实现类 -->
        <filter-class>
            org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
        </filter-class>
    </filter>
 <!-- 配置Filter拦截的URL -->
    <filter-mapping>
    <!-- 过滤器拦截名称 -->
        <filter-name>struts2</filter-name>
        <dispatcher>FORWARD</dispatcher>
        <dispatcher>REQUEST</dispatcher>       
        <url-pattern>/*</url-pattern>
        <!-- 拦截的是所有请求,Struts2会将/后面部分决定调用哪个业务逻辑组件(Action) -->
    </filter-mapping>
 
</web-app>

在Java Resources的src包下新建一个包,我叫做com.shanmu.action,在下面建一个类LoginAction.java,这是一个业务逻辑控制器,代码如下:

package com.shanmu.action;

public class LoginAction {

	private String username;
	private String password;
	
	public String login(){
		if(username.equals("shanmu")&&password.equals("123")){
			return "success";
		}else{
			return "input";
		}
	}
	
	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;
	}
	
}

其中login这个方法返回值是String类型的,后面会根据返回的字符串判断执行哪一个页面,下面来写一个struts.xml文件,在src目录下的,负责配置业务逻辑控制器Action

<?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>
<!-- 指定字符编码集 -->
<constant name="struts.i18n.encoding" value="UTF-8"></constant>
<!-- 配置包 -->
  <package name="default" extends="struts-default">
<!-- 配置名称为login的Action类 -->
<action name="login" class="com.shanmu.action.LoginAction" method="login">
	<result name="success">success.jsp</result>
	<result name="input">login.jsp</result>
</action>
</package>
</struts>

其中最重要的是action标签,如果返回结果是success,就跳到success.jsp页面,如果返回结果是input,就跳到login.jsp页面。所以我们需要有两个页面,分别是login.jsp以及success.jsp,页面是在WebContent下面的
首先是login.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>Insert title here</title>
</head>
<body>
	<s:form action="login" method="post" namespace="/">
		<s:textfield name="username" label="用户名" />
		<s:password name="password" label="密码"/>
		<s:submit value="登录"/>
	</s:form>
</body>
</html>

这里采用的是Struts2的标签库,也可以使用一般的HTML标签,例如:

<form action="login" method="post">
  用户名:<input type="text" name="username">
 密码: <input type="password" name="password">
 <input type="submit" value="登录">
</form>

接下来是success.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>Insert title here</title>
</head>
<body>
	用户名:<s:property value="username"/>
	密码:<s:property value="password"/>
</body>
</html>

运行结果

在浏览器打开http://localhost:8080/MyStruts/login.jsp,很不幸
运行之后报404错误,查一下console
在这里插入图片描述
提示没有找到commons/lang3
看一下lib下导入的jar包,只有一个commons-lang2.4,所以去下载的Struts包下找到commons-lang3的包,复制到lib目录下
在这里插入图片描述
再次运行,在浏览器打开http://localhost:8080/MyStruts/login.jsp
成功
在这里插入图片描述
账户密码正确后,进入下面的页面
在这里插入图片描述
不正确的话返回登录页面
在这里插入图片描述

最后

出错不要害怕,要查看错误信息,然后想想解决方法,或者上网查,相信我们遇到的错误肯定有其他人遇到过,再不行就去请教其他人,有时候别人一眼就能看到你没发现的错误。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值