【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 ...
随机推荐
- Linux系统病毒防治
Linux系统病毒防治 一.Linux病毒的历史 1996年出现的Staog是Linux系统下的第一个病毒,它出自澳大利亚一个叫VLAD的组织.Staog病毒是用汇编语言编写,专门感染二进制文件,并通 ...
- 开发板ping得通本地,但是不能上网
在3531D的开发板上面接入LAN7500的USB转以太网口,加载完驱动后. 然后开启eth1 查看一下ifconfig,发现没有ip,配置一下ip 直接ping本地发现可以ping得通,代表链路是连 ...
- JAVA数组的基本方法
数组的基本方法 数组可以存放多个数据,多个数据类型要统一数组格式: 格式一:常用写法 数组类型[] 数组名称 = new 数据类型[数组长度]; 格式二:蛋疼写法 数组类型[] 数组名称; 数组名称 ...
- 使用 HTML5 canvas制作拾色器
自制的拾色器漂亮吧,哈哈 废话不多说直接上代码,希望可以帮到需要的朋友 <html><head> <style> .canvas_color{p ...
- visualvm监控tomcat
https://my.oschina.net/weidedong/blog/787203
- ios学习之旅------玩转结构体
1.全局变量和局部变量 局部变量: 概念:定义函数内部变量 定义格式:变量类型 变量名称; 作用域:从定义那一行開始到所在代码块结束 生命周期:从代码运行到定义的哪一行 ...
- C语言之基本算法39—字符串经典操作
//字符串概念! /* ================================================================== 题目:练习字符串的 1.输入输出 ...
- IOS开发人员经常使用的10个Xcode插件
IOS开发人员经常使用的10个Xcode插件 申请达人,去除赞助商链接 一个合适的插件意味着它能够适应不同的开发环境,Sublime Text 和TextMate就是非常好的样例.你知道Xcode也支 ...
- js实现 导航移入移出效果
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- Vue自定义指令实现下拉加载:v-loadmore
和methods平级: directives: { loadmore: {//自定义指令: 下拉加载 bind(el, binding) { var p = 0; var t = 0; ...