Struts2框架学习笔记之Struts2入门

Struts2框架入门

Struts2简介

Struts2是一种基于MVC模式的轻量级Web框架,Struts2是Struts1的下一代产品,是在Struts1和WebWork技术的基础上进行合并后的全新框架

struts2框架其实是对javaWeb表现层的MVC作了优化

Struts2的优点

1、项目开源,使用及拓展方便,天生优势。
2、提供Exception处理机制。
3、Result方式的页面导航,通过Result标签实现页面跳转。4
4、通过简单、集中的配置来调度业务类,方便修改。
5、提供简单、统一的表达式语言来访问所有可供访问的数据。
6、提供标准、强大的验证框架和国际化框架。
7、提供强大的、可以有效减少页面代码的标签。
8、提供良好的Ajax支持。
9、拥有简单的插件,可以扩展Struts2框架。
10、拥有智能的默认设置,不需要另外进行繁琐的设置。

Struts2入门案例

第一步:下载jar包

下载地址:https://struts.apache.org/

选择struts-2.3.37-all.zip 下载
在这里插入图片描述

下载解压后,出现以下界面,struts-2.3.37的目录结构:
在这里插入图片描述

由于struts的jar包并不全部需要,找到apps目录下struts2-blank.war

在这里插入图片描述
解压struts2-blank.war,将示例程序lib目录下的jar包添加到我们项目中即可,此版本的Struts2项目必需的13个jar包。
在这里插入图片描述

第二步:创建项目导入jar包

创建项目,将上面的13个jar包粘贴到lib中,然后build path,会在Web App Libraries中看到
在这里插入图片描述

第三步:配置web.xml

编辑web应用的web.xml配置文件,配置struts2的核心拦截器。

<?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" 
		 xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
		 http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" 
		 id="WebApp_ID" version="3.0">

  <display-name>FirstStruts2</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
    <!--配置Struts2核心过滤器-->
   <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>
</web-app>

第四步:创建Action类

代码如下:

package cn.itcast.action;

public class HelloWorldAction {
    public String execute (){
    	return "success";
    	
    }
}

第五步:创建struts.xml文件

引入dtd约束,该代码可以在WebContent\WEB-INF\lib\struts2-core-2.3.37.jar找到
在这里插入图片描述

<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">

配置action

<package name="hello" namespace="/" extends="struts-default">
       <!-- 配置Action -->
       <action name="helloWorld" class="cn.itcast.action.HelloWorldAction">
            <!-- 配置result结果页面跳转 -->
            <result name="success">/success.jsp</result>
       </action>
      
    </package>

完整代码:

<?xml version="1.0" encoding="UTF-8" ?>
<!-- 指定Struts2配置文件的D2T信息 -->
<!DOCTYPE struts PUBLIC
	"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
	"http://struts.apache.org/dtds/struts-2.3.dtd">

<struts>
    <!-- Struts2的Action必须放在指定的包空间下定义 -->
    <package name="hello" namespace="/" extends="struts-default">
       
       <action name="helloWorld" class="cn.itcast.action.HelloWorldAction">
            <result name="success">/success.jsp</result>
       </action>
      
    </package>
</struts>

解决Struts2的配置文件struts.xml文件无提示问题
struts.xml文件提示来自DTD约束:

<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
    "http://struts.apache.org/dtds/struts-2.3.dtd">

方法1:电脑可以上网,会自动访问http://struts.apache.org/dtds/struts-2.3.dtd,提供提示功能
方法2: 配置本地DTD提示
首先需要找到我们的struts核心jar包struts2-core-2.3.30.jar,然后我们需要将它解压,可以看到struts-2.3.dtd文件
在这里插入图片描述
选择window --> preferences --> 搜索xml --> 选择xml Catalog
在这里插入图片描述

  • Location:点击File System,添加刚才解压ruts2-2.3.dtd文件路径。
  • Key type :选择URI
  • key:http://struts.apache.org/dtds/struts-2.3.dtd
    在这里插入图片描述
    点击应用,重新打开struts.xml编辑,会得到提示
    在这里插入图片描述

第六步:创建jsp文件

index.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>Struts2入门案例</title>
</head>
<body>
   <h1>Struts2入门案例</h1>
  <a href="${pageContext.request.contextPath }/helloWorld.action">Click me!</a>
</body>
</html>

success.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>Struts2跳转页面</title>
</head>
<body>
  <h1>Struts2跳转页面成功</h1>
  
</body>
</html>

第七步:部署项目

发布项目,点击超链接
在这里插入图片描述
跳转成功
在这里插入图片描述

Struts2处理流程

(1)用户在客户端发出HTTP请求

(2)然后请求被核心过滤器StrutsPrepareAndExecuteFilter拦截

(3)核心过滤器将请求转发到Action映射器,Action映射器负责识别当前的请求是否需要交由Struts2处理。

(4)Action映射器返回需要struts2处理的信息,StrutsPrepareAndExecuteFilter会创建一个Action代理

(5)Action代理并不知道执行哪一个Action,它会向配置管理器询问调用哪一个Action,配置管理器会从struts.xml读取我们配置的Action信息。

(6)Action代理创建相关请求的Action对象,调用相关的方法之前,struts2的一系列拦截器会帮我们做一些操作,例如获取请求参数等。

(7)然后调用execute方法根据返回的字符串去匹配相应的页面,

(8)页面可以获取一些页面模板,然后生成最终页面,再倒序的执行拦截器的后续操作

(9)最后生成HTTP响应内容

在这里插入图片描述

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Atkxor

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值