← java排序算法
Struts1入门
发表于2017年1月3日由搬砖工阅读次数 190
JavaEE学习就从最通用的MVC框架Struts开始学习,然后到Hibernate,最后是Spring。
对于Struts来说,Struts1和Struts2区别较大。有部分人认为只需要了解最新的就可以了,但是把最原始的东西多看一下,对我们程序员来说可能收获更多。毕竟编程,思路是最重要的。
Struts1入门
一、什么是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配置
1234567891011121314
<servlet> <servlet-name>action</servlet-name> <servlet-class>org.apache.struts.action.ActionServlet</servlet-class> <init-param> <param-name>config</param-name> <param-value>/WEB-INF/struts-config.xml</param-value> </init-param> <load-on-startup>2</load-on-startup></servlet> <servlet-mapping> <servlet-name>action</servlet-name> <url-pattern>*.do</url-pattern></servlet-mapping>
5.创建一个LoginForm
12345678910111213141516171819202122
package com.demo.form;import org.apache.struts.action.ActionForm; public class LoginForm extends ActionForm{ private static final long serialVersionUID = 1L; private String username; private String password; public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } }
6.创建一个Action类
123456789101112131415161718192021222324252627
package com.demo.action;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.apache.struts.action.Action;import org.apache.struts.action.ActionForm;import org.apache.struts.action.ActionForward;import org.apache.struts.action.ActionMapping;import com.demo.form.LoginForm;public class DemoAction extends Action{ public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { //String username = request.getParameter("username"); //String password = request.getParameter("password"); LoginForm loginform = (LoginForm)form; String username = loginform.getUsername(); String password = loginform.getPassword(); if(username!=null&&username.equals("lwh")){ return mapping.findForward("success"); //request.getRequestDispatcher("/Success.jsp").forward(request, response); }else{ return mapping.findForward("failure"); //request.getRequestDispatcher("/Failure.jsp").forward(request, response); } //return null; }}
7.在struts-config.xml中配置Action、ActionForm和ActionForward
12345678910111213
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.3//EN" "http://struts.apache.org/dtds/struts-config_1_3.dtd"><struts-config> <form-beans> <form-bean name="loginform" type="com.demo.form.LoginForm"></form-bean> </form-beans> <action-mappings> <action path="/login" type="com.demo.action.DemoAction" name="loginform"> <forward name="success" path="/Success.jsp"></forward> <forward name="failure" path="/Failure.jsp"></forward> </action> </action-mappings></struts-config>
8.其他代码
登陆页面:
123456789101112131415161718192021222324252627282930
<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%><%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html> <head> <base href="<%=basePath%>"> </head> <body> <form name="loginform" id="form1" action="<%=path %>/login.do" method="post"> <table border="0"> <tr> <td>name:</td> <td><input type="text" name="username" id="username" /></td> </tr> <tr> <td>password:</td> <td><input type="password" name="password" id="password" /></td> </tr> <tr> <td colspan="2" align="center"><input type="submit" value="submit"/></td> </tr> </table> </form> </body></html>
成功页面:
12345678910111213141516
<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%><%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html> <head> <base href="<%=basePath%>"> </head> <body> Success! </body></html>
9.运行结果
六、Struts官网链接
Struts下载地址
Struts官网
tips:struts的jar包可以参考Struts给的示例的lib里面jar包来导入