`

学习JPetStore(未完待续)

    博客分类:
  • Java
阅读更多

拿过这个项目,首先进行了部署

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的使用
 
 

 

 

分享到:
评论
1 楼 huangpengxiao 2008-12-04  

相关推荐

Global site tag (gtag.js) - Google Analytics