亚洲变态另类一区二区三区,国产亚洲色视频在线,亚洲AV成人无码久久精品老人http://blogjava.net/jacky9881/category/28589.htmlzh-cnSun, 20 Mar 2016 23:45:14 GMTSun, 20 Mar 2016 23:45:14 GMT60nginx tomcat環(huán)境session不共享場景http://m.tkk7.com/jacky9881/archive/2016/01/28/429243.html笑看人生笑看人生Thu, 28 Jan 2016 12:13:00 GMThttp://m.tkk7.com/jacky9881/archive/2016/01/28/429243.htmlhttp://m.tkk7.com/jacky9881/comments/429243.htmlhttp://m.tkk7.com/jacky9881/archive/2016/01/28/429243.html#Feedback0http://m.tkk7.com/jacky9881/comments/commentRss/429243.htmlhttp://m.tkk7.com/jacky9881/services/trackbacks/429243.html閱讀全文

]]>
Ngnix+Tomcat配置負(fù)載均衡http://m.tkk7.com/jacky9881/archive/2016/01/28/429242.html笑看人生笑看人生Thu, 28 Jan 2016 11:45:00 GMThttp://m.tkk7.com/jacky9881/archive/2016/01/28/429242.htmlhttp://m.tkk7.com/jacky9881/comments/429242.htmlhttp://m.tkk7.com/jacky9881/archive/2016/01/28/429242.html#Feedback0http://m.tkk7.com/jacky9881/comments/commentRss/429242.htmlhttp://m.tkk7.com/jacky9881/services/trackbacks/429242.html閱讀全文

]]>
Ajax學(xué)習(xí)二http://m.tkk7.com/jacky9881/archive/2009/11/15/ajax2.html笑看人生笑看人生Sun, 15 Nov 2009 01:28:00 GMThttp://m.tkk7.com/jacky9881/archive/2009/11/15/ajax2.htmlhttp://m.tkk7.com/jacky9881/comments/302390.htmlhttp://m.tkk7.com/jacky9881/archive/2009/11/15/ajax2.html#Feedback0http://m.tkk7.com/jacky9881/comments/commentRss/302390.htmlhttp://m.tkk7.com/jacky9881/services/trackbacks/302390.html
  • responseText:將相應(yīng)作為一個字符串返回;(系列一中已經(jīng)介紹)
  • responseXML:將相應(yīng)作為一個XML對象返回;(本系列中介紹)
本節(jié)要介紹的內(nèi)容,很多人應(yīng)該比較熟悉,比如在網(wǎng)上注冊時,在“省”列表框中選擇不同的省份,對應(yīng)的“市”列表框中出現(xiàn)該省的所有市,這個過程,不用刷新整個頁面。

要實(shí)現(xiàn)這個功能,只須修改一下系列一中的index.jsp和AjaxServlet.java這兩個文件。

index.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding
="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>

<script language="javascript">
    
var xmlHttp;
    
function refresh() {
        xmlHttp 
= createXMLHttpRequest();
        
var url = "AjaxServlet?province="
                
+ document.getElementById("province").value;
        xmlHttp.open(
"GET", url);
        xmlHttp.onreadystatechange 
= handleStateChange;
        xmlHttp.send(
null);
    }

    
function handleStateChange() {
        
if (xmlHttp.readyState == 4) {
            
if (xmlHttp.status == 200) {
                updateCity();
            }
        }
    }

    
function updateCity() {
        clearCity();
        
var city = document.getElementById("city");
        
var cities = xmlHttp.responseXML.getElementsByTagName("city");        
        
for(var i=0;i<cities.length;i++){
            option 
= document.createElement("option");
            option.appendChild(document.createTextNode(cities[i].firstChild.nodeValue));
            city.appendChild(option);                        
        }
    }

    
function clearCity() {        
        
var city = document.getElementById("city");
        
while(city.childNodes.length > 0) {
            city.removeChild(city.childNodes[
0]);
        }                    
    }
    
    
function createXMLHttpRequest() {
        
if (window.ActiveXObject) {
            xmlHttp 
= new ActiveXObject("Microsoft.XMLHTTP");
        } 
else if (window.XMLHttpRequest) {
            xmlHttp 
= new XMLHttpRequest();
        }
        
return xmlHttp;
    }
</script>

<body>
<form action="#"><select id="province" onchange="refresh()">
    
