ssh初学

1、工程里面有个Deployment Descriptor目录,想知道这个目录是干什么用的?

答: (1)这个目录其实是与工程的web.xml对应的,为了方便查找或者查看web.xml文件中的部署相关配置;

(2)这个目录下的每一项,相当于web.xml文件中的每个配置项的一个超链接;

2、解析web.xml中的内容

(1)如下代码段中:

<context-param>
   <param-name>contextConfigLocation</param-name>
   <param-value>classpath:spring.xml</param-value>

</context-param>

标签contextConfigLocation是为了定义要装入的Spring配置文件,即在classpath下的spring.xml文件;

(2)如下代码段:

 <listener>
   <listener-class>
           org.springframework.web.context.ContextLoaderListener
   </listener-class>
 </listener>

该代码段的作用雷场类似于load-on-startup Servlet,用于在web应用启动时,启动某些后台程序,这些后台程序负责为系统运行提供支持。如本例用指定ContextLoaderListener的作用就是启动web容器时,自动装配AppliacationContext的配置信息;

(3)如下代码段为过滤器配置:

<filter>
<filter-name>encodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
    <filter-mapping>
        <filter-name>encodingFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

其中的拦截器主要用途是对web传来的一些请求(URL)进行过滤拦截;

(4) 如下代码中:

