专栏中心

EEPW首页 > 专栏 > 扣丁学堂盘点JavaEE之Struts1框架轻易入门详解

扣丁学堂盘点JavaEE之Struts1框架轻易入门详解

发布人:only1 时间:2020-08-13 来源:工程师 发布文章

JavaEE学习就从最通用的MVC框架Struts开始学习,然后到Hibernate,最后是Spring。对于Struts来说,Struts1和Struts2区别较大。有部分人认为只需要了解最新的就可以了,但是把最原始的东西多看一下,对我们程序员来说可能收获更多。毕竟编程,思路是最重要的。  

一、什么是Struts  

Struts是开源框架(MVC)。使用Struts的目的是为了帮助我们减少在运用MVC设计模型来开发Web应用的时间。如果我们想混合使用Servlets和JSP的优点来建立可扩展的应用,struts是一个不错的选择。  

二、Struts的常用组件  

1.ActionServlet  

2.Action  

3.ActionForm  

4.ActionMapping  

5.ActionForward  

三、Struts的优点  

1.基于配置文件的松耦合,Struts中的通常类都被写在配置文件里面了。如:Action、ActionForm、ActionForward等。如果需要修改一些常用配置的话,只需要修改配置文件就可以了。  

2.Formbean(ActionForm)解决了验证信息的重新显示需要管理员设置的问题。  

3.对数据等信息有集中的验证。  

4.支持国际化以及异常信息处理。  

四、五大组件介绍  

1.ActionServlet  

Struts中的最大控制器,是Struts框架的入口,并且封装了Servlet,被配置在web.xml当中  

2.Action  

小控制器,处理具体的业务逻辑  

3.ActionForm  

和页面表单对应的一个特殊javabean,负责在页面和控制器之间传递数据。同时还提供了集中验证方法  

4.ActionMapping  

用来从Struts的配置文件中读取信息  

5.ActionForward  

页面之间的跳转  

五、Struts工程创建步骤  

1.创建一个Web工程  

2.添加Struts的jar包  

3.创建一个Struts配置文件struts-config.xml  

4.在web.xml添加Struts配置  

action  

org.apache.struts.action.ActionServlet  

config  

/WEB-INF/struts-config.xml  

action  

*.do  

5.创建一个LoginForm  

packagecom.demo.form;  

importorg.apache.struts.action.ActionForm;  

publicclassLoginFormextendsActionForm{  

privatestaticfinallongserialVersionUID=1L;  

privateStringusername;  

privateStringpassword;  

publicStringgetUsername(){  

returnusername;  

}  

publicvoidsetUsername(Stringusername){  

this.username=username;  

}  

publicStringgetPassword(){  

returnpassword;  

}  

publicvoidsetPassword(Stringpassword){  

this.password=password;  

}  

}  

6.创建一个Action类  

packagecom.demo.action;  

importjavax.servlet.http.HttpServletRequest;  

importjavax.servlet.http.HttpServletResponse;  

importorg.apache.struts.action.Action;  

importorg.apache.struts.action.ActionForm;  

importorg.apache.struts.action.ActionForward;  

importorg.apache.struts.action.ActionMapping;  

importcom.demo.form.LoginForm;  

publicclassDemoActionextendsAction{  

publicActionForwardexecute(ActionMappingmapping,ActionFormform,  

HttpServletRequestrequest,HttpServletResponseresponse)  

throwsException{  

//Stringusername=request.getParameter("username");  

//Stringpassword=request.getParameter("password");  

LoginFormloginform=(LoginForm)form;  

Stringusername=loginform.getUsername();  

Stringpassword=loginform.getPassword();  

if(username!=null&&username.equals("lwh")){  

returnmapping.findForward("success");  

//request.getRequestDispatcher("/Success.jsp").forward(request,response);  

}else{  

returnmapping.findForward("failure");  

//request.getRequestDispatcher("/Failure.jsp").forward(request,response);  

}  

//returnnull;  

}  

}  