<option value="">Select One</option>
    
<option value="jiangsu">Jiang Su</option>
    
<option value="zhejiang">Zhe Jiang</option>
</select> <br>
<br>
<br>
<select id="city"></select></form>
</body>

</html>

AjaxServlet.java

package servlet;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class AjaxServlet extends HttpServlet {

    
private static final long serialVersionUID = 7032718233562299325L;

    @Override
    
protected void doPost(HttpServletRequest req, HttpServletResponse response)
            
throws ServletException, IOException {
        processRequest(req, response, 
"POST");
    }

    @Override
    
protected void doGet(HttpServletRequest req, HttpServletResponse response)
            
throws ServletException, IOException {
        processRequest(req, response, 
"GET");
    }

    
private void processRequest(HttpServletRequest req,
            HttpServletResponse response, String method) 
throws IOException {
        String province 
= req.getParameter("province");
        StringBuffer cities 
= new StringBuffer("<cities>");
        
        
if("jiangsu".equals(province)){
            cities.append(
"<city>Nanjing</city>");
            cities.append(
"<city>Zhenjiang</city>");
        }
else if("zhejiang".equals(province)){
            cities.append(
"<city>Hanzhou</city>");
            cities.append(
"<city>Wenzhou</city>");
        }        
        
        PrintWriter writer 
= response.getWriter();    
        cities.append(
"</cities>");
        response.setContentType(
"text/xml");
        writer.write(cities.toString());
        writer.close();
    }
}






]]>
Ajax學(xué)習(xí)一http://m.tkk7.com/jacky9881/archive/2009/11/01/ajax1.html笑看人生笑看人生Sun, 01 Nov 2009 04:31:00 GMThttp://m.tkk7.com/jacky9881/archive/2009/11/01/ajax1.htmlhttp://m.tkk7.com/jacky9881/comments/300557.htmlhttp://m.tkk7.com/jacky9881/archive/2009/11/01/ajax1.html#Feedback0http://m.tkk7.com/jacky9881/comments/commentRss/300557.htmlhttp://m.tkk7.com/jacky9881/services/trackbacks/300557.html
  1. 創(chuàng)建XMLHttpRequest對象;
  2. 從頁面中獲取獲取需要的數(shù)據(jù);
  3. 建立要連接的URL;
  4. 打開與服務(wù)器的連接;
  5. 設(shè)置服務(wù)器相應(yīng)之后要調(diào)用的函數(shù),即回調(diào)函數(shù);
  6. 發(fā)送請求;
下面以一個簡單的例子來演示一下,該例子要完成的功能是使用Ajax技術(shù)對輸入的EMail地址進(jìn)行簡單校驗(yàn),根據(jù)校驗(yàn)的結(jié)果,在頁面顯示相應(yīng)的消息。

index.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding
="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>

<script language="javascript">
      
var xmlHttp;  
     
function sendreq(){  
       xmlHttp 
= createXMLHttpRequest();  //步驟1
       
var url = "AjaxServlet?email=" + document.getElementById("email").value;//步驟2,3
       xmlHttp.open(
"GET", url);  //步驟4
       xmlHttp.onreadystatechange 
= handleStateChange; //步驟5
       xmlHttp.send(
null);    //步驟6
    }  
     
function handleStateChange(){       
      
if(xmlHttp.readyState == 4){  
         
if(xmlHttp.status == 200){             
             document.getElementById(
"result").innerHTML=xmlHttp.responseText;  
         }  
       }  
     }  
     
function createXMLHttpRequest(){  
         
if (window.ActiveXObject){  
             xmlHttp 
= new ActiveXObject("Microsoft.XMLHTTP");  
         }  
         
else if (window.XMLHttpRequest){  
             xmlHttp 
= new XMLHttpRequest();  
         }  
         
return xmlHttp;  
     }  
    
    
</script>
<body>
  
<label id="result">&nbsp;</label><br>
  Email:
<input type="text" id="email" onblur="sendreq()" value="" />  
  
<label id="result">&nbsp;</label>
  
</body>
</html>

AjaxServlet.java

