SSH之Struts2

7 篇文章 0 订阅

    由于现在struts1不常使用了,对于struts1的了解也不是很多,就说Struts2吧,struts的视频是看过期好久好久了一直没有系统的整理,这次打算搭建SSH框架,再重新梳理一遍,说起Struts2我们都知道是由传统的Strutswebwork两个经典MVC框架发展起来的,所以从各种角度来说Struts2都是一个优秀的MVC框架。

今天就先写一个使用struts2框架实现的登录的小实例:

第一步:需要编写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">
 <display-name>strutsdemo</display-name>
 <!-- 建立web与struts的关联***************start************** -->
 <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与struts的关联***************start************** -->
</web-app>


第二步:引入struts2需要的jar包:添加到web-info下的lib文件下:


 

第三步:建立登录的jsp页面:

<!-- 定义标签库 -->
<%@taglib prefix="s" uri="/struts-tags" %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>登录</title>
</head>
<body>
    <!-- 定义一个表单和三个简单表单域 -->
    <s:form action="login">
        <s:textfield name="username" key="user"></s:textfield>
        <s:textfield name="password" key="pass"></s:textfield>
        <s:submit key="login"></s:submit>
    </s:form>
</body>
</html>


第四步:在jsp中指定表单的actionlogin,因为必须定义action,代码如下:

 

package com.tgb.struts2;

import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;

public class LoginAction extends ActionSupport {
	//定义封装请求参数的username和password
	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;
	}

	/**
	 * 重写用户请求的execute方法
	 */
	@Override
	public String execute() throws Exception {
		// TODO Auto-generated method stub
		if(getUsername().equals("jly") && getPassword().equals("0"))
		{
			ActionContext.getContext().getSession().put("user",getUsername());
			return SUCCESS;
		}
		else {
			return ERROR;
		}
	}
}

第五步struts配置文件:增加了Action类之后,还需编辑相应的配置文件:其中需要说明的是,代码中的key是设置的常量,那么这个是在哪里设置的呢?这样:Struts2框架有两个核心配置文件,其中Struts.xml主要负责管理应用中的action映射以及action处理结果和物理资源之间的映射关系,除此之外还包含了一个struts.properties文件,主要用于定义框架的大量常量属性。我们先来看struts.xml配置文件内容:

<struts>
<!-- 通过constant元素配置Struts2的属性 -->
<constant name="struts.custom.i18n.resources" value="mess"></constant>

    <package name="demo"  extends="struts-default">
        <action name="login" class="com.tgb.struts2.LoginAction">
           <result name="input">/login.jsp</result>
           <result name="error">/error.jsp</result>
           <result name="success">/welcome.jsp</result>
        </action>            
    </package> 

</struts>

定义变量的文件为:


这样jsp页面的显示效果为:


 

这是一个简单的实例,其中有一个亮点是mess.properties文件可以灵活的配置常量的属性。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值