7.在struts-config.xml中配置Action、ActionForm和ActionForward  

<?xmlversion="1.0"encoding="UTF-8"?>  

<!DOCTYPEstruts-configPUBLIC"-//ApacheSoftwareFoundation//DTDStrutsConfiguration1.3//EN""http://struts.apache.org/dtds/struts-config_1_3.dtd">  

<struts-config>  

<form-beans>  

<form-beanname="loginform"type="com.demo.form.LoginForm"></form-bean>  

</form-beans>  

<action-mappings>  

<actionpath="/login"type="com.demo.action.DemoAction"name="loginform">  

<forwardname="success"path="/Success.jsp"></forward>  

<forwardname="failure"path="/Failure.jsp"></forward>  

</action>  

</action-mappings>  

</struts-config>  

8.其他代码  

登陆页面:  

<%@pagelanguage="java"import="java.util.*"pageEncoding="ISO-8859-1"%>  

<%  

Stringpath=request.getContextPath();  

StringbasePath=request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";  

%>  

<!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN">  

<html>  

<head>  

<basehref="<%=basePath%>">  

</head>  

<body>  

<formname="loginform"id="form1"action="<%=path%>/login.do"method="post">  

<tableborder="0">  

<tr>  

<td>name:</td>  

<td><inputtype="text"name="username"id="username"/></td>  

</tr>  

<tr>  

<td>password:</td>  

<td><inputtype="password"name="password"id="password"/></td>  

</tr>  

<tr>  

<tdcolspan="2"align="center"><inputtype="submit"value="submit"/></td>  

</tr>  

</table>  

</form>  

</body>  

</html>  

成功页面:  

<%@pagelanguage="java"import="java.util.*"pageEncoding="ISO-8859-1"%>  

<%  

Stringpath=request.getContextPath();  

StringbasePath=request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";  

%>  

<!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN">  

<html>  

<head>  

<basehref="<%=basePath%>">  

</head>  

<body>  

Success!  

</body>  

</html>  

9.运行结果  

Success!  

以上就是关于扣丁学堂盘点JavaEE视频教程之Struts1框架轻易入门详解,最后想要学习JavaEE的朋友大可不必担心,只要你学好JavaEE游戏开发,想要高薪就业就不是什么难事。扣丁学堂不仅有专业的老师和课程体系,还有大量的零基础JavaEE培训视频教程供学员观看学习,想要学习的话就抓紧时间行动吧。扣丁学堂Java技术交流群:850353792。


专栏文章内容及配图由作者撰写发布,仅供工程师学习之用,如有侵权或者其他违规问题,请联系本站处理。 联系我们

关键词:

相关推荐

【CyberSmart】2009年第四届智能车竞赛创意组冠军

视频 2010-02-01

【2009东北大学智能车宣传片】---东北大学学生创新中心

视频 2010-02-01

TechInsights 解析:Nvidia Jetson AGX Orin 开发者套件

嵌入式系统 2025-11-20

便携式电池电源

无线物联网SoC内部装了什么?

安世被“抢”:国产替代选型指南

【CyberSmart】2009年智能车竞赛SmartStar队宣传片

视频 2010-02-01

ZY1420A 秒高保真语音录放模块

ZY1420B 秒高保真语音录放模块

股市里面爆红的“CPO”,与“CPC”技术对比与展望

网络与存储 2025-11-20

搞电气不懂二次回路编号?这可是基本功!

EOS失效分析

ZY1420A 分段录音播放应用设计

224Gbps高速线缆测试方案

常见的滤波电路

TechInsights 拆解:Supermicro 服务器 SYS-112C-TN

【功能扩展】ASURO智能车玩“警察抓小偷”游戏

视频 2010-02-01

TechInsights 拆解:Garmin 宝马 i7 主机

翔腾NPU芯片 +ROS2 over 全志T527

【CyberSmart】2009年第四届智能车竞赛创意组预赛

视频 2010-02-01
更多 培训课堂
更多 焦点
更多 视频

技术专区