struts2入门

一.什么是struts2

1.定义:
这里写图片描述

上面是我百度得来的,感觉没太明白,简单来说就是接受网页中表单提交的数据,然后通过 Action 进行处理,再返回到对应的网页。

2.具体流程:
1、客户端浏览器发出HTTP请求.

2、根据web.xml配置,该请求被FilterDispatcher(struts2核心)接收

3、根据struts.xml配置,找到需要调用的Action类和方法, 并通过IoC(控制反转)方式,将值注入给Aciton

4、 Action调用业务逻辑组件处理业务逻辑,这一步包含表单验证。

5、 Action执行完毕,根据struts.xml中的配置找到对应的返回结果result,并跳转到相应jsp页面

6、返回HTTP响应到客户端浏览器

我总结了一下大概是这样一个过程吧。

二.struts2内容

1.需要配置web.xml(默认创建的动态web工程在WEB-INF文件夹下面都有一个web.xml文件文件), web.xml配置你了整个项目的信息,所以我们要在web.xml里面告诉项目我们要用struts2框架。

2.配置struts.xml文件,主要是用来配置action的。也就是请求处理之类的。

3. action:主要的开发都是围绕action进行的,action的信息主要在struts.xml文件中编写。

4.标签:UI标签,主要用于生成HTML元素标签,UI标签又可分为表单标签非表单标签。非UI标签,主要用于数据访问,逻辑控制等的标签。非UI标签可分为流程控制标签。在jsp页面中使用。

5.拦截器:在访问struts2中某个action之后或者之前,会自动调用的类,说明白点拦截器其实是Action的功能块,通过配置struts.xml文件来实现。举个例子:你想下载个东西,点击下载先跳出登陆页面,这就是拦截器搞的鬼,没有登录前很多页面或Action都被他拦截了 ,还有一些页面的重复提交。

如果有兴趣的话,可以查看struts2框架,我只列出一些重要的知识点,还有许多需要我们去学习。

三.struts2例子

第一步,先配置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">
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>//指明刚进去的网页
  </welcome-file-list>

  <filter>
        <filter-name>struts2</filter-name>
        <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
    </filter>
     //指出使用struts2框架
    <filter-mapping>
        <filter-name>struts2</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
</web-app>

第二步,创建一个首页面index.jsp:

<?xml version="1.0" encoding="GB18030" ?>
<%@ page language="java" contentType="text/html; charset=GB18030"
    pageEncoding="GB18030"%>

<% String context = request.getContextPath(); %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GB18030" />
<title>Insert title here</title>
</head>
<body>
<a href="<%=context %>/actions/Studentadd">添加学生</a>
<a href="<%=context %>/actions/Studentdelete">删除学生</a>
<br />
<a href="<%=context %>/actions/Teacher_add">添加老师</a>
<a href="<%=context %>/actions/Teacher_delete">删除老师</a>
<a href="<%=context %>/actions/Course_add">添加课程</a>
<a href="<%=context %>/actions/Course_delete">删除课程</a>

</body>
</html>

第三步,创建StudentAction文件 :

package com.struts2.action;

import com.opensymphony.xwork2.ActionSupport;

@SuppressWarnings("serial")
public class StudentAction extends ActionSupport {
    public String add() {
        return SUCCESS;
    }
    public String delete() {
        return SUCCESS;
    }

}

第四步,创建TeacherAction文件:

package com.struts2.action;

import com.opensymphony.xwork2.ActionSupport;

public class TeacherAction extends ActionSupport {
    public String add() {
        return SUCCESS;
    }

    public String delete() {
        return SUCCESS;
    }


}

第五步,创建Studentadd_success.jsp:

<?xml version="1.0" encoding="GB18030" ?>
<%@ page language="java" contentType="text/html; charset=GB18030"
    pageEncoding="GB18030"%>
    <%@taglib uri="/struts-tags" prefix="s" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GB18030" />
<title>Insert title here</title>
</head>
<body>
    Student Add Success!
</body>
</html>

第六步,创建Studentdelete_success.jsp:

<?xml version="1.0" encoding="GB18030" ?>
<%@ page language="java" contentType="text/html; charset=GB18030"
    pageEncoding="GB18030"%>
    <%@taglib uri="/struts-tags" prefix="s" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GB18030" />
<title>Insert title here</title>
</head>
<body>
    Student Delete Success!
</body>
</html>

第七步,创建Teacher_add_success.jsp:

<?xml version="1.0" encoding="GB18030" ?>
<%@ page language="java" contentType="text/html; charset=GB18030"
    pageEncoding="GB18030"%>
    <%@taglib uri="/struts-tags" prefix="s" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GB18030" />
<title>Insert title here</title>
</head>
<body>
    Teacher Add Success!
</body>
</html>

第八部,创建Teacher_delete_success.jsp:

<?xml version="1.0" encoding="GB18030" ?>
<%@ page language="java" contentType="text/html; charset=GB18030"
    pageEncoding="GB18030"%>
    <%@taglib uri="/struts-tags" prefix="s" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GB18030" />
<title>Insert title here</title>
</head>
<body>
    Teacher Delete Success!
</body>
</html>

第九步,配置struts.xml文件:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
    "http://struts.apache.org/dtds/struts-2.0.dtd">

<struts>
    <constant name="struts.devMode" value="true" />
    <package name="actions" extends="struts-default" namespace="/actions">
        <action name="Student*" class="com.struts2.action.StudentAction" method="{1}">
            <result>/Student{1}_success.jsp</result>
        </action>

        <action name="*_*" class="com.struts2.action.{1}Action" method="{2}">
            <result>/{1}_{2}_success.jsp</result>
            <!-- {0}_success.jsp -->
        </action>
    </package>
</struts>

运行结果:
开始页面

这里写图片描述

这里写图片描述
再总结一次struts项目的搭建流程:
1、创建项目
2、加入jar包
3、修改web.xml
4、修改struts.xml
5、编写Action
6、编写JSP页面

四.struts2心得

刚学习struts2的时候,感觉很麻烦,要配置这里,那里,web.xml和struts2.xml配置也不知道怎么去配置,但用久了,感觉也没什么东西去配置,都是熟悉的套路。关于struts2框架我还有很多很多地方没去尝试过,感觉还是要多使用才能对这框架有个更好的了解,也不要更深入的去了解struts2内部怎么运行的,这是个工具,能更好的运用就好。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值