飞道的博客

Struts学习笔记(一)

266人阅读  评论(0)

框架概述

  1. 框架的意义与作用:
    • 所谓框架,就是把一些繁琐的重复性代码封装起来,使程序员在编码中把更多的经历放到业务需求的分析和理解上面。
    • 特点:封装了很多细节,程序员在使用的时候会非常简单。
  2. 三大框架:
    • Struts2,Hibernate,Spring (SSM模式)
    • 三层架构:
      • 表现层:M model V view C control
      • 业务层:Service
      • 持久层:Dao DB

Struts2

  1. 简介:

    • Struts是出于三层架构中表现层的框架
    • Struts2就是apache和OpenSymphony组织合并开发出来。里面包含了WebWork2的核心及Struts的一些特性和功能。
  2. Filter做控制器,而不是Servlet

    • 控制器:Servlet
      init()
      destroy()
      service(ServletRequest,ServletResponse)
    • 过滤器:Filter 它也可以作为控制。
      init(FilerConfig)
      destroy()
      doFilter(ServletRequest,ServletResponse,FilterChain)
    • 两者相比较:Servlet能做的Filter都可以做,并且比Servlet功能更强大,它多了一个放行的功能。
  3. 配置开发环境:

    • 下载开发包
    • 搭建环境
      • 导入所需要的包
      • 创建一个配置文件:在顶层类路径下,创建一个名称为struts.xml文件
      • 在web.xml中配置核心控制器
  4. 简单入门案例:
    struts.xml

<?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="p1" extends="struts-default">
		<action name="hello" class="com.lwb.web.action.HelloAction" method="sayhello">
			<result name="success">/success.jsp</result>
		</action>
	</package>

</struts>

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
  <!-- 配置Structs2的核心控制器,过滤器 -->
      <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>

  <display-name>Structs2-day01</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>
</web-app>

index.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>

  </head>
  
  <body>
  <%--在Structs2中,控制器会默认拦截扩展名为.action的请求,除此之外什么也不写也可以 --%>
  
  <a href="${pageContext.request.contextPath }/hello.action">有action</a>
  
  <a href="${pageContext.request.contextPath }/hello">没有action</a>
  </body>
</html>

success.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>

  </head>
  
  <body>
操作成功!!
  </body>
  
</html>

HelloAction.java

public class HelloAction {
	
	/**
	 * 在动作类中的指定的动作方法
	 * 书写要求:
	 * 		1. 都是public
	 * 		2. 返回值都String
	 *      3. 没有参数
	 * @return
	 */
	
	public String sayhello(){
		System.out.println("sayhello方法执行");
		return "success";//与配置文件中的result的name值相对应
	}

}
  1. 案例的执行过程
  2. Struts2的内部过程

总结

今天先学习到这里,理解一下原理先。


转载:https://blog.csdn.net/qq_41816516/article/details/105549816
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场