<!-- struts启动配置 -->
 <filter>
   <filter-name>struts2</filter-name>
   <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
 </filter>
 <filter-mapping>
   <filter-name>struts2</filter-name>
   <url-pattern>/*</url-pattern>
 </filter-mapping>

是对struts拦截器的相关配置,其中的StrutsPrepareAndExecuteFilter的作用是:当前台有请求发来时,StrutsPrepareAndExecuteFilter的doFilter()被调用进行request等的封装,找到相应action ,执行相应action;

(5)如下代码:

<!-- log4j相关配置 -->
 <context-param>
   <param-name>log4jConfigLocation</param-name>
   <param-value>/WEB-INF/classes/log4j.properties</param-value>
 </context-param>
 <context-param>
   <param-name>log4jRefreshInterval</param-name>
   <param-value>60000</param-value>
 </context-param>
 <listener>
   <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
 </listener>

是log4j相关配置,使用spring中的Log4jConfigListener有如如下好处: 
   1)动态的改变记录级别和策略,不需要重启Web应用,如《Effective Enterprise Java》所说。 
   2) 把log文件定在 /WEB-INF/logs/ 而不需要写绝对路径。 
因为 系统把web目录的路径压入一个叫webapp.root的系统变量。这样写log文件路径时不用写绝对路径了. 
log4j.appender.logfile.File=${webapp.root}/WEB-INF/logs/myfuse.log 
   3) 可以把log4j.properties和其他properties一起放在/WEB-INF/ ,而不是Class-Path。 
   4)log4jRefreshInterval为6000表示 开一条watchdog线程每6秒扫描一下配置文件的变化; 

(5)如下代码段:

  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
  其中,welcome-file-list标签的作用是:
制定首页比如你写的项目 地址是 127.0.0.1 里边有一个也页面 index.jsp

如果要访问这个页面的话你要输入 127.0.0.1/index.jsp,如果在 <welcome-file-list>里指定了index.jsp为首页的话 
你只要输入 127.0.0.1 就能直接打开 index.jsp

3、解析spring.xml文件

(1)

4、log4j.properties文件

(1)配置rootLogger,主要配置日志的等级、存储文件等;

(2)配置日志信息的输出目的地:输出文件位置等;

(3)配置日志日志信息的格式;

5、mybatis-config.xml文件

<configuration>


<properties>
<!-- Mybatis 短名转为长名 -->
<property name="namespacePrefix" value="com.cetc28" />
<!-- SQL Mapper 中需替换的namespace正则-->
<property name="includeRegex" value="\w*\.\w*\.mapper\.\w*;\w*\.mapper\.\w*" />
<!-- SQL Mapper 中无需替换的namespace正则-->
<!-- <property name="includeRegex" value="\\.*" /> -->
</properties>


<settings>
<setting name="jdbcTypeForNull" value="NULL" />
<setting name="defaultExecutorType" value="BATCH"/>
</settings>


</configuration>

其中,properties标签中配置的property name 和value的作用是可以替换properties文件中相应属性值;

settings配置如defaultExecutorType,配置和设定执行器为BATCH,使得执行器可以重复执行语句和批量更新;

6、profile-crawler-beans.cxml文件解析

以下内容引自:http://guoyunsky.iteye.com/blog/1744461

 可以说crawler-beans.cxml可以主导整个Heritrix的抓取.不同于Heritrix1.x版本的order.xml 是,crawler-beans.cxml采用Spring来管理.里面的配置都是一个个bean.所以无论从配置上,耦合上,动态制 上,Heritrix3.0都改进不少.下面就介绍crawler-beans.cxml中各个bean.

       1. bean id=simpleOverrides

          class=org.springframework.beans.factory.config.PropertyOverrideConfigurer

          字面上的意思为简单的覆盖,的确这里只是简单的覆盖.设置最基本的信息.如抓取任务名字(metadata.jobName),操作URL(metadata.operatorContactUrl),描述信息(metadata.description)

      2. bean id=metadata

          class=org.archive.modules.CrawlMetadata

         如同simpleOverrides

    3. bean id=seeds

         class=org.archive.modules.seeds.TextSeedModule

         种子配置,可以从文件中读取种子,也可以直接设置种子

   4. bean id=scope

        class=org.archive.modules.deciderules.DecideRuleSequence

        URL规则控制,可以决定哪些URL要抓取,哪些URL拒绝,URL抓取深度等

   5. bean id=candidateScoper

       class=org.archive.crawler.prefetch.CandidateScoper

       URL范围控制,通过该范围的URL Heritrix方可接受,成为CrawlURI

   6. bean id=preparer

      class=org.archive.crawler.prefetch.FrontierPreparer

      url预处理,如设置URL的抓取深度,队列,成本控制等

  7. bean id=candidateProcessors

       class=org.archive.modules.CandidateChain

       处理器,引用candidateScoper去控制URL是否可以成为CrawlURI,preparer去设置深度,队列,成本控制等

   8. bean id=preselector

      class=org.archive.crawler.prefetch.Preselector

      预先选择器,这里会过滤掉一部分URL.如blockByRegex为拒绝正则,allowByRegex为允许正则

   9. bean id=preconditions

       class=org.archive.crawler.prefetch.PreconditionEnforcer

       先决条件设置,如设置IP有效期,爬虫协议文件robots.txt有效期

   10. bean id=fetchDns

       class=org.archive.modules.fetcher.FetchDNS

       解析DNS,获得IP

   11. bean id=fetchHttp

       class=org.archive.modules.fetcher.FetchHTTP

       核心模块,获取URL内容,设置状态

   12. bean id=extractorHttp

        class=org.archive.modules.extractor.ExtractorHTTP

        核心模块,抽取URL,抽取出新的URL再次运行,如此爬虫才可以一直爬下去

    13. bean id=extractorHtml

       class=org.archive.modules.extractor.ExtractorHTML

       抽取HTML,包含JSP,ASP等,这里也会抽取JS,CSS等

    14. bean id=extractorCss

       class=org.archive.modules.extractor.ExtractorCSS

       抽取CSS,无需单独配置,ExtractorHTML会调用

   15. bean id=extractorJs

       class=org.archive.modules.extractor.ExtractorJS

       抽取JS,无需单独配置,ExtractorHTML会调用

7、spring-datasource.xml文件解析

进行数据库相关配置,如数据库服务器IP地址、数据库用户名及密码等;

8、spring.xml文件解析

解析示例如下:引自:http://blog.csdn.net/zoutongyuan/article/details/27073683

<context:component-scan base-package="com.eduoinfo.finances.bank.web"></context:component-scan> 作用
Spring 容器初始化的时候,会扫描 com.eduoinfo.finances.bank.web下 标有 (@Component,@Service,@Controller,@Repository) 注解的 类 纳入spring容器管理

在类上 ,使用以下注解,实现bean 的声明

@Component 泛指组件,当组件不好归类的时候,我们可以使用这个注解进行标注。

@Service 用于标注业务层组件

@Controller 用于标注控制层组件(如srping mvc的controller,struts中的action)

@Repository 用于标注数据访问组件,即DAO组件

示例:

@Controller
@RequestMapping(value = "/test")
public class TestController {

}

------------------------------------------------------------------------------------------------------------------

在类的成员变量上,使用以下注解,实现属性的自动装配

@Autowired : 按类 的 类型进行装配

@Resource (推荐) : 1 如果同时指定了name和type,则从Spring上下文中找到唯一匹配的bean进行装配,找不到则抛出异常

    2. 如果指定了name,则从上下文中查找名称(id)匹配的bean进行装配,找不到则抛出异常 

    3.如果指定了type,则从上下文中找到类型匹配的唯一bean进行装配,找不到或者找到多个,都会抛出异常 

    4.如果既没有指定name,又没有指定type,则自动按照byName方式进行装配;如果没有匹配,则回退为一个原始类型进行匹配,如果匹配则自动装配;

@Resource注解在字段上,这样就不用写setter方法了,并且这个注解是属于J2EE的,减少了与spring的耦合。 

示例:

@Resource
private TestServiceImpl testServiceImpl;

9、struts.xml文件

struts.xml文件主要负责管理应用中的Action映射, 及Action处理结果和物理资源之间的映射关系

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值