struts2系列笔记(1)
struts2框架
如果你之前在MVC模式的时候一直都是通过servlet,获取和返回数据,那么现在开始学习struts2框架,
Struts是一个实现MVC设计模式的优秀的框架。它的许多优点我就不说了。
我用自己做的一张图说明servlet和struts2的区别。

写一个最基本的开发步骤,完成开发。
(1)创建WEB 工程
(2)导入必要jar包
(3) 编写JSP 页面
(4)编写Action 服务器端处理逻辑
(5)进行框架配置web.xml、struts.xml
(6)运行测试
(1)创建WEB 工程
这步还是很正常一样,创建一个普通web工程。如图:

(2)导入必要jar包
首先我要告诉你到哪里去下载这个框架:在apache官网,你百度struts2下载就可以找到了。

Struts运行必要jar包介绍:

开发中为了方便导入,可以使用app/struts2-blank.war 携带jar包
(3) 编写JSP 页面
在webRoot下新建一个Demo文件,网页先访问start.jsp之后通过框架返回到result页面

start.jsp界面:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<html>
<head>
</head>
<body>
<h1>请求发起的页面</h1>
<!-- 发起一个请求 访问Struts2框架 -->
<!-- Struts2请求 默认是以.action结尾 -->
<a href="${pageContext.request.contextPath }/hello.action">访问Struts2入门程序</a>
</body>
</html>
result.jsp界面
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<html>
<head>
</head>
<body>
<h1>处理完成的结果页面</h1>
</body>
</html>
(4)编写Action 服务器端处理逻辑
这里就是通过java创建一个类,该类可以说是action最普通的一个类
package com.yudian.struts;
public class HelloAction {
public String execute() throws Exception{ //这里取execute代表默认执行这个方法
System.out.println("我是执行的内容...");
return "excutesuccess"; //有返回值,我们用来跳转页面
}
}
(5)进行框架配置web.xml、struts.xml
配置文件才是核心关键,先配置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">
<display-name></display-name>
<!-- 配置Struts2的前端控制器 --><!--filter-class里面很关键,固定 -->
<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>
在配置struts.xml,注意了这个是放在src下面而不是包下面
<?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">
<!-- 3.默认Action 和Action的默认处理类 -->
<!-- 1.初步认识Struts2 --><!-- 这里hello一定要和jsp中hello。action一致才能找到 -->
<action name="hello" class="com.yudian.struts.HelloAction">
<result name="excutesuccess">/demo/result.jsp</result>
</action> <!-- result代表如果返回值为 excutesuccess则跳转页面-->
</package>
</struts>
(6)运行测试
先通过浏览器访问start界面:

当点击:访问Struts2入门程序连接直接跳转到了result.jsp
运行结果:

