我剛到這家公司上班兩個月,正在跟進一個專案的小升級,這兩天遇上了這個問題,百度了兩天都沒頭緒,請大家幫忙看看:
一、首先,如果程式正常運行的話流程是這樣的:
(圖1)然后就會彈出如下頁面:

這是在其他機器的服務器上正常運行時的情況,可是相同的代碼到了我的機器上就變成:
一、點擊同一個鏈接:

二、可是在我這里卻沒有顯示預期的網頁內容,反而是提示下載檔案!

網上找了兩天,基本上都說是jsp檔案中<%@page contentType=*****%>內的代碼有誤,我已經仔細檢查過,我的程式的<%@page contentType=*****%>內的代碼沒有錯誤,而且關鍵是一樣的代碼在公司其他機器上正常運行,就到了我這有問題,覺得不是代碼有誤,而是我的運行環境,現在我的猜想是最有可能是服務器"tomcat",其次是IDE:"eclipse"的配置出問題,但水平有限,弄了兩天都沒有解決,請大家幫忙看看,急啊

uj5u.com熱心網友回復:
tomcat下編譯的編譯的檔案清理掉,重新部署一下uj5u.com熱心網友回復:
哦,謝謝,我是新手,而且,我的這個專案是從'cvs'匯入的,麻煩具體說一下怎么把“tomcat下編譯的編譯的檔案清理掉”?uj5u.com熱心網友回復:
自己頂一下帖子不要沉了。
uj5u.com熱心網友回復:
這是兩回事. CVS是版本控制工具, 是控制代碼版本的.
你在本地跑這個 要再啟一個tomcat服務器的吧.
uj5u.com熱心網友回復:
是的,我是在本地的tomcat上運行的,請問我的問題該怎么解決?就是我在本帖一樓上所說的:一樣的代碼在其他同事的機器上運行正常,但在我的機器上訪問某些jsp頁面時沒有顯示預期的頁面內容,反而彈出個“下載提示”出來了?
uj5u.com熱心網友回復:
tomcat下編譯的編譯的檔案清理掉,重新部署一下
請問“tomcat下編譯的編譯的檔案清理掉”,這個該怎么操作,是在eclipse中操作還是直接手動找到對應檔案夾收到洗掉已編譯的檔案?
uj5u.com熱心網友回復:
tomcat/webapps檔案夾下把你的專案那個檔案夾直接洗掉uj5u.com熱心網友回復:
tomcat下編譯的編譯的檔案清理掉,重新部署一下
請問“tomcat下編譯的編譯的檔案清理掉”,這個該怎么操作,是在eclipse中操作還是直接手動找到對應檔案夾收到洗掉已編譯的檔案?
是的,webapps下對應的專案命名的檔案夾洗掉,重新部署一下
uj5u.com熱心網友回復:
自己頂一下,帖子不要沉uj5u.com熱心網友回復:
再頂,不要沉uj5u.com熱心網友回復:
js寫的有問題吧uj5u.com熱心網友回復:
看看是不是jsp檔案的<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">的問題,這個設定不對的話瀏覽器就不會按html的方式來決議檔案uj5u.com熱心網友回復:
看看是不是jsp檔案的<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">的問題,這個設定不對的話瀏覽器就不會按html的方式來決議檔案
這個解決方法我在百度上看過,我仔細看了一遍jsp檔案代碼,沒有不妥。另外,我想應該不是專案里jsp檔案問題,因為假如是的話,那么在我的機器上通過ip訪問其他同事機器上相同代碼的專案時,應該也會出現一樣的問題,但結果卻是訪問他們機器上的同樣代碼的頁面時,卻能正常運行,所以我想應該是我的運行環境,尤其是tomcat的配置有問題,但奈于我是新手,具體是什么原因沒有找到,百度也沒有找到解決方法。
uj5u.com熱心網友回復:
昨天發現如果把包含進去的一個"jsp"檔案中的一段<%!%>"scriptlet"去掉就不會再出現彈出下載提示框了,不過就像上文說的在同事的其他機器上就算不去掉該段"scriptlet"還是可以正常運行。刪掉的"scriptlet"如下:public String java2Html(String target)
{
if (target == null){
return target;
}
target = target.trim();
StringBuffer stringbuffer = new StringBuffer();
int j = target.length();
for (int i = 0; i < j; i++)
{
char c = target.charAt(i);
switch (c)
{
case 60:
stringbuffer.append("<");
break;
case 62:
stringbuffer.append(">");
break;
case 38:
stringbuffer.append("&");
break;
case 34:
stringbuffer.append(""");
break;
case 169:
stringbuffer.append("©");
break;
case 174:
stringbuffer.append("®");
break;
case 165:
stringbuffer.append("¥");
break;
case 8364:
stringbuffer.append("€");
break;
case 8482:
stringbuffer.append("™");
break;
case 13:
if (i < j - 1 && target.charAt(i + 1) == 10)
{
stringbuffer.append("<br>");
i++;
}
break;
case 32:
/*
if (i < j - 1 && target.charAt(i + 1) == ' ')
{
stringbuffer.append(" ");
i++;
break;
}
*/
default:
stringbuffer.append(c);
break;
}
}
return new String(stringbuffer.toString());
}
public String java2Js(String input) {
if (input == null) {
return input;
}
StringBuffer filtered = new StringBuffer(input.length());
char prevChar = '\u0000';
char c;
for (int i = 0; i < input.length(); i++) {
c = input.charAt(i);
if (c == '"') {
filtered.append("\\\"");
} else if (c == '\'') {
filtered.append("\\'");
} else if (c == '\\') {
filtered.append("\\\\");
} else if (c == '\t') {
filtered.append("\\t");
} else if (c == '\n') {
if (prevChar != '\r') {
filtered.append("\\n");
}
} else if (c == '\r') {
filtered.append("\\n");
} else if (c == '\f') {
filtered.append("\\f");
} else if (c == '/') {
filtered.append("\\/");
} else {
filtered.append(c);
}
prevChar = c;
}
return filtered.toString();
}
uj5u.com熱心網友回復:
但是,雖然在我的機器上面刪掉了上面所說的那段代碼就不彈出下載提示框了,但是這段代碼是業務邏輯的一部分,是不能刪的,其他同事的專案里有這段代碼也能正常運行而不彈出下載提示框。這里把這個代碼提出來,是想請大家幫忙看看有沒有什么線索,找出我的機器上的tomcat的問題。uj5u.com熱心網友回復:
我也遇到了同樣的問題關于網上是說jsp檔案中<%@page contentType=*****%>有誤,我的跟這個沒關系!沒有犯這個低級錯誤.到底哪里錯了呢uj5u.com熱心網友回復:
專案添加一下tomcat的jar包就完事了uj5u.com熱心網友回復:
add library server runtimeuj5u.com熱心網友回復:
大哥最后解決了嗎?轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/195422.html
標籤:Web 開發