package servlet;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class AjaxServlet extends HttpServlet {

    
private static final long serialVersionUID = 7032718233562299325L;

    @Override
    
protected void doPost(HttpServletRequest req, HttpServletResponse response)
            
throws ServletException, IOException {
        processRequest(req, response, 
"POST");
    }

    @Override
    
protected void doGet(HttpServletRequest req, HttpServletResponse response)
            
throws ServletException, IOException {
        processRequest(req, response, 
"GET");
    }

    
private void processRequest(HttpServletRequest req,
            HttpServletResponse response, String method) 
throws IOException {
        String email 
= req.getParameter("email");
        StringBuffer validator 
= new StringBuffer("");
        validator.append(method);
        response.setContentType(
"text/html;charset=UTF-8");
        PrintWriter writer 
= response.getWriter();
        
if (email.indexOf("@"< 0) {
            validator.append(
":FAILURE!");
        }
else{
            validator.append(
":SUCCESS!");
        }
        writer.write(validator.toString());
        writer.close();
    }
}

GET和POST請求方式區(qū)別:

  • POST方法將參數(shù)串放在請求體中發(fā)送;
  • GET方法將參數(shù)串放在URL中發(fā)送;

如果數(shù)據(jù)處理不改變數(shù)據(jù)模型的狀態(tài),建議使用GET方式,如果需要改變數(shù)據(jù)模型的狀態(tài),建議使用POST方式;

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_ID" version="2.4"
    xmlns
="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation
="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
    
<display-name>ajax</display-name>
    
<welcome-file-list>
        
<welcome-file>index.jsp</welcome-file>
    
</welcome-file-list>
    
<servlet>
        
<servlet-name>AjaxServlet</servlet-name>
        
<servlet-class>servlet.AjaxServlet</servlet-class>
    
</servlet>
    
<servlet-mapping>
        
<servlet-name>AjaxServlet</servlet-name>
        
<url-pattern>/AjaxServlet</url-pattern>
    
</servlet-mapping>
</web-app>




]]>
Struts,Spring,Hibernate Web應(yīng)用開發(fā)4http://m.tkk7.com/jacky9881/archive/2008/01/16/175701.html笑看人生笑看人生Wed, 16 Jan 2008 07:21:00 GMThttp://m.tkk7.com/jacky9881/archive/2008/01/16/175701.htmlhttp://m.tkk7.com/jacky9881/comments/175701.htmlhttp://m.tkk7.com/jacky9881/archive/2008/01/16/175701.html#Feedback1http://m.tkk7.com/jacky9881/comments/commentRss/175701.htmlhttp://m.tkk7.com/jacky9881/services/trackbacks/175701.html        要在SSH框架中使用Validator,更確切的說是在Struts框架中使用,可以采用插件機(jī)制把Validator加入到框架,這需要修改原來的struts-config.xml文件,增加配置ValidatorPlugIn插件,代碼如下:
<plug-in className="org.apache.struts.validator.ValidatorPlugIn">
<set-property property="pathnames" value="/org/apache/struts/validator/validator-rules.xml,
/WEB-INF/validation.xml"
 />
      
<set-property property="stopOnFirstError" value="true" />
 
</plug-in>
這樣當(dāng)應(yīng)用啟動時,Struts框架就會加載ValidatorPlugIn插件。
validator-rules.xml文件是Validator框架自帶的,它定義了一些常有的校驗(yàn)規(guī)則,而validation.xml是我們自己定義的,它針對某個應(yīng)用,內(nèi)容如下:
    
<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE form-validation PUBLIC
          "-//Apache Software Foundation//DTD Commons Validator Rules Configuration 1.3.0//EN"
          "http://jakarta.apache.org/commons/dtds/validator_1_3_0.dtd"
>
<form-validation>   
 
<formset> 
    
<form name="registerForm">
      
<field property="register.username" depends="required">      
        
<arg key="register.username" position="0"/>      
      
</field> 
      
<field property="register.password" depends="required,minlength">      
        
<arg key="register.password" position="0"/>
        
<arg name="minlength" key="${var:minlength}" resource="false" position="1"/>
         
<var>
          
<var-name>minlength</var-name>
          
<var-value>6</var-value>
        
</var>     
      
</field>
      
<field property="register.email" depends="required,email">      
        
<arg key="register.email" position="0"/>      
      
</field>       
    
</form>   
 
</formset>
</form-validation>

 

