Struts2 环境搭建

Struts2 的环境搭建

一、环境搭建

1.环境搭建步骤整体是分三步:

    <1>导入框架组件及开发jar 包

    <2>在动态WEB 工程下配置Struts2 的拦截器

    <3>新建struts.xml 配置文件及创建相关Action 类

2.开发平台

    <1>此处使用的是Myeclipse2014,其他支持Java EE 等开发环境也可以。

    <2>配置Tomcat6.0,此处使用tomcat 版本较低,推荐使用更高版本或最新版本的。(tomcat7,tomcat8,tomcat9)

二、Struts2 项目

1.第一个项目HelloWorld

    说明:以下相关包、类、文件等命名自定义

2.新建动态WEB 工程命名为Struts2Project

    <1>导入Struts2 框架所需相关jar 包,点此下载


图2-2-1.Struts2-jar 包图

3.配置WEB 工程配置文件web.xml,注册映射Struts2 的过滤器

    代码如下:

<?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">
	<!-- 配置Struts2 的Filter -->
	<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>

    说明:filter-mapping 子节点url-pattern 的参数为/*, 使用通配符表示当前WEB 工程下的所有文件被访问都要通过struts2 映射的过滤器即filter 子节点filter-class 所指向的过滤器类。

4.创建Action 类并配置struts.xml 

    <1>.创建Action 类:User.java 

    在src 下新建包cn.edu.hpu.action,并创建Action 类命名为User。

    在User.java 中创建私有属性及对应的setter() 与getter() 方法。

    创建一个自定义方法login(),用来模拟用户登陆功能。

    (说明:Struts2 下Action 类中有默认方法名为execute(),不自定义方法应该使用execute() 方法 )

    代码如下:

package cn.edu.hpu.action;

public class User {
	private String username;
	private String password;
	public String getUsername() {
		return username;
	}
	public String getPassword() {
		return password;
	}
	public void setUsername(String username) {
		this.username = username;
	}
	public void setPassword(String password) {
		this.password = password;
	}
	/**
	 * 	登录方法
	 * 		若页面请求参数为zhangsan 123456 则用户数据验证成功
	 * 		进行相应的逻辑操作,方法返回值对应配置文件中节点result 的name 属性,进入到对应的响应页面
	 * 		<result name="success">success.jsp</result>
	 * 		<result name="error">error.jsp</result>
	 * @return
	 */
	public String login(){
		if (username.equals("zhangsan") && password.equals("123456")) {
			return "success";
		}
		return "error";
	}
}
    注意:Action 类中的方法以及方法返回值是与struts.xml 文件中的配置对应的。
    <2>配置struts.xml 

    (1)上面创建的类User.java 当前还是一个普通的model 类,通过在struts.xml 中配置此类就能让struts2 来管理了,被struts2 管理的model 类是Action 类。

    (2)创建Struts2 配置文件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="default" extends="struts-default" >
		<!-- 注意:class参数 -->
		<action name="user-login" class="cn.edu.hpu.action.User" method="login">
			<result name="success">success.jsp</result>
			<result name="error">error.jsp</result>
		</action>
	</package>
	
</struts>

    (3)struts.xml 节点说明:

    struts.xml 文件中仅有一个struts 节点,该节点下可有多个package 节点,package 节点下可有多个action 节点

      1>package 需要继承struts-default,name 属性值自定义。

      2>action 

        -- name 

    name属性值对应来自界面的或控制层请求转发、重定向等请求方法的方法名。

例如:

    请求方法为user-login ,此处name 值也为user-login 则此action 将会受理该方法对应的请求。

        -- class 

    class属性配置普通的model 类,注意是全类名,配置后该类即为Struts2 的Action 类。

        -- method 

    method属性默认值为execute。(method="execute" )

    如果action 节点不配置method 就默认使用execute 方法。该方法存在于class 属性对应的Action 类中。

      <action name="user-login" class="cn.edu.hpu.action.User">

    此处自定义方法为login 则需配置属性method = "login" ,(此方法对应Action 类中的自定义方法。)

      <action name="user-login" class="cn.edu.hpu.action.User" method="login">

      3>result

    该节点下有name 属性,默认值为success。(name="success" )

    若不配置name 属性时,则默认存在name = "success";其中默认方法public String execute()  的返回值是success。

例如:

    此处Action 类中自定义方法public String login() 返回值为error 或success。

    (4)Struts2 的HelloWorld整个执行过程:

    首先页面传来请求,然后根据请求方法与action 节点下的name 比对找到对应的action;

    执行此action 配置的类中的特定方法;

    (类为action 下的class 指向,方法名为action 的method 属性值)。

    根据方法的返回值匹配action 子节点result 的name 属性值,执行相关逻辑操作

例如:

      <action name="user-login" class="cn.edu.hpu.action.User" method="login">

    此处即受理请求user-login ,执行User 中的login 方法。根据login 方法逻辑处理后的返回值与result 比对进行下一步逻辑处理。

三、测试运行HelloWorld 

1.为测试Struts2 环境是否配置完全。可测试刚才配置的方法user-login 。即模拟账户登录功能。

2.新建login.jsp 登录界面

    代码如下:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!-- 引入struts 标签库 -->
<%@ 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>
	<center>
		<h4>登录信息表单</h4><br/>
		<s:form action="user-login" method="post">
			<s:textfield name="username" label="账户"/>
			<s:password name="password" label="密码"/>
			<s:submit/>
		</s:form>
	</center>
</body>
</html>
    页面只有一个表单,运行项目,进入该页面,写入数据后点击提交按钮,通过Struts 环境逻辑处理响应相应的结果。

3.创建jsp 文件success.jsp 和 error.jsp,就是显示登录成功或失败的页面。


图3-3-1.项目整体结构图

4.在tomcat 下运行该工程Struts2Project

    <1>过程描述:

    通过浏览器访问login.jsp,在此页面填写zhangsan、123456 后点击提交按钮,发送请求到user-login ,struts2 对WEB 应用下所有访问进行拦截过滤,通过请求方法user-login 比对,相应的action 受理该请求,并执行Action 类User.java 的login 方法,在此方法中比对页面传来的请求参数username、password,比对成功login() 方法返回值为success,action 节点的子节点result 的name 属性值匹配返回值,进入相应的逻辑处理;返回值为success 则进入success.jsp 页面提示登录成功,error 则进入error.jsp 提示登录失败!

    <2>运行效果如下:


图3-4-1.正确信息图


图3-4-2.登录成功图


图3-4-3.错误信息图


图3-4-4.登录失败图
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

niaonao

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值