📄 手把手教你struts.txt
字号:
1:什么是类?什么是对象?什么java Bean?
类是在硬盘上的.class文件;
对象是内存中的类的实例;
Java Bean是存在于内存中的Java类的实例,是一种对象; JavaBean=Java对象
但是严格来说Java Bean是具有下列三个特点的Java 类:
? Properties defined with accessors and mutators (get and set methods);
for example, a read-write property firstName would have getFirstName and setFirstName methods
? A no-argument constructor
? No public instance variables
例如:A a=new A(); A是存在硬盘上的类;a是在内存中的对象
2:什么是MVC?
MVC是针对整个J2EE项目的一种设计模式;
M=Model: 数据模型(数据对象,Java bean)
V=View: 视图(JSP)
C=Controller:控制器(XML),ActionServlet来读取XML,根据XML中的配置来控制整个应用的走向;
数据模型: 把从数据库中取出的纪录放在一个Java 对象中,这样的java 对象就是数据模型;
比如数据库中有表:users;字段分别是 username|password|role
Java程序从users表中读出了一行纪录user1;
你定义了一个类: User{username;password;role},这个类也是一个领域模型.
并在程序中有代码:
User tempuser=new User();
tempuser.username=user1.username;
tempuser.password=user1.password;
tempuser.role=user1.role;
tempuser就是一个数据模型; User1是数据库user表的某行纪录
这里我们说tempuser就是数据模型,可以看出,它是一个包含了具体数据的java Bean;
视图: 用户能够看到的页面(jsp)
控制器: XML配置文件+Servlet,xml由开发者写,servlet去读然后根据开发者的规定逻辑动作
2:为什么要MVC?
1:使整个应用程序的逻辑性增强;如果不用MVC,那么jsp=html+java代码,jsp充当了页面,控制器和数据模型的角色;
混淆了逻辑,难于设计和理解,基本上没有维护和扩展的价值;例如JSPshop应用就是没有采用MVC的jsp应用;这种应
用和php,asp毫无两样;
2:采用MVC之后,整个系统逻辑清晰,功能上易于扩展,维护非常简单。
一言以蔽之:不用MVC的设计模式的J2EE是假的J2EE,是小聪明的做法,一般是一个人开发一个小项目的时候会采用这
种方式;采用了MVC,使得程序开发者具有和其他开发人员沟通的标准,一个人写的程序别人容易看懂;
可扩展性强,适合做多人开发的中大型的项目;
3:怎么样采用MVC来做项目?
MVC的发展阶段有MVC1-->Webwork-->Struts三个主要阶段。所以当前利用struts的模式来开发应用程序就是采用
了最先进的MVC思想。
4:Struts的工作原理
Struts其实是一种类库,通过配置struts-config.xml来使用其中的类,从而对你的应用程序进行全面的规范和控制。
5:怎样用struts?
Struts是实现了MVC设计模式的一系列类库;从网上可以下载到struts1.1版本;解压缩之后里面有很多*.jar *.tld *.xml文
件;有许多是不常用的,只要抓住核心的几个就可以了,怎么样使struts和你的应用程序相结合?以struts1.1为例具体配置如下:
(1)从网上下载struts1.1包,解压缩;
(2)将struts.jar放在WEB-INF\lib\目录下;将struts-html.tld,struts-bean.tld,struts-logic.tld放在WEB-INF目录下
以下部分为加入到你的项目中的struts组件。
如:syf
*.jsp/*.xml
images//放图片
WEB-INF
src //放*.java源文件
classes//放*.java源文件编译后的*.class文件
lib //放你要调用的类库,struts包中的类就放在这里
___________________________struts.jar
___________________________commons-beanutils.jar
___________________________commons-collections.jar
___________________________commons-dbcp.jar
___________________________commons-digester.jar
___________________________commons-logging.jar
___________________________commons-pool.jar
___________________________commons-services.jar
___________________________commons-validator.jar
_______________________struts-config.xml
_______________________struts-html.tld
_______________________struts-bean.tld
_______________________struts-logic.tld
web.xml
其中,对一个新的struts应用来说,struts-config.xml和web.xml中基本上是没有内容的;
***************************
struts-config.xml
***************************
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.1//EN" "http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd">
<struts-config>
</struts-config>
***************************
web.xml
***************************
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN"
"http://java.sun.com/j2ee/dtds/web-app_2_2.dtd">
<web-app>
</web-app>
(3)具体步骤
1:
在tomcat下面新建一个应用包叫做syf,并在其下新建WEB-INF,src, classes, lib等包;
2:
打开eclipse
File\New\Porject\Java Project\ 点击 next出来对话框要你输入Project name:syf
去掉“User default”前面的勾;点击Browse, 进去选中...\...syf 文件夹,确定
点击“next”,不要点击finish;
然后在Source下点击“Add Folder”,选择syf\WEB-INF\src,点击ok;此时已经设置好了源文件路径;
以后项目中所有的.java源文件将被放在此目录下:syf\WEB-INF\src
接着在Source下面部分的Default output Folder 右边点击“Browse”,选择syf\WEB-INF\classes,点
击ok;此时已经设置好了类文件路径; 以后项目中所有的.class类文件将被放在此目录下:syf\WEB-INF\classes
确保Allow output folder for source folders前面没有打勾;
此时点击finish就可以在eclipse上创建好一个应用了;以后开发起来会很方便哦。以后凡是你在src目录下创建
的*.java文件,只要按保存按钮,eclipse会自动帮你编译,并且将编译的结果保存在classes目录下面。
3:
定义和创建视图(jsp);视图是我们的应用和其用户的接口。以下是index.jsp
<%@ page language="java" contentType="text/html; charset=utf-8" %>
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>
<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %>
<head>
<title></title>
</head>
<html:html locale="true">
<body>
<%--页眉风格 BEGIN --%>
<p align="left"><html:img page="/images/logo.jpg" alt="SHANDA logo"/></p>
<font face="Arial" size="2">Welcome ... </font><br>
<table ><tr><td width="600"><hr></td></tr></table><br>
<%--页眉风格 END --%>
<html:errors />
<html:form action="Lookup"
name="lookupForm"
type="com.shanda.dongqin.LookupForm" >
<p align="center">
<table border="0" width="22%" >
<tr>
<td width="36%" align="left"><font face="Arial" size="2">user:</font></td>
<td width="64%" align="center"><html:text property="symbol" size="16" maxlength="50"/></td>
</tr>
<tr>
<td width="36%" align="left"><font face="Arial" size="2">pw:</font></td>
<td width="64%" align="center"><html:password property="secret" size="16" maxlength="50"/></td>
</tr>
<tr>
<td width="36%" align="center"></td>
<td width="64%" align="center"><html:submit/> <html:reset/></td>
</tr>
</table>
</p>
</html:form>
<table ><tr><td width="600" ><hr></td></tr></table>
<form name="form2" method="post" action="javascript:self.close()">
<p align="center"><a href="javascript:self.close()"><font face="Arial" size=2></font></a></p>
</form>
<%--页脚风格 BEGIN --%>
<p align="left"><html:img page="/images/struts-power.gif" alt="Powered by Struts"/></p>
<p align="left"><font face="Arial" size="1">all rights reserved 2004 for Quality Control DEPT.,SHANDA corporation</font></p>
<%--页脚风格 END --%>
</body>
</html:html>
4:
jsp中的每一个表单都必须对应一个ActionForm类型的
java类,并且这个类必须继承ActionForm(import org.apache.struts.action.ActionForm;);
表单类小结:
(1)必须继承ActionForm
(2)每个属性必须定义配套的get set方法(方法名=set/get+首字母大写的变量)
如:属性user对应getUser()/setUser()
(3)表单类因为继承了ActionForm,所以也具有了ActionForm的两个重要方法,这两个方法需要你覆写:
1>reset
public void reset(ActionMapping mapping,HttpServletRequest request){}
2>validate
public ActionErrors validate(ActionMapping mapping, HttpServletRequest request){
ActionErrors errors =new ActionErrors();
if(出错){errors.add("与错误相关的变量名",new ActionError("错误信息"))}
return errors;
}
在jsp中用 <html:errors/>来捕捉validate方法return出来的“错误信息”;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -