首先理解Struts与MVC的关系
在传统的MVC模式中所有的请求都要先交给Servlet处理,之后由Servlet调用JavaBean,并将结果交给JSP中进行显示。结构图如下
Struts是Apache基金组织中Jakarta项目组的一个开源(Open Source)项目,主要就是实现了MVC设计模式,在Struts中有自己的控制器(ActionServlet),同时也提供了各种常用的页面标签库以减少JSP页面中的Scriptlet代码,Struts实际上就属于在传统技术上发展起来的一种新的应用模式,其操作的本质依然还是JSP、Servlet、JavaBean等技术的应用,Struts的体系结构图如下。
MVC与Struts各个组件的对应关系 
理解以上以后
我们开始学习配置Struts开发环境
Struts属于一套单独的开发包,所以首先要从Apache的Jakart项目(http://jakarta.apache.org/)上下载最新的Struts开发包(http://struts.apache.org/),本人使用的是Struts 2.1的开发包,(struts-2.1.8.1-all.jar)
将Struts开发包中的lib目录下的全部*.jar包拷贝到%TOMCAT_HOME%\lib目录之中,也可使用myeclipse工具直接导入Struts包,下图是包目录
然后配置web.xml文件

<?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" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0">
<display-name>Struts1</display-name>
<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>*.action</url-pattern>
</filter-mapping>
</web-app>

配置struts-config.xml文件内容下面具体讲解

开发第一个Struts程序

web.xml如上

struts-config.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd">
<struts>
<constant name="struts.devMode" value="true" />
<!-- 指定每次请求到达,重新加载资源文件 -->
<constant name="struts.i18n.reload" value="true"/>
<!-- 指定每次配置文件更改后,自动重新加载 -->
<constant name="struts.configuration.xml.reload" value="true"/>
<!-- 把主题配置为simple -->
<constant name="struts.ui.theme" value="simple"/>
<package name="Struts" extends="struts-default" namespace="/">
<action name="login" class="com.oumyye.action.LoginAction">
<result name="success">/success.jsp</result>
</action>
</package>
</struts>

LoginAction.java

package com.oumyye.action;

import javax.servlet.http.HttpServletRequest;

import org.apache.struts2.ServletActionContext;

import com.opensymphony.xwork2.ActionSupport;

/**
*
* @author 偶my耶
* action
*/
public class LoginAction extends ActionSupport { /**
*
*/
HttpServletRequest request = ServletActionContext.getRequest();
private static final long serialVersionUID = 1L;
@Override
public String execute() throws Exception { String name=request.getParameter("user_name");//获得user_name
request.setAttribute("name",name);//设值
return SUCCESS;
}
}

jsp界面

index.jsp

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html> <body>
<form action="login.action">
姓名:<input type="text" name="user_name">
<input type="submit" value="跳转">
</form>
</body>
</html>

success.jsp

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>"> <title>My JSP 'index.jsp' starting page</title> </head>
<% String name=(String)request.getAttribute("name");
%>
<body>
欢迎<%=name %>
跳转成功!!
</body>
</html>

Struts工作原理

Struts是MVC设计模式的一种具体的实现;
Struts中的核心类就是ActionForm、Action,都需要在struts-config.xml文件中进行配置。

java框架篇---Struts入门的更多相关文章

  1. Java框架篇---Mybatis 入门

    一.Mybatis介绍 MyBatis是一款一流的支持自定义SQL.存储过程和高级映射的持久化框架.MyBatis几乎消除了所有的JDBC代码,也基本不需要手工去设置参数和获取检索结果.MyBatis ...

  2. java框架篇---struts之文件上传和下载

    Struts2文件上传 Struts 2框架提供了内置支持处理文件上传使用基于HTML表单的文件上传.上传一个文件时,它通常会被存储在一个临时目录中,他们应该由Action类进行处理或移动到一个永久的 ...

  3. java框架篇---struts之OGNL详解

    OGNL(Object Graph Navigation Language),是一种表达式语言.使用这种表达式语言,你可以通过某种表达式语法,存取Java对象树中的任意属性.调用Java对象树的方法. ...

  4. java框架篇---hibernate入门

    Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库. Hibernate可以应用在任何使用JDB ...

  5. java框架篇---struts实现拦截器

    Struts2的拦截器和Servlet过滤器类似.在执行Action的execute方法之前,Struts2会首先执行在struts.xml中引用的拦截器,在执行完所有引用的拦截器的intercept ...

  6. java框架篇---struts开发

    1.Token Token主要是以一种指令牌的形式进行重复提交处理的,在很多情况下,如果用户对同一个表单进行了多次提交,则有可能造成数据的混乱,此时,WEB服务器必须可以对这种重复提交的行为做出处理, ...

  7. java框架篇---spring IOC 实现原理

    IOC(DI):其实这个Spring架构核心的概念没有这么复杂,更不像有些书上描述的那样晦涩.java程序员都知道:java程序中的每个业务逻辑至少需要两个或以上的对象来协作完成,通常,每个对象在使用 ...

  8. java框架篇---Struts2的处理流程

    一.Struts2的处理流程: 客户端产生一个HttpServletRequest的请求,该请求被提交到一系列的标准过滤器(Filter)组建链中(如ActionContextCleanUp:它主要是 ...

  9. java框架篇---spring hibernate整合

    在会使用hibernate 和spring框架后 两个框架的整合就变的相当容易了, 为什么要整合Hibernate?1.使用Spring的IOC功能管理SessionFactory对象 LocalSe ...

随机推荐

  1. @weakify, @strongify

    我们知道,在使用 block 的时候,为了避免产生循环引用,通常需要使用 weakSelf 与 strongSelf,写下面这样的代码 __weak typeof(self) weakSelf = s ...

  2. 1 时间戳 2 C# 如何生成一个时间戳 3 js 时间加一分钟... 4 js string->date 5 js 取得当天0点 / 23:59:59 时间

    var str = 'Jan 23, 2019 10:25:47 AM';var strnow = new Date(str); 时间戳(timestamp),一个能表示一份数据在某个特定时间之前已经 ...

  3. thinkphp C函数的实现原理

    在写一个php原生函数的时候,想起使用thinkphp的C函数读取数据库配置非常方便,于是看了看源码的实现,原理很简单,分享一下: 下面是common.php,实现了C函数: if(is_file(& ...

  4. [AaronYang]C#人爱学不学[1]

    当前编写时间:2014年12月24日21:11:14   编写人:杨洋(Aaronyang) 新文章:[AaronYang]C#人爱学不学[1] 声明:->可以理解为 联想到,或者关联的意思. ...

  5. php截取字符去掉最后一个字符

    $str="中国.美国.俄罗斯.德国."$str=substr($str,0,-1); 输出结果为:中国.美国.俄罗斯.德国

  6. Nginx 通过certbot 配置let's encrypt 证书 【转载,整理】

    重要目录:/usr/local/certbot,/var/log/letencrypt,/etc/letencrypt

  7. [转]postgre 系统表对象说明

    一.pg_class: 该系统表记录了数据表.索引(仍然需要参阅pg_index).序列.视图.复合类型和一些特殊关系类型的元数据.注意:不是所有字段对所有对象类型都有意义. 名字 类型 引用 描述 ...

  8. python标准库介绍——31 threading 模块详解

    threading 模块 (可选) ``threading`` 模块为线程提供了一个高级接口, 如 [Example 3-1 #eg-3-1] 所示. 它源自 Java 的线程实现. 和低级的 ``t ...

  9. update关联其他表批量更新数据-跨数据库-跨服务器Update时关联表条件更新

    1.有时在做项目时会有些期初数据更新,从老系统更新到新系统.如果用程序循环从老系统付给新系统. 2.有时在项目中需要同步程序,或者自动同步程序时会有大量数据更新就可能用到如下方法了. 3.为了做分析, ...

  10. mysql查询今天、昨天、本周、本月、上一月 、今年数据

    mysql数据库中的关于查询日期的一些操作如下: --今天 select * from 表名 where to_days(时间字段名) = to_days(now()); --昨天 --本周 SELE ...