SSH框架入门(1)——struts2(1)

来源:互联网 发布:mac蓝光播放软件 编辑:程序博客网 时间:2024/06/06 15:54

 

一、框架概述

1、什么是框架?

框架(framework)是一个基本概念上的结构,用于去解决或者处理复杂的问题。它其实就是某种应用的半成品,就是一组组件,供你选用完成你自己的系统。简单说就是使用别人搭好的舞台,你来做表演。框架是在特定的领域内解决问题。

2、框架有什么优点?

(1)重用代码大大增加,软件生产效率和质量也得到了提高。

(2)使用框架开发,它提供统一的标准,大大降低了我们的后期维护。

二、 java开发中常用框架

在目前的Java开发中主要使用的是两套框架即SSH和SSM(SSI),SSH指的是Struts2+spring+hibernate,SSM指的是springmvc+spring+mybatis(ibatis)。SSH它是企业开发中比较主流的一套架构。主要应用于传统企业,比如银行、政府、物流等。SSM则主要应用于互联网企业开发当中,比如秒杀、购物等网站的开发。那我们先从SSH框架开始介绍。

在将框架之前要先介绍一下JavaEE开发的四层架构,SSH对应的都是那一层呢?

(1)客户层(主要是HTML页面,这一次是在客户层,所以我们作为Java开发人员主要关注后面三层)

(2)表现层(web层,之前主要使用的技术就是servlet)-------------struts

(3)业务层(service层,主要完成业务逻辑操作)-------------spring

(4)持久化层(dao层,主要是与数据库进行操作,完成CRUD操作)----hibernate

注:spring是一个一栈式的框架,可以在三层架构中都存在。

有人可能对Java三层架构(大部分人可能会忽略客户层说成是三层架构)和MVC设计模式有些混淆,这里再科普下三层架构和MVC的关系,

MVC相当于Java三层架构的web层:

MVC----------------------------web

M(Model 模型)---JavaBean

V(View 视图---JSP

C(Controller 控制---servlet

三、 Struts2框架介绍

1、什么是struts2框架?

Struts2是一个基于MVC设计模式的Web应用框架,它本质上相当于一个servlet,在MVC设计模式中,Struts2作为控制器(Controller)来建立模型与视图的数据交互

这里要说一下,struts2框架的不是struts1框架的升级版,而是继承的webwork中的血统(基于webwork),它吸收了struts1中和webwork中的优势。

Struts2=struts1+webworkwebwork占大多部分)。


2、struts2的核心点

因为Struts2是一个比较大的框架,作为入门我们只讲它的几个核心点即拦截器 interceptor、Action、ognl与valueStack。


3、使用struts2框架完成web开发有什么优点呢?

在web层的这些操作都是比较固定的模式,Struts2就可以将这些通用的操作进行封装,而我们只需要关注业务逻辑就行了,这样就可以进行快速开发。


四、简单登录案例原型

那我们先从一个简单的案例来入手来看看进行struts2的一个入门学习;

那我先从一个登陆案例来进行入手,那么之前没有学习框架之前我们是通过jsp+servlet+javaBean来进行实现的,即:


在jsp页面创建form表单,进行提交触发servlet对输入的用户名和密码进行校验,并根据校验结果进行跳转。

login.jsp

LoginServlet

这就是没有使用框架之前我们用Java三层架构开发的方法,那么现在我们用框架来进行开发,要怎么使用struts2来解决呢?看上述实现的过程我们发现要想使用struts2来完成上述的要求需要面对几个问题:

1.struts2框架如何完成原来由servlet完成的工作。

2.Struts2框架如何完成请求参数的封装处理

3.Struts2框架如何完成页面跳转。

如下图:


五、Struts2框架来完成登录操作


1、怎样使用struts2来进行开发呢?

当然,第一步一定是要在官网上下载它的jar包。那下载之后就要搭建它的开发环境了,步骤如下:

1、导入相关的开发所用的jar包。

2、在web.xml中配置struts2的核心过滤器,只有配置了它才可以使用struts2框架。

3、在src下配置struts.xml(Struts2的核心配置文件)。

4、创建action来完成逻辑操作。

2、 快速入门

我这里使用的是struts2 2.3.24版本,我们先看下struts2的文件里都有什么内容:

apps: 示例代码

docs:文档

lib: 相关的jar包

src: 源代码

我们使用strtus2框架不是直接将它的lib包下的所有的jar文件copy到项目中,而是使用其中的一部分。我们可以将示例代码(apps)中的struts-blank工程中的jar包(13个),就可以完成简单的Struts2框架应用。


操作步骤:

1.导入13个jar包

2.需要在web.xml文件中配置StrutsPrepareAndExecuteFilter(核心过滤器)

<filter>

                      <filter-name>struts2Filter</filter-name>

                     <filter-class>

                                org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter

                      </filter-class>

                     <!--可以声明struts2框架常量值

                     <init-param>

                                <param-name>struts.i18n.encoding</param-name>

                                <param-value>GBK</param-value>

                     </init-param>

                     -->

           </filter>

           <filter-mapping>

                      <filter-name>struts2Filter</filter-name>

                      <url-pattern>/*</url-pattern>

           </filter-mapping>

3.创建一个struts.xml文件,它的位置是可以放置在src下(必须叫这个名字)。因为它还有些相关的规范,所以我们也可以直接复制它项目下的struts.xml文件,将多余的进行删除就行了。


3、下面我们先使用框架来完成页面的跳转:

jsp页面:login.jsp


Action(action中的方法是有规定的,修饰符必须是public ,返回值是void或者String,方法不能有参数)

Struts2Action:


struts.xml文件配置


简单的进行一下流程分析:
1、先访问jsp页面点击超链接发送请求,访问的路径是/struts
2、因为当前的工程已经配置了StrutsPrepareAndExecuteFilter,它拦截所以请求
3、根据struts.xml中的配置,package中的namespace和action中的name两个属性联合使用来确定一个action的访问路径,而这个访问的路径要访问的就是action中的class属性里的类,这样我们就使用struts2框架完成了简单登录功能。

4、 使用struts2完成简单登录操作

1.login.jsp页面不变动

2.创建一个LoginAction来完成逻辑操作

3.在struts.xml文件中完成配置操作

那么我们就遇到了一个问题了,使用struts2如何来接收数据呢?
这里我们可以在Action中直接创建username和password两个成员变量,并提供对应的set方法,这样我们就可以获得从jsp页面传递过来的参数了。

那么接收完参数进行判断后我们如何完成页面的跳转呢?
这里我们可以给Action的方法添加一个String 的返回值,在struts.xml配置文件中,在其对应的action配置上通过<result>来确定跳转的路径。


这样就使用struts2框架完成了简单的登录功能,因为是学习struts2框架,所以这里就直接是在Action中进行条件判断,没有使用数据库对其进行匹配。
那么通过本篇博客的学习,您应该已经开始学会struts2的一个简单的入门,希望您能继续关注我的博客,继续进行框架的一个学习。