- 1、為什麼我的html連接到jsp顯示的是jsp代碼而不是頁面
- 2、使用電腦上的絕對路徑打開jsp文件時,為什麼顯示的是源代碼?
- 3、已經啟動了tomcat,JSP文件也放在webapps下,但是用瀏覽器打開jsp文件顯示的只是源代碼。怎麼做。
- 4、jsp頁面跳轉代碼
- 5、idea 運行JSP後顯示源代碼是什麼情況
- 6、jsp跳轉到servlet時,不能顯示servlet中內容,而是源代碼
說說我的看法。
首先,我也遇到了和你類似的情況。其次,我檢查後發現jsp的代碼和html的代碼都沒有問題。但為什麼會出現這樣的問題呢?原因就在於我用eclipse來運行html文件是選用打開方式中的web瀏覽器,也就是下圖被選中的部分:
事實上,如果選擇這種方式來打開html文件(它裡面有一個表單,單擊提交按鈕後,會將輸入框裡面的內容傳給jsp文件,並在jsp文件中顯示出來),那麼點擊提交按鈕後就會得到jsp文件的代碼。
但是如果你選擇如下圖被選中的打開方式:
那麼用這種方式打開html文件並跳轉到jsp文件後,顯示的就不會是jsp的源代碼了,而是實際上這段代碼將要輸出的內容。
先給你看下JSP的編譯過程:
1.客戶端發送請求給web容器
2.web容器將jsp首先轉譯成servlet源代碼
3.web容器將servlet源代碼編譯成.class 文件
4.web容器執行.class 文件
5.web容器將結果響應給客戶端
看明白了嗎,JSP並不是瀏覽器能直接解析JSP的。如果你想看這個JSP就要通過web容器,比如tomcat。
比如Myeclipse可以直接用它自帶的插件部署,一鍵將你web工程下對應的文件部署到tomcat伺服器目錄下,然後在瀏覽器中用localhost訪問,或者自己手動部署,網上資料很多的,對應文件夾下放什麼東西,放好後一樣紅localhost訪問
tomcat,瀏覽器\源代碼\jsp,webapps
比如Myeclipse可以直接用它自帶的插件部署,一鍵將你web工程下對應的文件部署到tomcat伺服器目錄下,然後在瀏覽器中用localhost訪問,或者自己手動部署,網上資料很多的,對應文件夾下放什麼東西,放好後一樣紅localhost訪問
!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.0 Transitional//EN”
html
head
titleUntitled/title
/head
body
form action=”” id=”loginForm”
input type=”radio” name=”user” value=”0″ checked大學/input
input type=”radio” name=”user” value=”1″ 中學/input
input type=”radio” name=”user” value=”2″ 小學/input
input name=”button” type=”submit” value=”登陸” onClick=”checkInput();” /
/form
/body
script
function checkInput(){
var user = document.getElementsByName(“user”);
var form = document.getElementById(“loginForm”);
var value1 = 0;
for(var i=0;i user.length;i++){
if(user[i].checked)
{
value1 = user[i].value;
break;
}
}
if(value1 == 0){
form.action=”daxue.htm”;
}
if(value1==1){
form.action=”zhongxue.htm”;
}
if(value1==2){
form.action=”xiaoxue.htm”;
}
form.submit();
}
/script
/html
1.這種情況,應該是jsp的內容被當做文本直接顯示到了頁面上,一般在使用springMVC時可能出現這樣的問題,猜測可能使用了springMVC。
2.具體解決方案:
查找web.xml文件,並找到springMVC的相關配置
servlet-mapping
servlet-namespringMVC/servlet-name
url-pattern/*/url-pattern
/servlet-mapping
將上面的內容改為下面的即可 攔截是/ 而不是/*
servlet-mapping
servlet-namespringMVC/servlet-name
url-pattern//url-pattern
/servlet-mapping
原因:在這種情況向springMVC會把*.jsp,*.sql,*.txt都當做txt處理。結果就是直接在瀏覽器載入了jsp源碼。
前兩行可以合:resp.setCharacterEncoding(“text/html;charset=gbk”);
然後out.println打頁面的時候地一行改為:
out.println(“htmlhead/titleservlet/title/headbody”);
就可以了!
原創文章,作者:LPCXW,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/126639.html