form元素的name屬性指定要進(jìn)行驗(yàn)證的表單,field元素的property屬性指定要驗(yàn)證屬性,depends定義了驗(yàn)證方式,在這里,我們定義了username屬性不能為空,password屬性不能為空,并且最小長度不能小于6,email屬性必須是合法的郵件地址。定義驗(yàn)證方式之后,我們還必須修改資源文件registermessages.properties,增加以下內(nèi)容:

# Errors
errors.header=
<h3><fontcolor="red">ValidationError</font></h3>Youmustcorrectthefollowingerror(s)beforeproceeding:
errors.required={0}isrequired.
errors.minlength={0}cannotbelessthan{1}characters.
errors.email={0}isaninvalide-mailaddress.
這資源文件中{0}對應(yīng)著<arg key="" position="0"/>,{1}對應(yīng)著<arg key="" position="1"/>,以此類推,如果有驗(yàn)證錯誤產(chǎn)生,將用key的值替換{n}
 
此外,我們還要修改struts-config.xml文件,修改內(nèi)容見粗體:

//把原來的DynaActionForm 改為DynaValidatorForm
<form-beans>
       
<form-bean name="registerForm"
           type
="org.apache.struts.validator.DynaValidatorForm">
           
<form-property name="register" type="test.register.entity.Register" />        
       
</form-bean>
    
</form-beans>
//把原來的validate="false"改為validate="true"
<action-mappings>
       
<action name="registerForm" path="/register" scope="request"
           type
="test.register.action.RegisterAction" validate="true"
           input
="/register.jsp">
           
<forward name="success" path="/registerSuccess.jsp" />
       
</action>
    
</action-mappings>

修改錯誤顯示的樣式,我們在register.jsp中,替換原來<html/errors>為
<logic:messagesPresent>
   
<bean:message key="errors.header"/>
   
<ul>
   
<html:messages id="error">
      
<li><bean:write name="error"/></li>
   
</html:messages>
   
</ul><hr />
</logic:messagesPresent>

注意在頁面上加入
<%@ taglib uri="http://struts.apache.org/tags-logic" prefix="logic" %>

這樣,我們運(yùn)行程序,校驗(yàn)失敗的效果如圖:


]]>
Struts,Spring,Hibernate Web應(yīng)用開發(fā)3 http://m.tkk7.com/jacky9881/archive/2008/01/02/172088.html笑看人生笑看人生Wed, 02 Jan 2008 02:11:00 GMThttp://m.tkk7.com/jacky9881/archive/2008/01/02/172088.htmlhttp://m.tkk7.com/jacky9881/comments/172088.htmlhttp://m.tkk7.com/jacky9881/archive/2008/01/02/172088.html#Feedback0http://m.tkk7.com/jacky9881/comments/commentRss/172088.htmlhttp://m.tkk7.com/jacky9881/services/trackbacks/172088.html
1.首先我們在配置文件中增加事務(wù)管理器,由于本應(yīng)用采用了Hibernate,所以我們采用HibernateTransactionManager,配置如下:

1<bean  id="transactionManager" 
2class="org.springframework.orm.hibernate.HibernateTransactionManager">
3    <property name="sessionFactory">
4      <ref local="sessionFactory"/>
5    </property>
6 </bean>

2.要在Sping使用聲明式事務(wù),我們得用TransactionProxyFactoryBean,它的作用就是把方法包裹在事務(wù)中,配置如下:

 1<bean id="bookService" 
 2class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
 3    <property name="transactionManager">
 4      <ref local="transactionManager"/>
 5    </property>
 6    <property name="target">
 7      <ref local=" registerTarget"/>
 8    </property>
 9    <property name="transactionAttributes">
10      <props>
11    <prop key="save*">
12PROPAGATION_REQUIRED,-OrderException 
13</prop>
14      </props>
15    </property>
16 </bean>
17

下面我們簡單解釋一下上面配置的意思:transactionManager屬性引用一個事務(wù)管理器,在這里我們引用HibernateTransactionManager,target屬性指定被代理的對象,transactionAttributes屬性的save*表示在代理對象中所有以save開頭的方法,PROPAGATION_REQUIRED表示代理對象中所有以save開頭的方法都必須在事務(wù)中運(yùn)行,-OrderException表示在執(zhí)行以save開頭的方法時,如果有OrderException異常拋出,則事務(wù)立即回滾。

