Struts2 学习笔记 —— 01 —— HelloStruts

设置tomcat

Window —— Preferences —— MyEclipse —— Servers —— Tomcat —— Tomcat 6.x





设置JRE(JDK包含调试,JRE不包含调试)

Window —— Preferences —— Java —— Installed JREs


注意64位机器下选择Program Files下Java目录下的JDK,而不要选择Program Files(x64)下Java目录下的JDK


配置结束后,在试运行配置的tomcat时,出现了如下错误:

a configuration error occured during startup.please verify the preference field with the prompt: cannot connect to VM


解决方法是在tomcat 6.x左边点+号,设置tomcat 的JDK,设置完成后,问题解决




struts目录



一般使用apps目录下的示例程序



首先把struts2-blank —— WEB-INF —— classes下的配置文件struts.xml拷贝



将这个配置文件拷贝到src目录下就可以,因为编译后默认后就会发到WEB-INF目录下



还要拷贝相关类库,在struts2-blank —— WEB-INF —— lib目录下


实际上,现在的struts里面已经不包含这两个jar包了



将这些jar包拷贝到WEB-INF的lib目录下

拷贝完后是看不到的,因为这是PackageExplorer,想要能看到在硬盘上完整的样子,

需要在Navigator视图中(现在的MyEclipse版本貌似也可以看到了)

添加后,可以看到添加的类库(Referenced Libraries 或者 Web App Libraries)




对web.xml文件的配置

也是参考struts2-blank项目




自己重写struts.xml的配置文件

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
	"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
	"http://struts.apache.org/dtds/struts-2.3.dtd">

<struts>

    <!--  不要删除,注释掉即可,可以仿写 -->
	<!-- 
		<constant name="struts.enable.DynamicMethodInvocation" value="false" />
		<constant name="struts.devMode" value="true" />
	
		<package name="default" namespace="/" extends="struts-default">
	
			<default-action-ref name="index" />
			<global-results>
				<result name="error">
					/error.jsp
				</result>
			</global-results>
			<global-exception-mappings>
				<exception-mapping exception="java.lang.Exception"
					result="error" />
			</global-exception-mappings>
			<action name="index">
				<result type="redirectAction">
					<param name="actionName">
						HelloWorld
					</param>
					<param name="namespace">/example</param>
				</result>
			</action>
		</package>
		<include file="example.xml" />
 	-->
	<!-- Add packages here -->

	<package name="default" namespace="/" extends="struts-default">

		<action name="hello">
			<result>
				/Hello.jsp
			</result>
		</action>
	</package>


</struts>


在WebRoot(或者WebContent)目录下建立Hello.jsp文件

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Hello struts2</title>
</head>
<body>
	Hello struts2! This is Hello struts2 page!
</body>
</html>

这样运行后,就显示出了Hello.jsp的内容


说明:

1、应当访问的路径是:/项目名/Action名称.action,对应struts.xml中action标签的名字

即应当访问的是:/Struts2_0100_Introduction/hello.action

但实际访问时,.action是可以忽略的


2、struts.xml中package标签中的namespace与路径一一对应

由于此时没有默认处理,所以目前访问/Struts2_0100_Introduction/的时候会出错

而action标签的name与子路径是对应的



3、配置常量devMode

由于tomcat需要重启才能使一些配置的变化生效(比如action的name)

但是每次更改配置就重启服务器是不好的

所以在struts.xml中的常量devMode配置

<constant name="struts.devMode" value="true" />

devMode改为true后表示为“开发模式”

有改动即可以有所反馈(不需要重新启动重新部署)


4、想在查看源码

直接查看jar中的.class文件是看不到源码的,因为是编译过的

比如想查看在web.xml中配置的StrutsPrepareAndExecuteFilter类



点击Attach Source

指定到/struts-2.1.6/src/core/src/main/java目录下



这样我们就能看到struts的源码了


还有javadoc location

在struts2-core-2.3.16.jar包上点右键,选择Propertities,选择Javadoc Location



指定到\struts-2.3.16\docs\struts2-core\apidocs文件夹下

(有些all的struts2下载包可能不包含,单独下载docs压缩包即可)

这样在用到的类名上点F1键就可以看到Javadocs了









5、在struts.xml中输入<应该默认没有提示,因为不知道提示什么(语法,关键字等等)


红框内是定义当前xml文档语法的位置

在Window —— Preference —— 搜索Catalog


添加一项,Key type选择为URI,Key设为指定文档位置的url(xml文档中指定的那个)

然后去struts目录下,lib目录下,找到struts2的core文件struts2-core-2.3.16.jar,并解压


找到解压中的struts-2.0.dtd文件,把文件位置放到Location即可


这样就有提示了





现在说明一下struts的运行机制

用户(客户端)输入访问路径http://localhost:8080/Struts2_0100_Introduction/hello

请求通过HTTP发送到tomcat,发现请求的是Struts2_0100_Introduction这个web application,并交给对应的项目去处理

然后去读取项目的web.xml

读取web.xml中配置了一个能够过滤所有的URL地址(/*)

所以这个请求会被对应的StrutsPrepareAndExecuteFilter所处理

首先看namespace,是与访问的路径一一对应的,会查到struts.xml

之前配置的是/的namespace,然后从中找到是否有一个name为hello的action

如果找到了的话,就去访问这个action中的内容,所以会直接跳到Hello.jsp的页面


示意图




为什么要用struts2?

设计模式的特点:简单的东西复杂化(这个地方哈哈哈……)

最大的好处:扩展性,灵活

可以把请求和结果(视图)分离,而不是直接写死

有更改的时候会更加灵活,直接在配置文件中修改即可


  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
使用 JavaScript 编写的记忆游戏(附源代码)   项目:JavaScript 记忆游戏(附源代码) 记忆检查游戏是一个使用 HTML5、CSS 和 JavaScript 开发的简单项目。这个游戏是关于测试你的短期 记忆技能。玩这个游戏 时,一系列图像会出现在一个盒子形状的区域中 。玩家必须找到两个相同的图像并单击它们以使它们消失。 如何运行游戏? 记忆游戏项目仅包含 HTML、CSS 和 JavaScript。谈到此游戏的功能,用户必须单击两个相同的图像才能使它们消失。 点击卡片或按下键盘键,通过 2 乘 2 旋转来重建鸟儿对,并发现隐藏在下面的图像! 如果翻开的牌面相同(一对),您就赢了,并且该对牌将从游戏中消失! 否则,卡片会自动翻面朝下,您需要重新尝试! 该游戏包含大量的 javascript 以确保游戏正常运行。 如何运行该项目? 要运行此游戏,您不需要任何类型的本地服务器,但需要浏览器。我们建议您使用现代浏览器,如 Google Chrome 和 Mozilla Firefox, 以获得更好、更优化的游戏体验。要玩游戏,首先,通过单击 memorygame-index.html 文件在浏览器中打开游戏。 演示: 该项目为国外大神项目,可以作为毕业设计的项目,也可以作为大作业项目,不用担心代码重复,设计重复等,如果需要对项目进行修改,需要具备一定基础知识。 注意:如果装有360等杀毒软件,可能会出现误报的情况,源码本身并无病毒,使用源码时可以关闭360,或者添加信任。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值