A.. properties http://propedit.sourceforge.jp/eclipse/updates/;
A.. jode http://www.technoetic.com/eclipse/update;
A.. Eclipse update site: http://eclipse-tools.sourceforge.net/updates/ 查看接口實現類插件
A.. jsEclipse http://www.interaktonline.com/ JS編輯器
0.5.lomboz J2EE插件,開發JSP,EJB
http://forge.objectweb.org/projects/lomboz
1.MyEclipse J2EE開發插件,支持SERVLET/JSP/EJB/數據庫操縱等
http://www.myeclipseide.com
2.Properties Editor 編輯java的屬性文件,并可以自動存盤為Unicode格式
http://propedit.sourceforge.jp/index_en.html
3.Colorer Take 為上百種類型的文件按語法著色
http://colorer.sourceforge.net/
4.XMLBuddy 編輯xml文件
http://www.xmlbuddy.com
5.Code Folding 加入多種代碼折疊功能(比eclipse自帶的更多)
http://www.coffee-bytes.com/servlet/PlatformSupport
6.Easy Explorer 從eclipse中訪問選定文件、目錄所在的文件夾
http://easystruts.sourceforge.net/
7.Fat Jar 打包插件,可以方便的完成各種打包任務,可以包含外部的包等
http://fjep.sourceforge.net/
8.RegEx Test 測試正則表達式
http://brosinski.com/stephan/archives/000028.php
9.JasperAssistant 報表插件(強,要錢的)
http://www.jasperassistant.com/
10.Jigloo GUI Builder JAVA的GUI編輯插件
http://cloudgarden.com/jigloo/
11.Profiler 性能跟蹤、測量工具,能跟蹤、測量BS程序
http://sourceforge.net/projects/eclipsecolorer/
12.AdvanQas 提供對if/else等條件語句的提示和快捷幫助(自動更改結構等)
http://eclipsecolorer.sourceforge.net/advanqas/index.html
13.Log4E Log4j插件,提供各種和Log4j相關的任務,如為方法、類添加一個logger等
http://log4e.jayefem.de/index.php/Main_Page
14.VSSPlugin VSS插件
http://sourceforge.net/projects/vssplugin
15.Implementors 提供跳轉到一個方法的實現類,而不是接中的功能(實用!)
http://eclipse-tools.sourceforge.net/implementors/
16.Call Hierarchy 顯示一個方法的調用層次(被哪些方法調,調了哪些方法)
http://eclipse-tools.sourceforge.net/call-hierarchy/index.html
17.EclipseTidy 檢查和格式化HTML/XML文件
http://eclipsetidy.sourceforge.net/
18.Checkclipse 檢查代碼的風格、寫法是否符合規范
http://www.mvmsoft.de/content/plugins/checkclipse/checkclipse.htm
19.Hibernate Synchronizer Hibernate插件,自動映射等
http://www.binamics.com/hibernatesync/
20.VeloEclipse Velocity插件
http://propsorter.sourceforge.net/
21.EditorList 方便的列出所有打開的Editor
http://editorlist.sourceforge.net/
22.MemoryManager 內存占用率的監視
http://cloudgarden.com/memorymanager/
23.swt-designer java的GUI插件
http://www.swt-designer.com/
24.TomcatPlugin 支持Tomcat插件
http://www.sysdeo.com/eclipse/tomcatPlugin.html
25.XML Viewer
http://tabaquismo.freehosting.net/ignacio/eclipse/xmlview/index.html
26.quantum 數據庫插件
http://quantum.sourceforge.net/
27.Dbedit 數據庫插件
http://sourceforge.net/projects/dbedit
28.clay.core 可視化的數據庫插件
http://www.azzurri.jp/en/software/index.jsp
http://www.azzurri.jp/eclipse/plugins
29.hiberclipse hibernate插件
http://hiberclipse.sourceforge.net
http://www.binamics.com/hibernatesync
30.struts-console Struts插件
http://www.jamesholmes.com/struts/console/
31.easystruts Struts插件
http://easystruts.sourceforge.net
32.veloedit Velocity插件
http://veloedit.sourceforge.net/
33.jalopy 代碼整理插件
http://jalopy.sourceforge.net/
34.JDepend 包關系分析
http://andrei.gmxhome.de/jdepend4eclipse/links.html
35.Spring IDE Spring插件
http://springide-eclip.sourceforge.net/updatesite/
36.doclipse 可以產生xdoclet 的代碼提示
http://beust.com/doclipse/
功能:集合了SSH框架,完成簡單的登陸功能
工具:
eclipse-SDK-3.2.1、MyEclipse_5.0.1GA_E3.2、Tomcat_5.5.15、mysql-5.0.18
相關資料下載
原來的資料都是放在gbaopan下,現在gbaopan關了,沒有地方放了,只能放在郵箱里,在發件箱里的附件中
視頻教程下載郵件主題: struts+hibernate+spring視頻.part1
struts+hibernate+spring視頻.part2
工程下載郵件主題: struts+hibernate+spring_src.part1
struts+hibernate+spring_src.part1
說明文件郵件主題: struts+hibernate+spring_說明
properties2GBK.bat struts+hibernate+spring_說明
開始。。新建工程:名稱為 login
創建Struts框架
創建 index.jsp,增加一鏈接指向 login.jsp
<html>
<head>
<title>Struts+Spring+Hibernate</title>
</head>
<body>
<a href="login.jsp">Login</a>
</body>
</html>
按下Ctrl + N,創建 login.jsp、LoginAction,使用MyEclipse的向導就可以了,記得選對正確的版本
在ActionForm配置頁中選擇類型為動態Form,并繼承于DynaValidatorForm,新增兩個屬性:username、password,
在創建jsp文件打上鉤,將路徑改為/login.jsp,然后下一步,改LoginAction的Input source改為/login.jsp,點擊完成
按下Ctrl + N 創建一個forwards,記得選對正確的版本
name 輸入 indexGo
路徑選擇 /index.jsp
配置validator
先添加Struts插件,使用向導
Plugin class : org.apache.struts.validator.ValidatorPlugIn
Property : pathnames
Value : /WEB-INF/validator-rules.xml,/WEB-INF/validation.xml
這里需要兩個xml文件
現在創建“validation.xml” 文件
文件內容如下:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE form-validation PUBLIC "-//Apache Software Foundation//DTD
Commons Validator Rules Configuration 1.1.3//EN"
"validator_1_1_3.dtd" >
<form-validation>
<formset>
<form name="loginForm">
<field property="username"
depends="required">
<arg0 key="prompt.username" />
</field>
<field property="password"
depends="required">
<arg0 key="prompt.password" />
</field>
</form>
</formset>
</form-validation>
編輯資源文件“ApplicationResources.properties”
增加以下內容
prompt.username=User Name
prompt.password=User Password
errors.required={0} is required.
再創建中文件資源文件“ApplicationResources_zh_CN.properties”
增加以下內容
prompt.username=用戶名稱
prompt.password=登錄密碼
errors.required={0} 必需填寫!
我這沒有用Properties Editor插件,所以在tomcat發布后會顯示亂碼,我們可以用native2ascii來解決
我建了個批處理文件properties2GBK.bat
native2ascii -encoding gbk ApplicationResources_zh_CN.properties
temp.properties
del ApplicationResources_zh_CN.properties
rename temp.properties ApplicationResources_zh_CN.properties
放在你的classpath下,或者拷到你要轉GBK的地方,雙擊一下就可以了
我剛開始在eclipse編輯中文properties文件,保存后再打開,也會出現亂碼,只要在eclipse上設置一下就可以了
具體設置:Eclipse-->Preferences...-->在“type filter text“欄中輸入”Content Types“查找,
然后在選擇右邊的Text下邊相應的文件后綴名,即properties.修改其編碼就可。可以修改成GBK
我這已經改好了,直接打開就是漢語了。。。
建議下載 properties Editor插件,我這上不了外國網站,沒有辦法。。。。有空再下吧。。
修改struts-config.xml文件
在以下位置增加validate="true"
<action-mappings >
<action
attribute="loginForm"
input="/login.jsp"
name="loginForm"
path="/login"
scope="request"
validate="true"
type="com.test.struts.action.LoginAction" />
</action-mappings>
這里說明提交的數據必需經過驗證,而驗證則是通過validator框架進行的。
修改web.xml文件
增加
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
顯示主頁
修改LoginAction.java文件的execute方法,內容如下
public ActionForward execute(
ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response) {
DynaValidatorForm loginForm = (DynaValidatorForm) form;
String username=loginForm.getString("username");
String password=loginForm.getString("password");
if(username.equals("test")||password.equals("test")){
return mapping.findForward("indexGo");
}else{
return mapping.getInputForward();
}
}
現在再修改一下login.jsp
增加以下部份
<%@ page language="java" contentType="text/html;
charset=UTF-8" %>
其中charset=UTF-8 是使用UTF-8的字符編碼,這也是為了支持國際化而使用的。要不然中文還是會顯示亂碼
關于亂碼解決,網上查資料,一查就有一堆
我們現在還沒有傳遞中文參數,要不然還得加個過濾器。。
好了,現在可以啟動Tomcat進行測試了
http://localhost:8080/login/
如果不輸入任何數據而直接提交表單的話就可以看到效果了。
好了,如果沒有什么問題的話就繼續往下看吧,如果有問題的話就得往上看了^_^
出現了亂碼,我們用native2ascii來解決,非得我重啟一下!> ok了
現在創建Spring框架了,在這里我將Spring所有的包全部加載進去,因為我還不知道具體用到哪些類,全部加進去方便點
單選框選第二個,這樣的話所有的類庫和標簽等都將拷貝到項目中去,這樣方便以后的布署
下一步后是創建配置文件,將文件放到“WebRoot/WEB-INF”目錄下,文件名稱為“applicationContext.xml”
配置struts-config.xml文件,添加(spring)的插件
<plug-in
className="org.springframework.web.struts.ContextLoaderPlugIn">
<set-property property="contextConfigLocation"
value="/WEB-INF/applicationContext.xml" />
</plug-in>
修改LoginAction配置
原:
<action
attribute="loginForm"
input="/login.jsp"
name="loginForm"
path="/login"
scope="request"
validate="true"
type="com.test.struts.action.LoginAction" />
</action-mappings>
改為:
<action
attribute="loginForm"
input="/login.jsp"
name="loginForm"
path="/login"
scope="request"
validate="true"
type="org.springframework.web.struts.DelegatingActionProxy" />
</action-mappings>
這里將使用spring的代理器來對Action進行控制
當提交到/login.do是將控制權交給了spring,然后由spring來決定是否轉回到struts的Action
現在來配置spring
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "
<beans>
<bean name="/login"
class="com.test.struts.action.LoginAction"
singleton="false"></bean>
</beans>
屬性singleton="false",指明了Action 的實例獲取方式為每次重新創建。解決了Struts中令人詬病的線程安全問題(Struts中,由一個Action實例處理所有的請求,這就導致了類公用資源在并發請求中的線程同步問題。)(摘自spring開發指南)
測試一下,如果沒有什么問題的話就繼續往下看吧,如果有問題的話就得往上看了^_^
好的,struts spring倆人成為朋友了,友好的集成到了一起。。。
建立數據庫在 這里我使用的是mysql-5.0.18
配置好mySql連接......
不好意思,這里我忘記驅動怎么寫了。。。
CREATE TABLE `user` (
`ID` int(11) NOT NULL auto_increment,
`USERNAME` varchar(50) NOT NULL default '',
`PASSWORD` varchar(50) NOT NULL default '',
PRIMARY KEY (`ID`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
添加記錄 insert into user (USERNAME,PASSWORD) values
('test','test')
創建Hibernate框架
新建包com.test.hibernate
com.test.beans
選hibernate3.1 libraries全選,我也不知道那個具體有什么用^_^,可能只選第一個也行,但考慮還要用DAO,第三個也選上了,
看第二是高級支持,也加上了,沒試里面的作用,大家有空可以試一下。。
第二步選 spring configuration file 我們直接在Spring配置hibernate的連接。。就不用創建hibernate.cfg.xml了
第三步選existing Spring configuration file我們剛才已經創建了一個。。
SessionFactory ID就直接填sessionFactory
第四步 Bean Id填 dataSource 我們用JDBC Driver,DB Profile選剛才配置好的
使用MyEclipse的數據Database Explorer工具創建User.hmb.xml、AbstractUser.java、User.java,UserDAO文件
這里選項比較多,大家看視頻。。我就不一一說明了。。。不懂的看書^_^
打開User.hbm.xml配置文件,把 catalog="meilvin" 這一項刪除了,要不后果很嚴重。因為mySql在連接的時候要寫上數據庫
如果我們在這里也寫上數據庫的名字的話就會重復了,就變成了meilvin.meilvin.user,顯然是錯的。后面就會報錯,我深有體會。
修改UserDAO,增加如下方法
public boolean isValidUser(String username, String password) {
String hql = "from User u where u.username=? and
u.password=?";
String []userInfo=new String[2];
userInfo[0]=username;
userInfo[1]=password;
List userList = this.getHibernateTemplate().find(hql, userInfo);
if (userList.size() > 0) {
return true;
}
return false;
}
修改LoginAction.java文件,使用userDao的方法來進行用戶驗證
package com.test.struts.action;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.validator.DynaValidatorForm;
import com.test.UserDAO;
public class LoginAction extends Action {
private
UserDAO userDAO;
public UserDAO getUserDAO() {
return userDAO;
}
public void setUserDAO(UserDAO userDAO) {
this.userDAO = userDAO;
}
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
DynaValidatorForm loginForm = (DynaValidatorForm) form;
// TODO Auto-generated method stub
String username = (String) loginForm.get("username");
String password = (String) loginForm.get("password");
loginForm.set("password", null);
if (userDAO.isValidUser(username,password)) {
return mapping.findForward("indexGo");
} else {
return mapping.getInputForward();
}
}
}
現在剩下最后的spring配置了
把原來的
<bean name="/login"
class="com.test.struts.action.LoginAction"
singleton="false"></bean>
刪除了
在最底下增加
<bean name="/login"
class="com.test.struts.action.LoginAction"
singleton="false">
<property name="userDAO">
<ref bean="UserDAO" />
</property>
</bean>
利用反轉控制產生action
現在可以進行測試了,可以登陸了^-^
老是說log4j沒有配置,下次視頻配置一下。。。成功了。。
注冊新用戶,用戶瀏覽、刪除用戶
打開
UserDAO.java 文件,增加以下方法:
public boolean addUser(User user) {
try {
//調用前面save方法
save(user);
} catch (Exception e) {
System.out.println(e.getMessage());
return false;
}
return true;
}
按下 Ctrl + N ,使用向導創建 adduser.jsp 、AdduserForm(DynaValidatorForm)、AdduserAction.java文件,這是注冊新用戶的Action
我用的是maxthon瀏覽器,如果是add.jsp,它會當做廣告攔下來,,,,多加個user...
修改配置內容如下:
<action
attribute="adduserForm"
input="/adduser.jsp"
name="adduserForm"
path="/adduser"
validate="true"
type="org.springframework.web.struts.DelegatingActionProxy" />
第一句實現了必須對提交的數據進行驗證
第二句實現了和spring集成
修改 AdduserAction.java 文件,內容如下:
private
UserDAO userDAO;
public UserDAO getUserDAO() {
return userDAO;
}
public void setUserDAO(UserDAO userDAO) {
this.userDAO = userDAO;
}
public
ActionForward execute(
ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response) {
DynaValidatorForm adduserForm = (DynaValidatorForm) form;
User user = new User();
user.setUsername(adduserForm.getString("username"));
user.setPassword(adduserForm.getString("password"));
adduserForm.set("password", null);
if (userDAO.addUser(user)) {
return mapping.findForward("indexGo");
} else {
return mapping.getInputForward();
}
}
關于在Action中使用 User 對像,我在這里沒有使用 IoC 方式進行管理,這不好,希望大家在正式應用中使用。
在spring配置文件(applicationContext.xml)中加入以下內容:
<bean name="/adduser"
class="com.test.struts.action.AdduserAction"
singleton="false">
<property name="userDAO">
<ref bean="UserDAO" />
</property>
</bean>
修改
index.jsp 文件
<html>
<head>
<title>Struts+Spring+Hibernate</title>
</head>
<body>
<a href="login.jsp">Login</a>
<br>
<a href="add.jsp">Add User</a>
</body>
</html>
修改
adduser.jsp 文件的首行,替換為以下內容,目的是為了使用UTF-8的編碼格式顯示頁面
<%@ page language="java" contentType="text/html;
charset=UTF-8" %>
修改
validation.xml 文件,加入以下內容:
<form name="adduserForm">
<field property="username"
depends="required">
<arg0 key="prompt.username" />
</field>
<field property="password"
depends="required">
<arg0 key="prompt.password" />
</field>
</form>
現在整個 AddUser 已經完成,如果你覺得不放心的話可以在這里停一停先進行這一段的測試!
創建一個Action用于查詢數據,名稱為 find
創建 display.jsp 文件,用于顯示所有用戶
創建一個 forward displayGO 指向 display.jsp 選中 redirect
修改
UserDAO.java 文件,增加 findAllUser() 方法,代碼如下:
public List findAllUser() {
List users=this.getHibernateTemplate().find("from User u");
if(users.size()>0)
return users;
return null;
}
修改
struts-config.xml 文件
<action path="/find"
type="org.springframework.web.struts.DelegatingActionProxy" />
修改
FindAction.java 文件,內容如下:
private UserDAO userDAO;
public UserDAO getUserDAO() {
return userDAO;
}
public void setUserDAO(UserDAO userDAO) {
this.userDAO = userDAO;
}
public
ActionForward execute(
ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response) {
List users=userDAO.findAllUser();
if(users!=null){
HttpSession session=request.getSession();
session.setAttribute("users",users);
return mapping.findForward("displayGo");
}
return mapping.getInputForward();
}
在spring配置文件(applicationContext.xml)中加入以下內容:
<bean name="/find"
class="com.test.struts.action.FindAction"
singleton="false">
<property name="userDAO">
<ref bean="UserDAO" />
</property>
</bean>
修改
display.jsp 文件,內容如下:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib uri="
<%@ taglib uri="
<%@ taglib uri="
<html>
<head>
<title>DISPLAY</title>
</head>
<body>
<logic:present name="users">
<form action="del.do">
<table border="1">
<logic:iterate id="element"
name="users">
<tr><td width="100">
<input type="radio" name="select"
value="<bean:write name="element"
property="id"/>">
<bean:write name="element" property="username"/>
</td></tr>
</logic:iterate>
</table>
<INPUT type="submit" name="Submit"
value="submit">
</form>
</logic:present>
</body>
</html>
現在整個 Display 已經完成,如果你覺得不放心的話可以在這里停一停先進行這一段的測試!
新建一個 Action 用于刪除選中的用戶,name:del
修改
struts-config.xml 文件中的以下內容為:
<action path="/del"
type="org.springframework.web.struts.DelegatingActionProxy" />
修改
UserDAO.java 文件,增加以下方法
public boolean delUser(Integer lid) {
try {
User user=(User)findById(lid);
this.getHibernateTemplate().delete(user);
} catch (Exception e) {
System.out.println(e.getMessage());
return false;
}
return true;
}
修改
DelAction.java 文件,內容如下:
public class DelAction extends Action {
private UserDAO userDAO;
public
UserDAO getUserDAO() {
return userDAO;
}
public
void setUserDAO(UserDAO userDAO) {
this.userDAO = userDAO;
}
public
ActionForward execute(
ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response) {
Integer selid=Integer.valueOf(request.getParameter("select"));
if(userDAO.delUser(selid))
return mapping.findForward("indexGo");
return mapping.getInputForward();
}
}
Ctrl+Shift+o導入包
在spring配置文件(applicationContext.xml)中加入以下內容:
<bean name="/del"
class="com.test.struts.action.DelAction" singleton="false">
<property name="userDAO">
<ref bean="UserDAO" />
</property>
</bean>
修改
index.jsp 文件
<html>
<head>
<title>Struts+Spring+Hibernate</title>
</head>
<body>
<a href="login.jsp">Login</a>
<br>
<a href="add.jsp">Add User</a>
<br>
<a href="find.do">Display</a>
</body>
</html>
代碼已經全部完成,可以進行測試了!!!
如果測試不成功,請往回查看。。。。完了!!!
失誤失誤,大小寫不注意,就是這種后果,大家以后要注意點哦
好了,成功了,祝大家都成功!
拜拜!
Properties文件(first_log4j.properties) 放在系統的src包中。(eclipse布置在"WEB-INF"classes)
log4j.rootLogger=INFO,stdout,logfile
log4j.category.com.sumit=DEBUG
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern= [%p][%c]- %m [%d] %n
# logfile set up.
log4j.appender.logfile=org.apache.log4j.RollingFileAppender
log4j.appender.logfile.File=set up in web.xml
log4j.appender.logfile.MaxFileSize=50MB
# Keep three backup files.
log4j.appender.logfile.MaxBackupIndex=10
# Pattern to output: date priority [category] - message
log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
#log4j.appender.logfile.layout=org.apache.log4j.HTMLLayout
#log4j.appender.logfile.layout.ConversionPattern=時間:%d%n 優先級:%p%n 源文件:%F%n 類:%c%n 方法:%M%n 行數%L%n 最全:%l%n 信息:%m%n------------------------------------------------%n%n
log4j.appender.logfile.layout.ConversionPattern=%n- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -- - - - - - - - - - - - - - - - - - - -- - - - - - - - - - - - - - - - - - - - %n時間:%d%n 優先級:%p%n 位置:%l%n 信息:%m%n%n
第二步,servlet
package com.royal.listener;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.Properties;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import org.apache.log4j.Logger;
import org.apache.log4j.PropertyConfigurator;
publicclass LogListener extends HttpServlet {
privatestaticfinallongserialVersionUID = 1L;
static Logger log = Logger.getLogger(LogListener.class);
public LogListener() {
}
publicvoid init(ServletConfig config) throws ServletException {
String prefix = config.getServletContext().getRealPath("/");
String properties = config.getInitParameter("log4j_properties");
String logger=config.getInitParameter("log4j_outPutFile");
String propertiesPath = prefix + properties;
Properties props = new Properties();
try {
FileInputStream istream = new FileInputStream(propertiesPath);
props.load(istream);
istream.close();
//toPrint(props.getProperty("log4j.appender.file.File"));
String logFile = prefix + logger;//設置路徑
logFile=logFile.replace('""', '/');
props.setProperty("log4j.appender.logfile.File",logFile);
PropertyConfigurator.configure(props);//裝入log4j配置信息
log.info("皇家金典項目啟動------");
log.info("LOG被加載日志文件位置:"+props.getProperty("log4j.appender.logfile.File"));
} catch (IOException ioe) {
log.error(ioe);
ioe.printStackTrace();
return;
}
}
}
Web.xml: (load-on-srartup=1 項目啟動時加載)
參數中有一個是logs"log.log,自動生成日志文件,生成在項目下面的logs directory中,文件名為log.log
<servlet>
<servlet-name>LogListener</servlet-name>
<servlet-class>com.royal.listener.LogListener</servlet-class>
<init-param>
<param-name>log4j_properties</param-name>
<param-value>WEB-INF/classes/first_log4j.properties</param-value>
</init-param>
<init-param>
<param-name>log4j_outPutFile</param-name>
<param-value>logs"log.log</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
第三步 使用
如果是普通的JAVA類,
就得初始化log變量
static Logger log = Logger.getLogger(Mail.class);
在要記錄日去的地方
log.error(ex+" 創建MIME郵件對象失敗!"); //ex是Exception對象
或者 log.info/log.debug/log.warn等
如果是struts中的DispatchAction的子類,或其它有Log的類的子類。
就可以不用初始化log變量。