您的位置:首页 > 其它

ssh初学

2015-11-03 19:46 330 查看
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处理结果和物理资源之间的映射关系
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: