java web开发入门二(struts)基于eclispe

JavaBean

 JavaBean,  咖啡豆。 JavaBean是一种开发规范,可以说是一种技术。

JavaBean就是一个普通的java类。只有符合以下规定才能称之为javabean:

1)必须提供无参数的构造方法

2)类中属性都必须私有化(private)

3)该类提供公开的getter 和 setter方法

getName() setName(String name)

注意: boolean类型的get方法名称叫 isXXX()方法  public boolean isAcitve()

JavaBean的作用: 用于封装数据,保存数据。

访问javabean只能使用getter和setter方法

JavaBean的使用场景:

1)项目中用到实体对象(entity)符合javabean规范

2)EL表达式访问对象属性。${student.name}  调用getName()方法,符合javabean规范。

3)jsp标签中的属性赋值。 setNum(Integer num)。符合javabean规范。

4)jsp页面中使用javabean。符合javabean规范

 

struts

 struts是对servlet的封装

1.开发步骤

1.下载struts 开发库:http://struts.apache.org  下载点击下载:struts-*-all.zip版本 ,使用2.3版本

2.在项目lib下面导入struts必须的包,然后build path

commons-fileupload-1.2.2.jar 【文件上传相关包】
commons-io-2.0.1.jar
struts2-core-2.3.4.1.jar 【struts2核心功能包】
xwork-core-2.3.4.1.jar 【Xwork核心包】
ognl-3.0.5.jar 【Ognl表达式功能支持表】
commons-lang3-3.1.jar 【struts对java.lang包的扩展】
freemarker-2.3.19.jar 【struts的标签模板库jar文件】
javassist-3.11.0.GA.jar 【struts对字节码的处理相关jar】

 

 

 3.配置web.xml

  <!-- 引入struts核心过滤器 -->
    <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>

4.开发action

在src下面创建struts的action,继承ActionSupport

//开发action: 处理请求
public class HelloAction extends ActionSupport {
    
    // 处理请求
    public String execute() throws Exception {
        System.out.println("访问到了action,正在处理请求");
        System.out.println("调用service");
        return "success";
    }
}

5.在src下面添加struts.xml文件(可以在struts包中搜索)

一个struts.xml中可以有多个package,但是package的名称不能重复 

<?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>
    <!-- name任意名称,extends固定写法 -->
    <package name="mystruts" extends="struts-default">
        <!-- name:浏览器要访问的名称,class:编写的action全称,method:action下面的方法 -->
        <action name="hello" class="com.eggtwo.action.HelloAction"
            method="execute">
            <!-- name:返回值, 跳转地址 -->
            <result name="success">/index.jsp</result>
        </action>
    </package>
</struts>

5.1struts.xml的第二种配置方式:

在src下面添加总的struts.xml文件,然后在总文件中引用各个包中的struts.xml文件

总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>
  <!-- 总配置文件:引用其他包中的独立的配置文件 -->
    <include file="com/eggtwo/action/struts.xml"></include>
</struts>

包中的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>
    <!-- name任意名称,extends:继承的类 -->
    <package name=com.eggtwo.action namespace="/" extends="struts-default" abstract="false">
        <!-- name:浏览器要访问的名称,class:编写的action全称,method:action下面的方法 -->
        <action name="execute" class="com.eggtwo.action.HelloAction" method="execute">
            <!-- name:返回值, 跳转地址 -->
            <result name="success" >/index.jsp</result>
        </action>
        
        <action name="login" class="com.eggtwo.action.LoginAction" method="login">
            <!-- name:返回值, 跳转地址 -->
            <result name="success" >/login.jsp</result>
        </action>
    </package>
</struts>

 

项目结构:

 

 

2.执行流程 

服务器启动:

         1. 加载项目web.xml

         2. 创建Struts核心过滤器对象, 执行filter -> init()

                  struts-default.xml,    核心功能的初始化

             struts-plugin.xml,     struts相关插件

             struts.xml                 用户编写的配置文件

 

访问:

         3. 用户访问Action, 服务器根据访问路径名称,找对应的aciton配置, 创建action对象

         4. 执行默认拦截器栈中定义的18个拦截器

         5. 执行action的业务处理方法

 

 

posted @ 2019-11-23 11:25  梦亦晓  阅读(168)  评论(0编辑  收藏  举报