【SSH学习笔记】—从配置Struts1环境到简单实例
以下我将从一个简单点的计算器实例,介绍struts1的环境配置,以及其重要的两个核心类:ActionForm和Action
简单计算器实现思路:
1.提供一个输入界面,输入两个数字和运算符(+、-、*、/),提交后将运算结果显示出来。假设出现错误显示错误页面,在正确页面和错误页面须要显示出输入值、运算符和计算结果。
2.发送计算请求。须要Action处理这个请求。并将计算结果返回。此外,发请求须要传送数据才干计算。所以须要一个ActionForm来进行数据传送。表单上传送过来的数据都是字符串的,ActionForm能够进行数据类型转换。
步骤一:配置Struts环境
1.jar包
拷贝此路径下的全部jar包。并放置在项目的WebRoot\WEB-INF\lib下
\Struts\struts-1.2.9-bin\lib下全部的jar包
2.配置ActionServlet
找到Struts\struts-1.2.9-bin\webapps\struts-blank\WEB-INF\web.xml
将红框中的内容复制到项目的WebRoot\WEB-INF\web.xml下
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbWluZ3h1YW55dW4=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" width="750" height="395">
3.配置struts核心配置文件
拷贝Struts\struts-1.2.9-bin\webapps\struts-blank\WEB-INF下的struts-config.xml文件到WebRoot\WEB-INF\下
步骤二:代码实现
1.新建input.jsp页面:提供输入界面。输入两个数字和运算符
<body>
<h1>简易计算器</h1>
<hr>
<form action="cal.action" method="post">
<input type="text" name="value1">
<select name="flag">
<option value="+">+</option>
<option value="-">-</option>
<option value="*">*</option>
<option value="/">/</option>
</select>
<input type="text" name="value2">
<input type="submit" value="计算">
</form>
</body>
2.新建CalActionForm页面并继承Struts的ActionForm:ActionForm将页面上的数据封转到Action业务类。
<pre name="code" class="java">/**
* ActionForm传送数据
* @author 火云
*
*/
@SuppressWarnings("serial")
public class CalActionForm extends ActionForm { private int value1;
private String flag;
private int value2; public int getValue1() {
return value1;
} public void setValue1(int value1) {
this.value1 = value1;
} public String getFlag() {
return flag;
} public void setFlag(String flag) {
this.flag = flag;
} public int getValue2() {
return value2;
} public void setValue2(int value2) {
this.value2 = value2;
}
}
3.新建CalAction类并继承Struts的Action,并覆盖execute方法:Action处理每一次请求
/**
* Action处理每一次请求。继承Struts的Action,并覆盖execute方法
* @author 火云
*
*/
public class CalAction extends Action { @Override
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
//取出表单数据
CalActionForm calform = (CalActionForm)form; //基于Struts对数据的封装传送,所以我们能强制转换 int value1 = calform.getValue1();
String flag = calform.getFlag();
int value2 = calform.getValue2(); //处理数据
int result = 0; try {
if("+".equals(flag)){
result = value1+ value2;
}else if("-".equals(flag)){
result = value1-value2;
}else if("*".equals(flag)){
result=value1*value2;
}else if ("/".equals(flag)){
result=value1/value2;
}
//转向成功页面
request.setAttribute("result", result);
return mapping.findForward("success");
} catch (Exception e) {
e.printStackTrace();
}
//转向错误页面
return mapping.findForward("error");
}
}
4.配置流程:Struts-config文件
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbWluZ3h1YW55dW4=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" width="750" height="300" style="font-family:'Microsoft YaHei'; font-weight:bold; font-size:12px">
5.success.jsp页面:
<body>
${calform.value1 }
${calform.flag }
${calform.value2 }
=
${result }
</body>
6.error.jsp页面
<body>
${calform.value1 }
${calform.flag }
${calform.value2 }
失败! </body>
事实上,在DRP分销系统中我们接触过MVC开发模式,在MVC开发模式中Servlet扮演着控制器的角色。
其主要功能:參数获取。业务逻辑调用,以及页面转向。
Struts是基于MVC模式的一个web开发框架。对Servlet进行了封装。为什么要进行封转呢。主要是我们在Servlet进行页面转向时。页面都是写死了。直接转到了jsp。假设我们更换jsp名称,就须要改动代码,并且从表单传过来的数据都是字符串类型,我们还须要依据实际的需求进行类型转换。比如(年龄,int类型),每次都须要先转。基于这些种种原因。Struts对其进行了封转。提供了一种更为灵活的机制。
总结:
以上仅仅是通过一个简单的小样例来对struts1的初步学习。这仅仅是学习的第一阶段。对它的理解还须要看在以后的学习中是否真正的用心。每一种框架都有通的一面。所以仅仅要用心学,多思考,再接触新的框架的时候,不论什么问题也都会迎刃而解。
【SSH学习笔记】—从配置Struts1环境到简单实例的更多相关文章
- Vue学习笔记(五)——配置开发环境及初建项目
前言 在上一篇中,我们通过初步的认识,简单了解 Vue 生命周期的八个阶段,以及可以应用在之后的开发中,针对不同的阶段的钩子采取不同的操作,更好的实现我们的业务代码,处理更加复杂的业务逻辑. 而在这一 ...
- node学习笔记1——配置node环境变量及执行node文件
最近在学习node,今天说一下node的变量环境配置.虽然网上有说,最新版的已经不需要配置这个东东了,但是我的电脑还是得配置.闲话少扯,进入正题: 1.安装node,这步就略过了.就是下载 node, ...
- Solr学习笔记之1、环境搭建
Solr学习笔记之1.环境搭建 一.下载相关安装包 1.JDK 2.Tomcat 3.Solr 此文所用软件包版本如下: 操作系统:Win7 64位 JDK:jdk-7u25-windows-i586 ...
- ESP32学习笔记(一) 环境搭建与下载
ESP32学习笔记(一) 环境搭建与下载 作者:Nevel 博客:nevel.cnblogs.com 转载请保留出处 前几天刚入手了ESP32模块,趁着放假有时间,我们先把ESP32的编译环境搭建好 ...
- Hadoop学习笔记(4) ——搭建开发环境及编写Hello World
Hadoop学习笔记(4) ——搭建开发环境及编写Hello World 整个Hadoop是基于Java开发的,所以要开发Hadoop相应的程序就得用JAVA.在linux下开发JAVA还数eclip ...
- Flutter学习笔记(1)--环境安装
flutter最近显得格外的火,公司的同事也一直在谈论flutter,感觉自己不学学就要失业了...所以决定顺应潮流学习以下flutter,做一下学习笔记,希望可以给需要的同学带来一些帮助~ 正文为f ...
- Java学习笔记【一、环境搭建】
今天把java的学习重新拾起来,一方面是因为公司的项目需要用到大数据方面的东西,需要用java做语言 另一方面是原先使用的C#公司也在慢慢替换为java,为了以后路宽一些吧,技多不压身 此次的学习目标 ...
- TensorFlow学习笔记0-安装TensorFlow环境
TensorFlow学习笔记0-安装TensorFlow环境 作者: YunYuan 转载请注明来源,谢谢! 写在前面 系统: Windows Enterprise 10 x64 CPU:Intel( ...
- Kettle学习笔记(一)— 环境部署及运行
目录 Kettle学习笔记(一)-环境部署及运行 Kettle学习笔记(二)- 基本操作 kettle学习笔记(三)- 定时任务的脚本执行 Kettle学习笔记(四)- 总结 Kettle简介 Ket ...
随机推荐
- 7.第一次使用java连接mongodb遇到的问题
转自:https://blog.csdn.net/u010523770/article/details/54585883 新版本的mongodb的驱动包是依赖bson.jar和mongodb_driv ...
- RandomStringUtils生成随机数
org.apache.commons.lang.RandomStringUtils; //产生5位长度的随机字符串,中文环 ...
- 8种提升 ASP.NET Web API 性能的方法
- ES6学习笔记(四)数值的扩展
1.二进制和八进制表示法 ES6 提供了二进制和八进制数值的新的写法,分别用前缀0b(或0B)和0o(或0O)表示. 0b111110111 === 503 // true 0o767 === 503 ...
- Vue常见面试题汇总
Vue框架常见面试题 1.active-class是哪个组件的属性?嵌套路由怎么定义? 答:vue-router模块的router-link组件. 2.怎么定义vue-router的动态路由?怎么 ...
- kali之获取靶机的图片和看的url
需要用到 fping工具 用-asg参数 调查选项: -4,ipv4只能ping ipv4地址 -6——ipv6只在ping ipv6地址 -b——大小=字节数量的ping数据以字节的方式发送(默认为 ...
- Timus 1935. Tears of Drowned 具体解释
Old Captain Jack Sparrow's friend Tia Dalma, the fortuneteller and prophetess, often makes potions. ...
- Android_L(64bit) 模拟器配置及创建项目
Android L可能就是Android 5.0.随之而来的还有Android Watch. Android TV. 而据说在10月中旬也就是15号Google的公布会上应该会推出Nexus 6和Ne ...
- a标签中的javascript:;是什么
a标签中的javascript:;是什么 一.问题 <a>标签中href="javascript:;"表示什么意思?? <a id="jsPswEdit ...
- H.264视频编解码SoC满足高清DVR设计需求
硬盘录像机(DVR)作为监控系统的核心部件之一,在10年里高速发展,从模拟磁带机的替代品演变成具有自己独特价值的专业监控数字平台,并被市场广泛接受.监控系统伴随DVR这些年的发展向着IP化.智能化发展 ...