Struts学习笔记二:Struts入门HelloWorld

说老实话,博客这玩意也不见得比做笔记好的到哪里去,只能说看个人吧,我忘性比较大,也比较浮躁,别人都说struts2也快过时了,现在都流行用SpringMVC,都说Hibernate太笨重了,都流行用MyBatis。没啥意思,无聊学一学,毕竟我现在只是一个实施,啥时候工作又给丢了还不一定。加油吧小伙子。。。

回归主线:什么是框架?
这里写图片描述
上述是Google到的一点子介绍,什么是框架呢?微观上看,就是由一个又一个的类构成一个又一个的包,一个又一个的包再构成框架。而宏观上看呢?半成品的项目.我们需要执行什么业务.为框架填写业务逻辑即可。(都是我抄来的)

我们经常说三大框架,反正我是听烦了,妈的,老子一个项目都没做过,还整天给老子说什么项目框架,草。

以前的SSH:Struts Spring Hibernate
现在的SSM:Spring,SpringMVC、MyBatis

Struts2到底是个什么玩意?
其实Struts2这玩意和Struts1没有任何关系,Struts2其实就是xwork框架。

虽然现在Struts惨淡的一比,但是毕竟也是三大框架之一,也有辉煌灿烂的昨天。在很久很久以前用Struts1进行开发的人太多了,而xwork框架架构虽然比Struts1好,但是没人愿意用啊(就像习惯了Servlet,突然出现了一个类似与Servlet的玩意,但是比Servlet要好那么一丢丢,你愿意再去学习新的API吗?)。

最后xwork框架的作者没办法,只能借Struts的名声把自己的框架推广出去,这些陈年往事谁知道是真是假,听听就得了

三大框架的作用?
简化我们的开发.降低开发成本.提高开发效率
目前学习的Struts2框架属于WEB层框架,它的优势:

1.不用侵入性比较高的Servlet.可以直接写普通java类作为处理请求逻辑的处理类.这样更易于测试.(瞎扯淡)

2.整合了一些之前需要手动来做的功能. 后台验证,表单回显,自动将表单参数封装,防止表单重复提交…如果不够用我们还可以扩展框架的功能.

下面进入正题,编写一个第一个Struts项目:struts_hello,项目的具体结构如下图所示:代码量少了不少,主要还是配置:

这里写图片描述

1、第一步:引入jar包:
这里写图片描述

2、第二步:创建一个Action类:HelloAction:

package com.hardstudy.action;

public class HelloAction {
    public String execute(){
        System.out.println("hehe zhangyue!!!");
        return "success";
    }
}

3、第三步:核心配置文件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="struts" namespace="/fuck" extends="struts-default">
        <action name="HelloAction" class="com.hardstudy.action.HelloAction" method="execute">
            <result name="success" type="dispatcher">/index.jsp</result>
        </action>
    </package>
</struts>

需要注意的是,这里的struts.xml中配置action比之前的那么mini struts要复杂了一点,之前都是在默认的路径下,现在可以指定这个action所在的包了,方便统一管理。

4、第四步:在web.xml文件中注册一个指定的Struts过滤器:StrutsPrepareAndExecuteFilter:

<?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">
  <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>

5、第五步:测试,在浏览器地址栏中输入:http://struts_hello/fuck/HelloAction.action,其中”/fuck”是在package的namespace中配置的信息,然后提交:
这里写图片描述

问题1:有时候在地址栏中输入了正确的URL路径,还是出现错误:
这里写图片描述
这里写图片描述

总结一下:框架的作用就是帮助我们做了很多我们可以不用做的繁琐的事情,这个基础的helloworld比之前那一个mini struts的代码量要少了不少,重要的东西都在配置文件中,struts是这样,spring也是这样(当让它可以使用注解)。下面我可能会着重的介绍一下struts.xml中的各项配置,以求让自己可以明白。

总结一下整个流程:

 导入jar包
 Action类(请求处理类)
 核心配置文件:struts.xml
 web.xml配置过滤器
 测试

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值