拿过这个项目,首先进行了部署
1.部署
新建一个web工程,对照进行复制
把devlib和lib下面的包赋值到了自己web工程的web-inf/lib/中,然后到eclipse中将所有lib目录下的包都导入工程的Libaries.
2.运行
http://localhost:8090/JPetStore
系统跳转到index.html界面,点击Enter the shop进入主页
在这里有一点不明白,
点击的时候跳转的是shop/index.shtml,可以在web目录下面并没有shop的目录
打开web.xml发现如下的配置
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.shtml</url-pattern>
</servlet-mapping>
并不是.do的形式,而是.shtml
打开struts-config.xml,果然存在
<action path="/shop/index" type="org.apache.struts.beanaction.BeanAction"
name="catalogBean" parameter="*" validate="false">
<forward name="success" path="/catalog/Main.jsp"/>
</action>
这样的配置,在catalog/main.jsp找到主页。
3. web.xml
感觉对于一个web项目来说,web.xml配置文件是非常重要的,由上面的就可以看出来
现在我继续往下看,有一个security-constraint标签我没有见过,于是我去查资料。看到不会的东西就去学习,这不正式我们学习项目的目的吗?
在网上找到一篇文章是说明这点的:http://space.itpub.net/12928228/viewspace-438713
应该是对资源进行保护的功能,现在好像是默认对所有的jsp文件提供保护
但是没有配置相应的角色
With no roles defined, no access granted
由于没有明确的角色,没有机会给予
这是百度百科的解释
部署描述符中的security-constraint元素允许不通过编程就可以限制对某个资源的访问。
web-resource-collection元素标识需要限制访问的资源子集。在web-resource-collection元素中,可以定义URL模式和HTTP方法。如果不存在HTTP方法,就将安全约束应用于所有的方法。
auth-constraint元素用于指定可以访问该资源集合的用户角色。如果没有指定auth-constraint元素,就将安全约束应用于所有角色。
user-data-constraint元素用来显示怎样保护在客户端和Web容器之间传递的数据
resource-ref元素用于指定对外部资源的servlet引用的声明。
● res-ref-name是资源工厂引用名的名称。该名称是一个与java:comp/env上下文相对应的JNDI名称,并且在整个Web应用中必须是惟一的。
● res-auth表明:servlet代码通过编程注册到资源管理器,或者是容器将代表servlet注册到资源管理器。该元素的值必须为Application或Container。
● res-sharing-scope表明:是否可以共享通过给定资源管理器连接工厂引用获得的连接。该元素的值必须为Shareable(默认值)或Unshareable。
4. struts
看struts-config.xml,通过这里来了解系统的处理流程
发现它的strust模式和我们以往开发的模式完全不同,有dao和service层都差不多,但是却没有action,action由bean来替代,所有的strust类都继承org.apache.struts.beanaction.BaseBean
这个类似于struts2的功能,由BaseBean统一的接受请求,name代表处理该请求的bean,把页面的表单的参数填充到该bean对象,然后根据path以"/"分隔的最后一部分作为执行该请求的bean的方法。
<action path="/shop/searchProducts" type="org.apache.struts.beanaction.BeanAction"
name="catalogBean" scope="session"
validate="false">
<forward name="success" path="/catalog/SearchProducts.jsp"/>
</action>
这个就是用catalogBean的searchProducts方法来处理
<action path="/shop/index" type="org.apache.struts.beanaction.BeanAction"
name="catalogBean" parameter="*" validate="false">
<forward name="success" path="/catalog/Main.jsp"/>
</action>
像这种的有一个parameter="*"就是填充完表单参数直接跳转的意思吧(我这么认为)。
这种写法我以前好像还没有看见过。。。。。
5. ibatis
dao层和service层和我们平时的ssh框架基本相同了,我看这个项目主要是想学习ibatis的使用
分享到:
相关推荐
学习Spring 的例子JpetStore
jpetstore学习j2ee的好资料,可以学到很多的设计模式
该jpetstore经典案例为最新SPRING开发包里面的完全案例,并集成到eclipse里面了,在eclipse里面可以直接运行并调试,在工作目录里面直接建立jpetstore目录,自动导入该目录下文件,修改jdbc.properties配置文件,连接...
jpetstore系统架构图
spring自带的JPetStore,我已经配置好(数据库也配置好,用的是hsqldb),可以直接导 入eclipse中运行。共3个压缩包
iBATIS JPetStore
学习ibatis很好的例子JPetStore学习ibatis很好的例子JPetStore学习ibatis很好的例子JPetStore学习ibatis很好的例子JPetStore学习ibatis很好的例子JPetStore
MyBatis学习范例宠物商店jpetstore6 内容为: mybatis-jpetstore-6.0.0-sources.jar mybatis-jpetstore-6.0.0.war 学习MyBatis一定要看的sample。
iBATIS_JPetStore-4.0.5
使用了mybatis的jpetstore-6
用spring改造的jpetstore4.0,适用于jdk7+,tomcat6+。mysql数据库
jpetstore-4.0.3
jpetstore源码,在myeclipse已经可以运行起来
AJAX开发。在JSP/Servlet实现的JPetStore项目基础上,在表单验证、表单输入、订单更新等环节增加AJAX技术,改善项目的用户体验。以下三个任务为必须完成部分,还可自行添加其他改进用户体验的功能。
该程序是jpetstore宠物店程序,放在tomcat的webapps的目录下就能运行。修改jdbc.properties的数据库密码,先将两个sql文件导入mysql数据库中。
spring自带的JPetStore,我已经配置好(数据库也配置好,用的是hsqldb),可以直接导入eclipse中运行。共3个压缩包
jpetstore.rarjpetstore.rarjpetstore.rarjpetstore.rarjpetstore.rarjpetstore.rarjpetstore.rarjpetstore.rarjpetstore.rarjpetstore.rarjpetstore.rarjpetstore.rarjpetstore.rar
spring自带的JPetStore,我已经配置好(数据库也配置好,用的是hsqldb),可以直接导 入eclipse中运行。共3个压缩包
本例子经过修改,配置,组装成了一个可直接部署运行,不需要修改的demo,是学习spring ibatis struts 的一个非常好的例子。绝对好东西!!尽情下吧!!!