`
x125521853
  • 浏览: 72701 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

第一章 Struts2概述

阅读更多

一:Struts2框架体系的介绍

    Struts2简单来说,是一个功能强大的过滤器, Struts2负责拦截用户的请求(request),然后在Struts2的范围内进行业务逻辑的处理,根据用户处理的返回值,由Struts2框架来决定页面的导航.

   1.导包:

     struts2-core-2.1.8.1.jar

     ognl-2.7.3.jar

     xwork-core-2.1.6.jar

     freemarker-2.3.15.jar

     commons-io-1.3.2.jar

     commons-fileupload-1.2.1.jar

   2.配置web.xml文件  

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
	http://java.sun.com/xml/ns/javaee/web-app_2_5.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>
	<welcome-file-list>
		<welcome-file>index.jsp</welcome-file>
	</welcome-file-list>
</web-app>

   3.配置struts.xml文件

     该文件放置到我们web工程src目录下  

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

     constant是常量的意思,一般常量是全局不变的值。

   4.示例:

   model层  

package com.struts.chapter1.model;

public class User {
	private String userName;
	private String userPwd;

	public User(String userName, String userPwd) {
		super();
		this.userName = userName;
		this.userPwd = userPwd;
	}

	public String getUserName() {
		return userName;
	}

	public void setUserName(String userName) {
		this.userName = userName;
	}

	public String getUserPwd() {
		return userPwd;
	}

	public void setUserPwd(String userPwd) {
		this.userPwd = userPwd;
	}
}

   dao层  

package com.struts.chapter1.dao;

import com.struts.chapter1.model.User;

public class UserDao {
	public boolean findAll(User user) {
		return user.getUserName().equalsIgnoreCase("admin")
				&& user.getUserPwd().equalsIgnoreCase("admin");
	}
}

   service层  

package com.struts.chapter1.service;

import com.struts.chapter1.model.User;

public interface UserService {
	public boolean findAll(User user);
}

   service.impl实现层  

package com.struts.chapter1.service.impl;

import com.struts.chapter1.dao.UserDao;
import com.struts.chapter1.model.User;
import com.struts.chapter1.service.UserService;

public class UserServiceImpl implements UserService {
	private UserDao userDao;

	public UserServiceImpl() {
		userDao = new UserDao();
	}

	public boolean findAll(User user) {
		return userDao.findAll(user);
	}
}

   action层  

package com.struts.chapter1.action;

import com.struts.chapter1.model.User;
import com.struts.chapter1.service.UserService;
import com.struts.chapter1.service.impl.UserServiceImpl;

public class UserAction {
	private String userName;
	private String userPwd;
	private UserService userService;
	
	public UserAction() {
		userService = new UserServiceImpl();
	}
	
	public String login(){
		if(isInvalid(getUserName()))
			return "failure";
		if(isInvalid(getUserPwd()))
			return "failure";
		if(userService.findAll(new User(getUserName(),getUserPwd()))){
			return"success";
		}
		return"failure";
	}

	private boolean isInvalid(String value) {
		return(value==null || value.length()==0);
	}

	public UserAction(String userName, String userPwd) {
		super();
		this.userName = userName;
		this.userPwd = userPwd;
	}

	public String getUserName() {
		return userName;
	}

	public void setUserName(String userName) {
		this.userName = userName;
	}

	public String getUserPwd() {
		return userPwd;
	}

	public void setUserPwd(String userPwd) {
		this.userPwd = userPwd;
	}	
}

  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>
	<!-- 设置一些全局的常量开关 -->
	<constant name="struts.i18n.encoding" value="UTF-8" />
	<constant name="struts.action.extension" value="do,action" />
	<constant name="struts.serve.static.browserCache " value="false" />
	<constant name="struts.configuration.xml.reload" value="true" />
	<constant name="struts.devMode" value="true" />
	<constant name="struts.enable.DynamicMethodInvocation" value="false" />
	<package name="chapter1" extends="struts-default">
		<action name="login" class="com.struts.chapter1.action.UserAction" method="login">
			<result name="success">/success.jsp</result>
			<result name="failure">/failure.jsp</result>
		</action>
	</package>
</struts>

   WebRoot下建jsp页面

   //index.jsp  

<%@ page language="java" pageEncoding="utf-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<c:set var="basePath" value="${pageContext.request.contextPath}" />

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title></title>
  </head>
  <body>
  	<form action="${basePath}/login.do" method="post">
  		<div>
  			<div>
  				<label>用户名:</label>
  				<label><input type="text" name="userName"></label>
  			</div>
  			<div>
  				<label>密码:</label>
  				<label><input type="password" name="userPwd"/></label>
  			</div>
  			<div>
  				<label><input type="submit" value="登录" /></label>
  				<label><input type="reset" value="取消"/></label>
  			</div>
  		</div>
  	</form>
  </body>
</html>

   //success.jsp  

<%@ page language="java" pageEncoding="utf-8"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>login success</title>
  </head>
  <body>
  	登陸成功!
  </body>
</html>

   //failure.jsp  

<%@ page language="java" pageEncoding="utf-8"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title></title>
  </head>
  <body>
  	登錄失敗!
  </body>
</html>

 

分享到:
评论

相关推荐

    Struts2_基础

    **第一章 Struts2概述** Struts2是基于MVC(Model-View-Controller)设计模式的框架,它是Struts1的升级版,提供更灵活的控制层设计,强化了Action、Interceptor和结果映射等核心概念。Struts2通过OGNL(Object-Graph...

    struts2的教程

    首先,让我们从“第一章 Struts2概述”开始。Struts2是Apache软件基金会的产品,它是基于Struts1的升级版,引入了更多功能和改进,以提高可扩展性和灵活性。Struts2的核心是Action类,它处理用户请求并负责业务逻辑...

    [Struts 2权威指南--基于WebWork核心的MVC开发(高清完整版) 1/12

    第1章 Struts 2概述,第2章 Struts 2下的HelloWorld,第3章 Struts 2基础,第4章 深入Struts 2,第5章 Struts 2的类型转换,第6章 文件的上传和下载.,第7章 Struts 2的拦截器,第8章 Struts 2的输入校验,9.2 ...

    struts入门[文字版][中文].

    第一章 配置环境 第二章 HelloWorld你的第一个Struts程序 第三章 MVC概述 第四章 Model模型 第五章 View页面视图 第六章 Controller控制器 第七章 使用Struts连接池 第八章 Struts的异常处理 第九章 Struts的国际化 ...

    第五章struts2的标签库.pdf

    "Struts 2 标签库概述" Struts 2 的标签库是 Struts 2 框架的核心组件之一,它提供了强大的标签功能,帮助开发者快速构建 Web 应用程序。与 Struts 1 相比,Struts 2 的标签库使用 OGNL 表达式作为基础,提供了更...

    教案第五章struts2的标签库.pdf

    Struts 2 标签库概述 Struts 2 标签库是 Struts 2 框架中的一个核心组件,它提供了许多实用的标签来帮助开发者快速构建 web 应用程序。与 Struts 1 相比,Struts 2 标签库使用 OGNL 表达式作为基础,提供了更加强大...

    精通struts2

    - **示例应用**:第2章通过一个简单的示例应用,引导读者逐步了解如何创建一个Struts2项目,包括配置文件的设置、Action类的编写以及视图的渲染等步骤。 - **高级特性**: - **拦截器技术**(第4章):介绍了Struts...

    struts2参考文档(word版)

    在第一章中,作者探讨了Struts是否过时的问题,通过回顾Struts的历史发展过程,解释了为什么Struts2依然具有生命力。Struts2的“简历”部分展示了其核心特性,包括丰富的标签库、拦截器机制、FilterDispatcher与...

    第一章、STRUTS2.0开发环境

    一、Struts2.0概述 Struts2是Apache软件基金会的开源项目,它是对Struts1.x的重大改进和升级,提供了更强大的功能和更好的性能。Struts2的核心组件包括Action、Result、Interceptor等,这些组件协同工作,使得业务...

    struts2讲义_吴峻申

    第4章 另一Struts2核心技术:拦截器 47 4.1 拦截器在Struts2中的缺省应用 47 4.2 拦截器原理实现 50 4.3 在Struts2中配置自定义的拦截器 53 4.3.1 扩展拦截器接口的自定义拦截器配置 54 4.3.2 继承抽象拦截器的...

    济南大学 第03章_Struts2应用_课堂.ppt

    3.1 Struts 2概述 MVC模式是软件设计中的一种经典架构,它将应用程序分为三个核心部分:模型(Model)负责处理业务逻辑,视图(View)用于展示数据,控制器(Controller)则负责接收用户请求并协调模型和视图。...

    struts2权威指南.

    第一章,Struts2概述,主要介绍了Struts2框架的基本理念和架构。它强调了Struts2是如何通过拦截器机制实现灵活的请求处理,并提供了强大的插件支持。Struts2的核心组件包括Action、Result、Interceptor、ValueStack...

    Struts2 In Action

    - **章节概述**:这一章专注于Struts2提供的各种UI组件标签,这些标签使得构建美观且功能丰富的用户界面变得简单。 - **关键知识点**: - 不同类型的UI组件标签 - 如何使用这些标签来增强用户体验 - UI组件标签...

    Struts2教程框架

    从提供的部分文字内容来看,Struts2教程的第1章可能主要介绍了一些基础概念和准备性内容。包括对Struts2框架的一个简短介绍,强调了为什么应该使用Struts2,以及如何搭建开发和运行环境。在这些内容中,"搭建开发和...

    深入浅出Struts2(附源码)

    第2章初识Struts 14 2.1 Struts的优点 14 2.2 Struts的动作处理流程 15 2.3 拦截器 17 2.4 Struts配置文件 18 2.4.1 struts.xml文件 19 2.4.2 struts.properties文件 26 2.5 Struts应用程序示例 26 2.5.1 ...

Global site tag (gtag.js) - Google Analytics