一: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是基于MVC(Model-View-Controller)设计模式的框架,它是Struts1的升级版,提供更灵活的控制层设计,强化了Action、Interceptor和结果映射等核心概念。Struts2通过OGNL(Object-Graph...
首先,让我们从“第一章 Struts2概述”开始。Struts2是Apache软件基金会的产品,它是基于Struts1的升级版,引入了更多功能和改进,以提高可扩展性和灵活性。Struts2的核心是Action类,它处理用户请求并负责业务逻辑...
第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 ...
第一章 配置环境 第二章 HelloWorld你的第一个Struts程序 第三章 MVC概述 第四章 Model模型 第五章 View页面视图 第六章 Controller控制器 第七章 使用Struts连接池 第八章 Struts的异常处理 第九章 Struts的国际化 ...
"Struts 2 标签库概述" Struts 2 的标签库是 Struts 2 框架的核心组件之一,它提供了强大的标签功能,帮助开发者快速构建 Web 应用程序。与 Struts 1 相比,Struts 2 的标签库使用 OGNL 表达式作为基础,提供了更...
Struts 2 标签库概述 Struts 2 标签库是 Struts 2 框架中的一个核心组件,它提供了许多实用的标签来帮助开发者快速构建 web 应用程序。与 Struts 1 相比,Struts 2 标签库使用 OGNL 表达式作为基础,提供了更加强大...
- **示例应用**:第2章通过一个简单的示例应用,引导读者逐步了解如何创建一个Struts2项目,包括配置文件的设置、Action类的编写以及视图的渲染等步骤。 - **高级特性**: - **拦截器技术**(第4章):介绍了Struts...
在第一章中,作者探讨了Struts是否过时的问题,通过回顾Struts的历史发展过程,解释了为什么Struts2依然具有生命力。Struts2的“简历”部分展示了其核心特性,包括丰富的标签库、拦截器机制、FilterDispatcher与...
一、Struts2.0概述 Struts2是Apache软件基金会的开源项目,它是对Struts1.x的重大改进和升级,提供了更强大的功能和更好的性能。Struts2的核心组件包括Action、Result、Interceptor等,这些组件协同工作,使得业务...
第4章 另一Struts2核心技术:拦截器 47 4.1 拦截器在Struts2中的缺省应用 47 4.2 拦截器原理实现 50 4.3 在Struts2中配置自定义的拦截器 53 4.3.1 扩展拦截器接口的自定义拦截器配置 54 4.3.2 继承抽象拦截器的...
3.1 Struts 2概述 MVC模式是软件设计中的一种经典架构,它将应用程序分为三个核心部分:模型(Model)负责处理业务逻辑,视图(View)用于展示数据,控制器(Controller)则负责接收用户请求并协调模型和视图。...
第一章,Struts2概述,主要介绍了Struts2框架的基本理念和架构。它强调了Struts2是如何通过拦截器机制实现灵活的请求处理,并提供了强大的插件支持。Struts2的核心组件包括Action、Result、Interceptor、ValueStack...
- **章节概述**:这一章专注于Struts2提供的各种UI组件标签,这些标签使得构建美观且功能丰富的用户界面变得简单。 - **关键知识点**: - 不同类型的UI组件标签 - 如何使用这些标签来增强用户体验 - UI组件标签...
从提供的部分文字内容来看,Struts2教程的第1章可能主要介绍了一些基础概念和准备性内容。包括对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 ...