WEB基础

#tomcat环境变量配置
CATALINA_HOME与CATALINA_BASE区别:
CATALINA_HOME(安装目录):多个tomcat实例公用信息的位置,就是bin和lib的父目录
CATALINA_BASE(工作目录):指向每个Tomcat实例目录私有信息的位置,就是conf、logs、temp、webapps和work的父目录

环境变量path

%JAVA_HOME%\bin
%CATALINA_HOME%\lib
%CATALINA_HOME%\bin

打包:

//jar
jar -cvf test.jar -c test
//war
war:jar -cvf test.war -c test

#Tomcat配置文件
##context.xml与JNDI
如果应用配置在高性能的应用服务器(如WebLogic或Websphere等)上,我们可能更希望使用应用服务器本身提供的数据源,对于tomcat服务器配置JNDI,可以配置在context文件中,context文件的配置及作用范围如下:

<?xml version="1.0" encoding="UTF-8"?>
<Context>
	<!--oracle数据源-->
	<Resource 
		name="intedb_oracle" 
		auth="Container" 
		type="javax.sql.DataSource"
		driverClassName="oracle.jdbc.OracleDriver" 
		url="jdbc:oracle:thin:@www.yitong.com.cn:19101:XE"
		username="YTTRAIN" 
		password="YTTRAIN" 
		maxActive="20" 
		maxIdle="10"
		maxWait="10000" />
	<!--mysql数据源-->
	<Resource 
		name="intedb_mysql" 
		auth="Container" 
		type="javax.sql.DataSource"
		driverClassName="com.mysql.jdbc.Driver" 
		url="jdbc:mysql://localhost:3306/test"
		username="root" 
		password="student" 
		maxActive="20" 
		maxIdle="10"
		maxWait="10000" />
</Context>

spring中注入JNDI数据源配置

<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
	<property name="jndiName">
		<value>java:comp/env/intedb_oracle</value>
	</property>
</bean>

context.xml的作用范围:

  1. $CATALINA_BASE/conf/context.xml(tomcat server级别):所有webApp共享
  2. $CATALINA_BASE/conf/Catalina/${hostname}/context.xml(host级别):某个主机上的所有webapp共享
  3. $CATALINA_BASE/conf/Catalina/ h o s t n a m e / {hostname}/ hostname/{webAppName}.xml(web App级别):某个主机下的某个Web使用
  4. {WebApp}/META-INF/context.xml(Web App级别):当前App使用,这是开发者自己在项目META-INF下添加

上述的${webAppName}.xml虚拟路径可以配置指向应用的实际目录(有时候我们的项目不放在tomcat的webapps目录下,这时候就需要一个虚拟路径来指向应用的实际目录)
helloword.xml

<Context 
	path="/helloword"       //上下文路径,可以省略,因为文件名就是上下文路径
	docBase="D:/project/helloword"   //项目实际目录
	reloadable="true">	  //项目classes目录下的class文件修改时tomcat服务器是否会重新加载WEB应用
	<Resource 
			name="intedb_oracle" 
			auth="Container" 
			type="javax.sql.DataSource"
			driverClassName="oracle.jdbc.OracleDriver" 
			url="jdbc:oracle:thin:@www.yitong.com.cn:19101:XE"
			username="YTTRAIN" 
			password="YTTRAIN" 
			maxActive="20" 
			maxIdle="10"
			maxWait="10000" />

</Context>

##web.xml

//当没有对应Servlet映射时交给该Servlet,用于处理所有静态资源
<servlet>
     <servlet-name>default</servlet-name>
     <servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class>
     <init-param>
         <param-name>debug</param-name>
         <param-value>0</param-value>
     </init-param>
     <init-param>
	     <!--没有URL匹配时是否展示目录-->
         <param-name>listings</param-name>
         <param-value>false</param-value>
     </init-param>
     <load-on-startup>1</load-on-startup>
 </servlet>
 <!-- The mapping for the default servlet -->
 <servlet-mapping>
     <servlet-name>default</servlet-name>
     <url-pattern>/</url-pattern>
 </servlet-mapping>

<!--处理所有JSP请求-->
<servlet>
    <servlet-name>jsp</servlet-name>
    <servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class>
    <init-param>
        <param-name>fork</param-name>
        <param-value>false</param-value>
    </init-param>
    <init-param>
        <param-name>xpoweredBy</param-name>
        <param-value>false</param-value>
    </init-param>
    <load-on-startup>3</load-on-startup>
</servlet>
<!-- The mappings for the JSP servlet -->
<servlet-mapping>
    <servlet-name>jsp</servlet-name>
    <url-pattern>*.jsp</url-pattern>
    <url-pattern>*.jspx</url-pattern>
</servlet-mapping>

tomcat目录下conf/web.xml会和Web项目中web.xml的配置合并。DefaultServlet映射所有请求,当请求不会被映射到其他Servlet时会使用DefaultServlet,这也是为什么我们请求一个静态资源(js、css、html等)时可以访问;JspServlet用于处理jsp或jspx为后缀的请求,通过对JSP页面进行编译和执行Servlet来返回一个动态页面,这也是Tomcat支持JSP页面的机制。

当我们使用SpringMVC时,如果将DispatcherServlet的映射请求也使用“/”或“/*”,则会覆盖DefaultServlet的配置,而使静态资源无法访问或加载

  • / : 会匹配到/login这样的路径型url,不会匹配到模式为*.jsp这样的后缀型url(静态资源js、css、html等还是会被匹配)
  • /*:会匹配所有url:路径型的和后缀型的url(包括/login,*.jsp,*.js和*.html等)

可以使用以下几种方式来处理:

方式一:

<!--DefaultServlet使用更精准的url匹配来替代DispatcherServlet处理-->
<servlet-mapping>
    <servlet-name>default</servlet-name>
    <url-pattern>*.js</url-pattern>
    <url-pattern>*.html</url-pattern>
    <url-pattern>*.css</url-pattern>
    <url-pattern>*.png</url-pattern>
</servlet-mapping>

方式二:

<!--通过Spring的<mvc:resource>来配置资源映射-->
<mvc:resources mapping="/scripts/**" location="/scripts/"/>
<mvc:resources mapping="*.html" location="/"/>

方式三(推荐):

  <!--默认的default-servlet-name是default,如果tomcat中改变其名称需要指定-->
    <mvc:default-servlet-handler default-servlet-name="default"/>

##server.xml
参考:https://blog.csdn.net/qq_29028175/article/details/53363738

##tomcat-user.xml
参考:http://www.365mini.com/page/tomcat-manager-user-configuration.htm

#JSP
##指令

##脚本

##标准动作元素

##内置对象

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值