以迅雷不及掩耳响叮当之势 ,biu~biu~! 搞完了一个老师的布置的结业课设!
下面总结一下遇到的阻力以及解决的策略:
No.1 文件扫描问题(对于一个未知或者说已知的目录下,扫描出我们想要的mp3格式的音乐文件,而过滤掉其他文件呢?)
处理的套路:
第一步,假如我们能实现这样一个低版本技术,对于一个已知的文件取名为Hopg,我们我们能扫描出Hopg里面所有的文件以及目录的名称:
1 package Hbut.Gxjun.Util;
2
3 import java.io.File;
4 import java.util.Scanner;
5
6 /**
7 * @author Gxjun
8 */
9 public class Filer {
10
11
12 static void ScannFile(String path){
13
14 File Myfile = new File(path); //声明一个文件
15 String FileName [] ;
16 if(Myfile.isDirectory()){
17 //判断该文件是否是一个目录,若果是目录
18 //取出该目录下所有的文件
19 FileName=Myfile.list();
20 for(int i=0;i<FileName.length; i++){
21 ScannFile(path+"\\"+FileName[i]);
22 }
23 }
24 else{
25 //然后对于path进行解析 我们知道路径的格式为T:\Hopg\ds
26 String PathName []=path.split("\\\\");
27 String Path="" ;
28 for(int i=0 ;i<PathName.length-1;i++){
29 Path+=PathName[i]+"\\";
30 }
31 System.out.println("Path="+Path+"\n"+" "+PathName[PathName.length-1]);
32 }
33
34 }
35
36 public static void main(String args []){
37
38 Scanner read = new Scanner(System.in);
39 while(read.hasNext()){
40 String path =read.next();
41 ScannFile(path);
42 }
43 }
44 }
部分结果显示:
1 D:\KuGou
2 Path=D:\KuGou\
3 Adele - Set Fire To The Rain.mp3
4 Path=D:\KuGou\
5 Beast - ONE.mp3
6 Path=D:\KuGou\
7 Beyond - 不再犹豫.mp3
8 Path=D:\KuGou\
9 Beyond - 光辉岁月.mp3
10 Path=D:\KuGou\
11 Beyond - 海阔天空.mp3
12 Path=D:\KuGou\
13 Beyond、黄家驹 - 再见理想.mp3
14 Path=D:\KuGou\
15 Big Sean、justin Bieber - As Long As You Love Me.mp3
16 Path=D:\KuGou\
17 bigbang - 谎言.mp3
18 Path=D:\KuGou\
19 By2、汪苏泷 - 有点甜 - 副本.mp3
20 Path=D:\KuGou\
21 By2、汪苏泷 - 有点甜.mp3
22 Path=D:\KuGou\Cache\
23 05f34c6687d33c237de18d8850644b5d.kg!
24 Path=D:\KuGou\Cache\
25 307a9fcc3710db123faf128ef731becd.kg!
26 Path=D:\KuGou\Cache\
27 350fe68306912b26c81de5b8bddbfe67.kg!
28 Path=D:\KuGou\Cache\
29 3f8d84c738ca1101361c3095b9b299a9.kg!
30 Path=D:\KuGou\Cache\
31 47aedcf2b436dd0ed74be3c7e8f0269c.kg!
32 Path=D:\KuGou\Cache\
33 4a0261fc66f392469c6900dee046e4e0.kg!
34 Path=D:\KuGou\Cache\
35 5100a94f545e4c78e2f9e901dfba3db9.kg!
36 Path=D:\KuGou\Cache\
37 6b9766ec0bd6466bd9b2230424bfe954.kg!
38 Path=D:\KuGou\Cache\
39 6d7a0adcd727cd09fc31c25e781c8fd0.kg!
40 Path=D:\KuGou\Cache\
41 742e793c1a61ceefb75f4419ad90b3fc.kg!
42 Path=D:\KuGou\Cache\
43 93a8251d3b11fde6fcab4490edf3445e.kg!
44 Path=D:\KuGou\Cache\
45 c7a379cad7e71c3d0e17297f174a4c61.kg!
46 Path=D:\KuGou\Cache\
47 c92e6c3c7cbb470c95d47dfd5b50aaf8.kg!
48 Path=D:\KuGou\Cache\
49 d857528545b27773754de5993550d8d5.kg!
50 Path=D:\KuGou\
51 Cleopatra Stratan - Numar Pan La Unu.mp3
52 Path=D:\KuGou\
53 Crossfire、龚格尔 - 穿越火线.mp3
54 Path=D:\KuGou\
55 Cs 战歌.mp3
56 Path=D:\KuGou\
57 Cs.mp3
58 Path=D:\KuGou\
59 Eagles - 加州旅馆.mp3
60 Path=D:\KuGou\
61 Ein Kleines Lied - Candee!.mp3
62 Path=D:\KuGou\
63 F4 - 流星雨.mp3
64 Path=D:\KuGou\
65 Groove Coverage - On the Radio.mp3
66 Path=D:\KuGou\
67 Groove Coverage - Wait(Radio Edit).mp3
68 Path=D:\KuGou\
69 July - Story Of Us.mp3
70 Path=D:\KuGou\
71 Justin Bieber - Home To Mama.mp3
72 Path=D:\KuGou\
73 Leessang、白智英 - 回忆.mp3
74 Path=D:\KuGou\
75 Lily Allen - Air Balloon.mp3
76 Path=D:\KuGou\
77 Lily Allen - Fuck You.mp3
78 Path=D:\KuGou\
79 Lily Allen - Fuckyou.mp3
80 Path=D:\KuGou\
81 Lily Allen - Hard Out Here.mp3
82 Path=D:\KuGou\
83 Lily Allen - Littlest Things.mp3
84 Path=D:\KuGou\
85 Lily Allen - Not Fair.mp3
86 Path=D:\KuGou\
87 Lily Allen - Somewhere Only We Know.mp3
88 Path=D:\KuGou\
89 Lily Allen、p!nk - True Love.mp3
90 Path=D:\KuGou\Lyric\
91 Adele - Hiding My Heart-5a85ae6773e09c1736460c8884b61287.krc
92 Path=D:\KuGou\Lyric\
93 Apink - 小指(Promise U)-c1ae5c7d15104fc60101ded19839d31a.krc
94 Path=D:\KuGou\Lyric\
95 Bebel Gilberto - All Around-6cdcbfd7d7fe404b8e1ea369c4c2a4dd.krc
96 Path=D:\KuGou\Lyric\
97 Beyond - 不再犹豫-feb99489257c611ac4b6aa2a7c1ea761.krc
98 Path=D:\KuGou\Lyric\
99 Beyond - 海阔天空-0278b3fcc9bdeae87298fd7e6eae8715.krc
100 Path=D:\KuGou\Lyric\
101 Big Sean、justin Bieber - As Long As You Love Me-a8d454a99b2cbd9aeca942b6bb127843.krc
102 Path=D:\KuGou\Lyric\
103 bigbang - 谎言-40153e25b8761ee0df84e5bd2c333203.krc
104 Path=D:\KuGou\Lyric\
105 bigbang - 谎言-a7c2d5efa5595a49543047619a0a43ae.krc
106 Path=D:\KuGou\Lyric\
107 Brandy、Ray J - Another Day In Paradise-42f8ca27763371f48fd3d5800af8c95a.krc
108 Path=D:\KuGou\Lyric\
109 Cs 战歌-40ce1e39e254925d2ea73c74683e7cec.krc
110 Path=D:\KuGou\Lyric\
111 Cs-dc6cd4b0f7a6c464319d755f5affd0cd.krc
112 Path=D:\KuGou\Lyric\
113 Eagles - 加州旅馆-102cab2133ac3eff9e95675a27c39ff7.krc
114 Path=D:\KuGou\Lyric\
115 F.I.R. - 千军破 - 游戏 主题曲-41141dbeaaf1279e6412e2628ac38369.krc
116 Path=D:\KuGou\Lyric\
117 Justin Bieber - Never Say Never-a9aa34e9991069ec0e84fcef1f710796.krc
118 Path=D:\KuGou\Lyric\
119 Justin Bieber - One Time-f461bf7d62d0e3d5763bb5dcec15e8b6.krc
120
121 0d84e57621350fc9a75703f48371c669.kgtemp
122 Path=D:\KuGou\Temp\
123 0e5caab4996a36048aaf70c8e78118d5.kgtemp
124 Path=D:\KuGou\Temp\
125 0e6280489210d0e79a545e378b19537d.kgtemp
126 Path=D:\KuGou\Temp\
127 102cab2133ac3eff9e95675a27c39ff7.kgtemp
128 Path=D:\KuGou\Temp\
129 136f7f534e22e31acfef17bdf9f151a7.kgtemp
130 Path=D:\KuGou\Temp\
131 153a8f5351a35ab5fb0242eeecaab9f6.kgtemp
132 Path=D:\KuGou\Temp\
133 164b3e4d96ff8669b78c28a3e7f653f2.kgtemp
134 Path=D:\KuGou\Temp\
135 169434aa609c10ce9d5ad214f4441f11.kgtemp
136 Path=D:\KuGou\Temp\
137 19e56aa8033b1fa201177d89cb53c195.kgtemp
138 Path=D:\KuGou\Temp\
139 1deba691aaad5063d2e14d68e7f5d36b.kgtemp
140 Path=D:\KuGou\Temp\
141 1f90a59a49fb9bb3a2f9ed5c8643ad59.kgtemp
142 Path=D:\KuGou\Temp\
143 25819fcfdfa3824a6123d543440b5687.kgtemp
144 Path=D:\KuGou\Temp\
145 2a5c1d98b7a659d403c4302821af22a0.kgtemp
146 Path=D:\KuGou\Temp\
147 2bbb2f71ee1079d5f182bc627ed716b4.kgtemp
148 Path=D:\KuGou\Temp\
149 2be7047ff78e3c2d6f08d0168795896f.kgtemp
150 Path=D:\KuGou\Temp\
151 2c77b621cd91d40785a668ef0acb4f2a.kgtemp
152 Path=D:\KuGou\Temp\
153 2dfd540bd03d5c3fa87e71ee04e80f6f.kgtemp
154 Path=D:\KuGou\Temp\
155 2e01f801090bf4481de825463f1f7e4e.kgtemp
156 Path=D:\KuGou\Temp\
157 2ecffcc8f55c864d1c2ac75296ff6f2f.kgtemp
158 Path=D:\KuGou\Temp\
159 30b474b415c15726f7969fa554d2dd8f.kgtemp
160 Path=D:\KuGou\Temp\
161 35fd740e95cf3b8e7104534739d92361.kgtemp
162 Path=D:\KuGou\Temp\
163 360939ec19b2f0cf17fdff2c41f0cd5b.kgtemp
164 Path=D:\KuGou\Temp\
165 376e16c0a09e1d74988ce714202b98bf.kgtemp
166 Path=D:\KuGou\Temp\
167 391462795935a52e5c0674c766279923.kgtemp
168 Path=D:\KuGou\Temp\
169 3a57e9de928dd12fb04b6163e0dc9d97.kgtemp
170 Path=D:\KuGou\Temp\
171 3c0f57cf3cc04db1f5c744059f3d192e.kgtemp
172 Path=D:\KuGou\Temp\
173 3d307b751877ce9b4b73d30ae2869013.kgtemp
174 Path=D:\KuGou\Temp\
175 3e33ca79e6966281c5b893c25064d94d.kgtemp
176 Path=D:\KuGou\Temp\
177 4012fec0cdbd86248d2f1b3ad588fe89.kgtemp
178 Path=D:\KuGou\Temp\
179 40ce1e39e254925d2ea73c74683e7cec.kgtemp
180 Path=D:\KuGou\Temp\
181 41141dbeaaf1279e6412e2628ac38369.kgtemp
182 Path=D:\KuGou\Temp\
183 4fa409eb849ca657ec2c8d6fa9aa4bcb.kgtemp
184 Path=D:\KuGou\Temp\
185 52a25a4d1354ae2a2dade3ef20a167fa.kgtemp
186 Path=D:\KuGou\Temp\
187 5579c6490823457c47ba96284c7cd347.kgtemp
188 Path=D:\KuGou\Temp\
189 5602930f6d2a27f53913f72f80c3cb5b.kgtemp
190 Path=D:\KuGou\Temp\
191 56ab6da7cff2de7d1fb7699f59806ed2.kgtemp
192 Path=D:\KuGou\Temp\
193 56ed81ae949a86a55601a0c68c500954.kgtemp
194 Path=D:\KuGou\Temp\
195 5770119ee402eb6321dadb7dad03a437.kgtemp
196 Path=D:\KuGou\Temp\
197 5cf8d8822d5481ddb01181c8a5dc744f.kgtemp
198 Path=D:\KuGou\Temp\
199 65a18b12679b564071cccefd1c601663.kgtemp
从这些结果中,我们会惊喜的发现,我们遍历完了所有的目录,但是也有点不足的地方,就是将歌词和临时文件也加入了进来! 所以接下来我们需要解决的问题也变得单一起来!
--------如何剔除这些杂质,或者说过滤掉这些无用信息 ?
也许我们会发现,哟,不是要找格式嘛? 那就按照我们需要的格式找就ok了嘛! so ...... ! 问题就很容易搞定了! 于是立马修改代码:
1 package Hbut.Gxjun.Util;
2
3 import java.io.File;
4 import java.util.Scanner;
5
6 /**
7 * @author Gxjun
8 */
9 public class Filer {
10
11
12 static void ScannFile(String path){
13
14 File Myfile = new File(path); //声明一个文件
15 String FileName [] ;
16 if(Myfile.isDirectory()){
17 //判断该文件是否是一个目录,若果是目录
18 //取出该目录下所有的文件
19 FileName=Myfile.list();
20 for(int i=0;i<FileName.length; i++){
21 ScannFile(path+"\\"+FileName[i]);
22 }
23 }
24 else{
25 //然后对于path进行解析 我们知道路径的格式为T:\Hopg\ds
26 String PathName []=path.split("\\\\");
27 String Path="" ;
28 String tmpName=PathName[PathName.length-1];
29 //按照我们想要的格式解析
30 // enum tmps{mp3 ,mp4, mp5,};
31 //就简单的以mp3为类吧!
32
33 String tm [] =tmpName.split("\\.");
34 if(tm.length>0&&tm[tm.length-1].equalsIgnoreCase("mp3")){
35 for(int i=0 ;i<PathName.length-1;i++){
36 Path+=PathName[i]+"\\";
37 }
38 System.out.println("Path="+Path+"\n"+" "+tmpName);
39 }
40 }
41
42 }
43
44 public static void main(String args []){
45
46 Scanner read = new Scanner(System.in);
47 while(read.hasNext()){
48 String path =read.next();
49 ScannFile(path);
50 }
51 }
52 }
部分结果显示:
1 Path=D:\KuGou\
2 Serenata Immortale(游戏《最终幻想7》配乐.mp3
3 Path=D:\KuGou\
4 T-ara - 不要忘记我.mp3
5 Path=D:\KuGou\
6 Westlife - My Love - 西域男孩.mp3
7 Path=D:\KuGou\
8 What Is Dancing.mp3
9 Path=D:\KuGou\
10 不潮不花钱 - 副本.mp3
11 Path=D:\KuGou\
12 不潮不花钱.mp3
13 Path=D:\KuGou\
14 东方神起 - Spinning.mp3
15 Path=D:\KuGou\
16 东方神起 - 傻瓜.mp3
17 Path=D:\KuGou\
18 久石让 - 千寻のワルツ - 纯音乐版.mp3
19 Path=D:\KuGou\
20 久石让 - 梦の星空.mp3
21 Path=D:\KuGou\
22 五月天 - 倔强.mp3
23 Path=D:\KuGou\
24 五月天 - 忘词.mp3
25 Path=D:\KuGou\
26 五月天 - 拥抱.mp3
27 Path=D:\KuGou\
28 京田诚一 - 木漏れ日.mp3
29 Path=D:\KuGou\
30 伍佰 - 突然的自我.mp3
31 Path=D:\KuGou\
32 伪物语 白金ディスコ.mp3
33 Path=D:\KuGou\
34 信乐团 - 海阔天空.mp3
35 Path=D:\KuGou\
36 光良 - 第一次.mp3
37 Path=D:\KuGou\
38 冷漠 - 好男人中国造.mp3
39 Path=D:\KuGou\
40 凤凰传奇 - 飞天 - 游戏 龙门客栈 主题曲.mp3
41 Path=D:\KuGou\
42 刀郎 - 冲动的惩罚.mp3
43 Path=D:\KuGou\
44 刘若英 - 后来.mp3
45 Path=D:\KuGou\
46 劲舞团、劲舞团 - Oh My Baby.mp3
47 Path=D:\KuGou\
48 劲舞团、劲舞团、李孝利 - 2008版韩服新歌.mp3
49 Path=D:\KuGou\
50 千与千寻 - 那个夏天.mp3
51 Path=D:\KuGou\
52 卢巧音、王力宏 - 分手快乐.mp3
53 Path=D:\KuGou\
54 后舍男生 - As Long As You Love Me.mp3
55 Path=D:\KuGou\
56 周杰伦 - 最后的战役.mp3
57 Path=D:\KuGou\
58 周杰伦 - 甜甜的.mp3
59 Path=D:\KuGou\
60 周杰伦 - 简单爱.mp3
61 Path=D:\KuGou\
62 周杰伦 - 给我一首歌的时间.mp3
63 Path=D:\KuGou\
64 周杰伦 - 阳光宅男.mp3
介于此,第一个问题得到了很好的解决! 然后可以结合数据库什么的就可以去做很多的事情了。
No 2 . 如何实现下载问题 ? 也就是将服务器的文件,下载到客户端。 首先分析,服务器和客户端所在的区域不同,对于服务器而言可能是大型或者说是分布式的服务器组件
其结构为:
而且,当我们需要保护自己的资源,就是外界可以下载资源,却无法访问资源所在位置。这样我们运用分派action可以实现,具体的代码如下:
/*关于xml的配置,遵循struts.conf配置文件 */
1 /*
2 * Generated by MyEclipse Struts
3 * Template path: templates/java/JavaClass.vtl
4 */
5 package com.Hbut.Music.struts.action;
6
7 import java.io.File;
8 import java.io.FileInputStream;
9 import java.io.FileNotFoundException;
10 import java.io.FileOutputStream;
11 import java.io.IOException;
12 import java.io.InputStream;
13 import java.io.UnsupportedEncodingException;
14 import java.util.List;
15
16 import javax.servlet.ServletOutputStream;
17 import javax.servlet.http.HttpServletRequest;
18 import javax.servlet.http.HttpServletResponse;
19 import org.apache.struts.action.ActionForm;
20 import org.apache.struts.action.ActionForward;
21 import org.apache.struts.action.ActionMapping;
22 import org.apache.struts.actions.DispatchAction;
23
24 import com.Hbut.Music.Util.SQLHelp;
25
26 /**
27 * MyEclipse Struts
28 * Creation date: 06-01-2015
29 *
30 * XDoclet definition:
31 * @struts.action parameter="Gxjun" validate="true"
32 * @struts.action-forward name="err" path="/404_2.jsp"
33 * @struts.action-forward name="ok" path="/WEB-INF/list.jsp"
34 */
35 public class ForListAction extends DispatchAction {
36 /*
37 * Generated Methods
38 */
39
40 /**
41 * Method execute
42 * @param mapping
43 * @param form
44 * @param request
45 * @param response
46 * @return ActionForward
47 */
48 public ActionForward Main(ActionMapping mapping, ActionForm form,
49 HttpServletRequest request, HttpServletResponse response) {
50 // TODO Auto-generated method stub
51 try {
52 request.setCharacterEncoding("utf-8");
53 response.setCharacterEncoding("utf-8");
54 } catch (UnsupportedEncodingException e) {
55 // TODO Auto-generated catch block
56 e.printStackTrace();
57 }
58 String req = (String)request.getParameter("FilePath");
59 System.out.println(req);
60 FileInputStream fin=null;
61 try {
62 fin= new FileInputStream(new File(req));
63 } catch (FileNotFoundException e) {
64 // TODO Auto-generated catch block
65 //e.printStackTrace();
66 }
67 //设置输出格式
68 response.reset();
69 response.setContentType("MP3");
70 String []ss=req.split("\\\\");
71 response.addHeader("Content-Disposition", "attachment; filename=\"" +ss[ss.length-1]);
72 byte[] str = new byte[1024];
73 int len =0;
74 try {
75 ServletOutputStream opu =response.getOutputStream();
76 while((len=fin.read(str))>0){
77 opu.write(str, 0, len);
78 }
79 } catch (IOException e) {
80 // TODO Auto-generated catch block
81 e.printStackTrace();
82 }finally{
83
84 try {
85 if(fin!=null) fin.close();
86
87 } catch (IOException e) {
88 // TODO Auto-generated catch block
89 e.printStackTrace();
90 }
91 }
92
93 SQLHelp sql = new SQLHelp();
94 String hql =" from music";
95 List<Object> list=null;
96 list=sql.DataQuery(hql, null);
97 /*for(int i=0 ; i<list.size(); i++){
98 System.out.println(((music)list.get(i)).getName());
99 }*/
100 request.setAttribute("File_List",list);
101
102 return mapping.findForward("ok");
103 }
104 }
对于jsp文件页面,源码如下:
1 <div class ="nav_mid_right">
2 <form action="" method="post">
3 <input type="text" class="search_text"/>
4 </form>
5 </div>
6 </div><!--nav_mid结束-->
7 <div class="nav_right"></div>
8 </div><!--nav结束-->
9
10 <div class="ad" id="picBox" style="height:400px">
11 <img src="images/ad.jpg" />
12 </div> <!--ad结束-->
13
14 <div class="list_main">
15
16 <div class="list_box">
17 <%
18 List<music> lis = (List<music>) request.getAttribute("File_List");
19
20 %>
21 <table cellpadding="0" cellspacing="0" width="100%" id="ul">
22 <%
23 if(lis!=null){
24 for(int i=0;i<lis.size() ;i++){
25 %>
26 <tr height="10"></tr>
27 <tr height="25" title=<%=lis.get(i).getName()%> onmouseover="this.className = 'hover'" onmouseout="this.className = ''" onclick="play(false,this);sdnClick(12164)">
28 <td align="center"></td>
29 <!-- 名次 -->
30 <td align="center"><%=lis.get(i).getNo()%></td>
31
32 <td class="t"><span><a href="forList.do?Gxjun=Main&FilePath=<%=lis.get(i).getPath()+"\\"+lis.get(i).getName()%>"><%=lis.get(i).getName()%></a></span></td>
33 <!-- 上榜天数 -->
34 <td align="center"><%=lis.get(i).getDate() %></td>
35 <!-- 昨天排行 -->
36 <td align="center">0</td>
37 <!-- 最高排行 -->
38 <td align="center"></td>
39 </tr>
40 <% } } %>
41 </table>
42 <div class="page">
43 <a href="#">首页</a><a href="#"><</a><a href="#">1</a><a href="#">2</a><a href="#">3</a><a href="#">...</a><a href="#">></a><a href="#">末页</a>
44 </div>
45 </div>
46 <!--news_list结束-->
47 </div>
48 <!--list_box结束-->
49 </div>
50 <!--list_main结束-->
No3 .分页技术,之前已经有总结:
之前总结的的链接: http://www.cnblogs.com/gongxijun/p/4210250.html
但是这次是采取*.do?gxjun=***&par=12 ; 这种get方式传输....
所以,在编写过程原道过乱码,被折腾的要死要活,死去活来之后,最后在网上搜到了一篇机智网友的做法,加了过滤器Filter文件之后(当然现在才知道,这货只对
post传输有效,对于get并没有卵用。 然后就去改了下tomcat 下面的 server.xml 将其编码格式改为utf-8)
关于Filter 文件 :
1 /**
2 *
3 */
4 package com.Hbut.Music.struts.Filter;
5
6 import java.io.IOException;
7
8 import javax.servlet.Filter;
9 import javax.servlet.FilterChain;
10 import javax.servlet.FilterConfig;
11 import javax.servlet.ServletException;
12 import javax.servlet.ServletRequest;
13 import javax.servlet.ServletResponse;
14 import javax.servlet.http.HttpServlet;
15
16 /**
17 * @author Administrator
18 * 过滤器
19 */
20 public class InfoFilter extends HttpServlet implements Filter {
21
22 /* (non-Javadoc)
23 * @see javax.servlet.Filter#doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse, javax.servlet.FilterChain)
24 */
25 @Override
26 public void doFilter(ServletRequest arg0, ServletResponse arg1,
27 FilterChain arg2) throws IOException, ServletException {
28 // TODO Auto-generated method stub
29 arg0.setCharacterEncoding("utf-8");
30 arg2.doFilter(arg0, arg1);
31 }
32
33 /* (non-Javadoc)
34 * @see javax.servlet.Filter#init(javax.servlet.FilterConfig)
35 */
36 @Override
37 public void init(FilterConfig arg0) throws ServletException {
38 // TODO Auto-generated method stub
39
40 }
41
42 }
将这个写成这样,然后去web.xml文件下配置一番就OK了!
大体是这样配置:
1 <?xml version="1.0" encoding="UTF-8"?>
2 <web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="3.0" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
3 <display-name />
4 <servlet>
5 <servlet-name>action</servlet-name>
6 <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
7 <init-param>
8 <param-name>config</param-name>
9 <param-value>/WEB-INF/struts-config.xml</param-value>
10 </init-param>
11 <init-param>
12 <param-name>debug</param-name>
13 <param-value>3</param-value>
14 </init-param>
15 <init-param>
16 <param-name>detail</param-name>
17 <param-value>3</param-value>
18 </init-param>
19 <load-on-startup>0</load-on-startup>
20 </servlet>
21 <filter>
22 <filter-name>InfoFilter</filter-name>
23 <filter-class>com.Hbut.Music.struts.Filter.InfoFilter</filter-class>
24 </filter>
25
26 <servlet-mapping>
27 <servlet-name>action</servlet-name>
28 <url-pattern>*.do</url-pattern>
29 </servlet-mapping>
30 <filter-mapping>
31 <filter-name>InfoFilter</filter-name>
32 <url-pattern>/*</url-pattern>
33 </filter-mapping>
34 <welcome-file-list>
35 <welcome-file>index.jsp</welcome-file>
36 </welcome-file-list>
37 </web-app>
关于server.xml文件的格式,改成这样就可了!
1 <!-- A "Connector" represents an endpoint by which requests are received
2 and responses are returned. Documentation at :
3 Java HTTP Connector: /docs/config/http.html (blocking & non-blocking)
4 Java AJP Connector: /docs/config/ajp.html
5 APR (HTTP/AJP) Connector: /docs/apr.html
6 Define a non-SSL HTTP/1.1 Connector on port 8080
7 -->
8 <Connector URIEncoding="utf-8"
9 port="8080" protocol="HTTP/1.1"
10 connectionTimeout="20000"
11 redirectPort="8443" />
12 <!-- A "Connector" using the shared thread pool-->