这上面是一个最基本的struts框架的运用,很简单,主要是供大家理解,关于每一个细节我会在接下面慢慢补充.
欢迎大家的留言给出指点意见,谢谢!
struts2系列笔记(1)的更多相关文章
- Struts2系列笔记(2)---Struts.XML
Struts2.xml 本篇博客主要讲Struts2.xml中package下的标签和标签属性,主要分以下四个部分说明: (1)action的配置基本属性 (2)同一个Action类中不同方法满足不同 ...
- Struts2系列笔记(4)---Ation类访问servlet
Ation类访问servlet Ation类有三种方式servlet: (1)间接的方式访问Servlet API ---使用ActionContext对象 (2) 实现接口,访问Action时完 ...
- Struts2系列笔记(7)---Struts2类型转换
Struts2类型转换 struts2中内置了大量的类型转换器用来完成数据类型转换的问题,这篇随笔主要通过两个方面来写Struts类型转换 1:Struts2内置的类型转换器 2:如何自定义 ...
- Java系列笔记(2) - Java RTTI和反射机制
目录 前言 传统的RTTI 反射 反射的实现方式 反射的性能 反射与设计模式 前言 并不是所有的Class都能在编译时明确,因此在某些情况下需要在运行时再发现和确定类型信息(比如:基于构建编程,),这 ...
- Java系列笔记(4) - JVM监控与调优
目录 参数设置收集器搭配启动内存分配监控工具和方法调优方法调优实例 光说不练假把式,学习Java GC机制的目的是为了实用,也就是为了在JVM出现问题时分析原因并解决之.通过学习,我觉得JVM ...
- Java系列笔记(3) - Java 内存区域和GC机制
目录 Java垃圾回收概况 Java内存区域 Java对象的访问方式 Java内存分配机制 Java GC机制 垃圾收集器 Java垃圾回收概况 Java GC(Garbage Collection, ...
- 跟着鸟哥学Linux系列笔记3-第11章BASH学习
跟着鸟哥学Linux系列笔记0-扫盲之概念 跟着鸟哥学Linux系列笔记0-如何解决问题 跟着鸟哥学Linux系列笔记1 跟着鸟哥学Linux系列笔记2-第10章VIM学习 认识与学习bash 1. ...
- 跟着鸟哥学Linux系列笔记2-第10章VIM学习
跟着鸟哥学Linux系列笔记0-扫盲之概念 跟着鸟哥学Linux系列笔记0-如何解决问题 跟着鸟哥学Linux系列笔记1 常用的文本编辑器:Emacs, pico, nano, joe, vim VI ...
- 跟着鸟哥学Linux系列笔记0-如何解决问题
跟着鸟哥学Linux系列笔记0-扫盲之概念 在发生问题怎么处理: 1. 在自己的主机.网络数据库上查询How-To或FAQ -Linux 自身的文件数据: /usr/share/doc -CLDP中 ...
随机推荐
- EHCache分布式缓存集群环境配置
EHCache分布式缓存集群环境配置 ehcache提供三种网络连接策略来实现集群,rmi,jgroup还有jms.同时ehcache可以可以实现多播的方式实现集群,也可以手动指定集群主机序列实现集群 ...
- 为什么无线信号(RSSI)是负值(转)
源:为什么无线信号(RSSI)是负值 为什么无线信号(RSSI)是负值 答:其实归根到底为什么接收的无线信号是负值,这样子是不是容易理解多了.因为无线信号多为mW级别,所以对它进行了极化,转化为dBm ...
- STM32启动模式及API(转)
源:STM32启动模式及API 我们玩ARM9,一般都是在内存里调试程序,速度飞快.STM32下也可以这样,虽说现在的flash寿命已经很长了,但flash中调试烧录程序还是一个很慢的过程,有时候程序 ...
- delphi显示hello world 和退出程序
Label1.Caption:='hello world!' Form1.close; application.Terminate; //终止程序 Application.Run; //程序运行 te ...
- C++中string
之所以抛弃char*的字符串而选用C++标准程序库中的string类,是因为他和前者比较起来,不必 担心内存是否足够.字符串长度等等,而且作为一个类出现,他集成的操作函数足以完成我们大多数情况下(甚至 ...
- 【推荐】PHP中格式化时间函数date与gmdate的区别 | 修改PHP的默认时区
PHP中的时间有2个格式化函数:date()和gmdate(),在官方的文档中的描述为: date -- 格式化一个本地时间/日期 gmdate -- 格式化一个 GMT/UTC 日期/时间,返回的是 ...
- github 创建新项目
二.GitHub简介 GitHub 可以托管各种Git版本库,并提供一个web界面,但与其它像 SourceForge或Google Code这样的服务不同,GitHub的独特卖点在于从另外一个项目进 ...
- iOS UITabBar
参考文章:http://www.cnblogs.com/wendingding/p/3775488.html 简单明了,不用再总结了.
- console 高级用法
console.log()用法,相信大家都很熟悉了,这里就不再啰嗦. 下面来玩几个新鲜点的,我用的是chrome28,不保证兼容其他浏览器:console.log的第一个参数中可以指定一个格式字符,这 ...
- java中String相等问题
java中判断两个字符串是否相等的问题 判断两个字符串是否相等的问题.在编程中,通常比较两个字符串是否相同的表达式是"==",但在java中不能这么写.在java中,用的是eq ...