Struts2入门
来源:互联网 发布:淘宝3天不发货怎么投诉 编辑:程序博客网 时间:2024/05/17 04:11
Struts2入门
2016/12/21
Struts2概述
Struts2是什么
Struts2是一个非常优秀的、免费开源的MVC框架(Model2设计模型),用于创建Web应用。由传统Struts1和WebWork两个经典框架发展而来。在 struts 1和WebWork的技术基础上进行了合并的全新的Struts2框架,Struts2以WebWork为核心,但开发流程类似于struts1。
框架:是可以重复使用的一些或一整套代码,通常与具体业务无关,也可以认为是软件的半成品。
MVC(全名是Model View Controller):是一种软件设计模式,或软件设计思想。
Model2 : Servlet (控制)+ JSP(显示) + JavaBean(数据处理)–符合MVC思想架构模式。
适合大型项目
Java web企业应用开发根据又根据Model2(也可以说是根据MVC思想)制定了三层结构体系(来自于JavaEE规范):
表现层(页面数据显示、页面跳转调度)servlet
业务层(业务处理和功能逻辑、事务控制)service
持久层(数据存取和封装、和数据库打交道)dao
Struts2就是一个表现层框架,可以用来简化表现层代码开发的。
Struts2核心功能:
允许POJO对象作为action
Action中的servlet API不再与方法耦合
支持更多视图技术(jsp、freemarker、velocity)
基于Spring AOP思想的拦截器机制
入门示例
本人使用的软件开发包是 : struts-2.3.15.3-all.zip
需求:
- 使用struts2编写一个简单的请求和跳转的功能页面:发送请求,执行一段逻辑,然后响应一个页面。
快速入门步骤 :
1. 创建web工程
2. 导入jar包
软件包中有126个jar包,快速入门只需以下13个jar包(根据项目的功能添加jar包):
3. 配置使用struts2的框架(web.xml)
<?xmlversion="1.0"encoding="UTF-8"?><web-appid="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>struts</display-name><!-- 配置sturts前端控制器 --><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>
Ctrl+shift+T :然后输入StrutsPrepareAndExecuteFilter后可以联想出该文件(需要关联源代码),然后复制它的绝对路径到标签中
4. 编写页面
在WebRoot文件下创建hello.jsp和result.jsp
hello.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Insert title here</title></head> <body> <a href="${pageContext.request.contextPath}/hello">点击我发送</a> </body></html>
result.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Insert title here</title></head> <body> <h1>执行请求成功</h1> </body></html>
5. 编写Action
创建一个类,编写具体的业务逻辑,功能类似于servlet
创建包cn.sturts.和Action类,命名为:HelloAction ,HelloAction类必须实现Action接口
//新建一个类,类名必须以Action作为后缀,需要实现一个Action接口,并且复写一个execute方法//功能类似于servlet,用来处理具体的业务逻辑。publicclass HelloAction implements Action{ //execute:就是默认会执行的方法 //String类型的返回值类型 //success:就是需要响应的页面 @Override public String execute() throws Exception { System.out.println("hello world!"); return"success"; }}
6. 配置请求和响应(struts.xml)
在工程的src目录下创建一个struts.xml文件。
struts.xml
<?xmlversion="1.0"encoding="UTF-8"?><!DOCTYPEstrutsPUBLIC"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN""http://struts.apache.org/dtds/struts-2.3.dtd"><struts><!-- package:包,在java中不同的包中存放不同功能的代码,那么在struts中的功能也是如此。name:包名,必须保证名称的唯一性 extends:继承哪一个包,继承的效果就是可以使用父包中的一些代码,类似与子类继承父类。这里必须继承struts-default --> <packagename="default"extends="struts-default"namespace="/"> <!-- 配置action:配置请求的url的名称,需要指定执行的具体的类的路径 name:请求路径的名称 class:就是需要执行的具体的类的路径,HelloAction的路径 --> <actionname="hello"class="cn.struts.HelloAction"> <!-- 配置需要响应的页面 name:响应页面的名称(也叫结果集视图名称),需要和execute方法中返回的字符串对应一致。 /a_hello/result.jsp:需要响应的页面 --> <resultname="success">/result.jsp</result> </action> </package></struts>
7. 运行测试
发布到tomcat上(或其他服务器),在浏览器地址栏的访问地址是:本机ip:服务器端口号/项目名/hello 例如:127.0.0.1:8080/struts2-01/hello
- Struts2入门
- struts2 入门
- struts2入门
- struts2-入门
- struts2入门
- struts2入门
- Struts2入门
- struts2入门
- Struts2入门
- struts2 入门
- struts2-入门
- Struts2入门
- struts2 入门
- struts2入门
- Struts2入门
- struts2入门
- Struts2入门
- Struts2入门
- spring和springMVC父子容器的原理
- React-Native- RefreshControl && Navigator 使用案例
- 45. Jump Game II
- 有关C/C++指针的经典面试题
- 外部启动c#窗体程序传参问题
- Struts2入门
- iOS开发的一些奇巧淫技
- php 生成静态页面函数
- MongoDB架构图解
- seo网站域名选择技巧
- gentoo下配置中文输入法(搜狗输入法)
- spring 源码分析之环境搭建
- 关于klist
- JAVA的文件上传和下载详解