完整的applicationContext.xml的配置如下:

 1<?xml version="1.0" encoding="UTF-8"?>
 2<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN" "http://www.springframework.org/dtd/spring-beans-2.0.dtd">
 3 
 4<beans>    
 5 
 6    <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
 7       <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
 8       <property name="url" value="jdbc:mysql://localhost/register"/>
 9       <property name="username" value="root"/>
10       <property name="password" value="root"/>
11    </bean>    
12 
13    <!-- Hibernate SessionFactory -->
14    <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
15       <property name="dataSource" ref="dataSource"/>
16       <property name="mappingDirectoryLocations">
17           <value>classpath:test\register\entity\</value>
18       </property>
19       <property name="hibernateProperties">
20           <props>
21              <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
22              <prop key="hibernate.show_sql">true</prop>
23              <prop key="hibernate.generate_statistics">true</prop>
24           </props>
25       </property>       
26    </bean>    
27    
28    <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
29    <property name="sessionFactory">
30      <ref local="sessionFactory"/>
31    </property>
32 </bean>
33 
34   <bean id="registerService" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
35    <property name="transactionManager">
36      <ref local="transactionManager"/>
37    </property>
38    <property name="target">
39      <ref local=" registerTarget"/>
40    </property>
41    <property name="transactionAttributes">
42      <props>        
43        <prop key="save*">PROPAGATION_REQUIRED,-OrderException</prop>
44      </props>
45    </property>
46 </bean>
47 
48   <bean id="registerDAO" class="test.register.dao.RegisterDAO">
49        <property name="sessionFactory" ref="sessionFactory"/>       
50 </bean>
51 
52   <bean id="registerTarget" class="test.register.service.RegisterService">
53        <property name="registerDAO" ref="registerDAO"/>      
54 </bean> 
55 
56</beans>
57

3.同時還要修改action-servlets.xml文件

1<?xml version="1.0" encoding="UTF-8"?>
2<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN" "http://www.springframework.org/dtd/spring-beans-2.0.dtd">
3<beans>    
4    <bean name="/register" 
5class="test.register.action.RegisterAction">
6       <property name="registerService" ref="registerTarget"/>     
7    </bean>     
8</beans>
9






]]>
Struts,Spring,Hibernate Web應(yīng)用開發(fā)2http://m.tkk7.com/jacky9881/archive/2008/01/02/172086.html笑看人生笑看人生Wed, 02 Jan 2008 02:06:00 GMThttp://m.tkk7.com/jacky9881/archive/2008/01/02/172086.htmlhttp://m.tkk7.com/jacky9881/comments/172086.htmlhttp://m.tkk7.com/jacky9881/archive/2008/01/02/172086.html#Feedback0http://m.tkk7.com/jacky9881/comments/commentRss/172086.htmlhttp://m.tkk7.com/jacky9881/services/trackbacks/172086.html
 1<!--通知Spring Log4j配置文件的位置 -->
 2<context-param>
 3    <param-name>log4jConfigLocation</param-name>
 4    <param-value>/WEB-INF/log4j.properties</param-value>
 5</context-param>
 6 
 7<!--Spring默認(rèn)刷新Log4j配置文件的間隔,單位為millisecond-->
 8<context-param>
 9    <param-name>log4jRefreshInterval</param-name>
10    <param-value>60000</param-value>
11</context-param>
12 
13<!--在應(yīng)用啟動時,由Spring負(fù)責(zé)加載Log4j-->
14<listener>
15    <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
16</listener>

2.接下來我們定義log4j.properties

 1# Global logging configuration
 2log4j.rootLogger=DEBUG,console,file
 3 
 4## APPENDERS ##
 5# define an appender named console, which is set to be a ConsoleAppender
 6log4j.appender.console=org.apache.log4j.ConsoleAppender
 7 
 8# define an appender named file, which is set to be a RollingFileAppender
 9log4j.appender.file=org.apache.log4j.RollingFileAppender
10# replace <CATALINA_HOME> with your true path
11log4j.appender.file.File=D:/eclipse/workspace/login/log.txt
12 
13## LAYOUTS ##
14# assign a SimpleLayout to console appender
15log4j.appender.console.layout=org.apache.log4j.SimpleLayout
16 
17# assign a PatternLayout to file appender
18log4j.appender.file.layout=org.apache.log4j.PatternLayout
19log4j.appender.file.layout.ConversionPattern=%t%p-%m%n

在log4j.properties中,我們定義了日志級別是DEBUG,日志信息輸出目的地是控制臺(console)和文件(file)。

3.這樣我們就可以在程序代碼中進(jìn)行日志操作了:

 1package test.register.action;
 2 
 3import javax.servlet.http.HttpServletRequest;
 4import javax.servlet.http.HttpServletResponse;
 5 
 6import org.apache.log4j.LogManager;
 7import org.apache.log4j.Logger;
 8import org.apache.struts.action.Action;
 9import org.apache.struts.action.ActionForm;
10import org.apache.struts.action.ActionForward;
11import org.apache.struts.action.ActionMapping;
12import org.apache.struts.action.DynaActionForm;
13 
14import test.register.entity.Register;
15import test.register.service.RegisterService;
16 
17public class RegisterAction extends Action{
18       
19       private static final Logger log = LogManager.getLogger(RegisterAction.class);
20       
21       private RegisterService registerService;
22 
23       public RegisterService getRegisterService() {
24              return registerService;
25       }

26 
27       public void setRegisterService(RegisterService registerService) {
28              this.registerService = registerService;
29       }

30 
31       public ActionForward execute(ActionMapping mapping,
32                                                               ActionForm form, 
33                                                 HttpServletRequest request, 
34                                    HttpServletResponse response) 
35       throws Exception {
36              log.info("save register");
37              Register r = (Register)((DynaActionForm)form).get("register"); 
38              getRegisterService().saveRegister(r);           
39              return mapping.findForward("success");
40       }
     
41       
42}

4.在上面log4j.properties中,我們指定日志輸入文件用了絕對路徑,這在很多時候不方便,為此我們作如下修改:在web.xml中增加一個上下文參數(shù)

1<context-param>
2    <param-name>webAppRootKey</param-name>
3    <param-value>webLogin.root</param-value>
4</context-param>

增加系統(tǒng)變量,變量名為webAppRootKey,變量值可以指定應(yīng)用部署的目錄,這樣就可以在log4j.properties對日志輸出的文件路徑作如下修改:

log4j.appender.file.File=${webLogin.root}/log.txt




]]>
Struts,Spring,Hibernate Web應(yīng)用開發(fā)1http://m.tkk7.com/jacky9881/archive/2008/01/02/172076.html笑看人生笑看人生Wed, 02 Jan 2008 01:43:00 GMThttp://m.tkk7.com/jacky9881/archive/2008/01/02/172076.htmlhttp://m.tkk7.com/jacky9881/comments/172076.htmlhttp://m.tkk7.com/jacky9881/archive/2008/01/02/172076.html#Feedback0http://m.tkk7.com/jacky9881/comments/commentRss/172076.htmlhttp://m.tkk7.com/jacky9881/services/trackbacks/172076.html閱讀全文

]]>
主站蜘蛛池模板: 亚洲AV无码国产精品色| 亚洲一卡2卡3卡4卡5卡6卡 | 亚洲AV无码乱码国产麻豆| 亚洲国产精品张柏芝在线观看| 久久久久亚洲国产AV麻豆 | 四虎国产精品永久免费网址 | 国产精品亚洲二区在线| 一区二区三区在线免费看| 国产成人精品免费直播| 亚洲国产人成在线观看69网站 | 免费电影在线观看网站| 亚洲色中文字幕无码AV| 亚洲日韩国产欧美一区二区三区| 久久久WWW成人免费精品| 国产免费毛不卡片| 亚洲日韩欧洲无码av夜夜摸| 亚洲日韩精品无码专区加勒比| 久久精品国产影库免费看| 国产禁女女网站免费看| 亚洲色图.com| 精品国产污污免费网站入口 | 亚洲线精品一区二区三区影音先锋| 亚洲香蕉在线观看| 免费无码av片在线观看| 国产网站免费观看| 亚洲国产情侣一区二区三区| 久久精品无码专区免费| 免费看无码自慰一区二区| 自怕偷自怕亚洲精品| 老司机精品免费视频| 好男人视频社区精品免费| 亚洲系列中文字幕| 巨胸喷奶水视频www免费视频| 国产一区二区三区免费在线观看| 亚洲欧洲国产综合| 最近的2019免费中文字幕| 亚洲?V乱码久久精品蜜桃| 亚洲偷自拍另类图片二区| 1000部免费啪啪十八未年禁止观看 | 亚洲精品一卡2卡3卡三卡四卡| 人妻免费一区二区三区最新|