iT邦幫忙

0

jsp 讀不到java 的 void func()

各位好:
想請教一下
以下是我java的程式

public class LoginServlet extends HttpServlet {
    public int show()
    {int a=1;
    return a;
    }
    public void show2()
    {System.out.println("hello");
    } 
}

以下是我jsp的程式

<html>
    <head></head>       
 <body></body>
<%
LoginServlet log=new LoginServlet();  
log.show2();
%>
</html>

想問在jsp程式的 log.show2();為何無法print 出 show2()的文字
謝謝

Luke iT邦新手 3 級 ‧ 2018-03-02 15:11:49 檢舉
為何無法print 出 show2()的文字

您要去哪印?

System.out.println("hello"); ==> 印在 console 端

您是要出現在網頁面上嗎?
神威 iT邦新手 3 級 ‧ 2018-03-02 15:14:13 檢舉
TWLuke大大
所以我不能印在前端嗎?
有其他方法嗎?謝謝

1 個回答

2
暐翰
iT邦大師 1 級 ‧ 2018-03-02 15:29:37
最佳解答

問題:

所以我不能印在前端嗎?
有其他方法嗎?謝謝

回答:

可以

------------JAVA部分---------------
public class LoginServlet  {
    public int show()
    {
    	int a=1;
    	return a;
    }
    public string show2()
    {
    	return "hello";
    } 
}

------------JSP部分---------------
<html>
	<head></head>       
	<body></body>
	<%
		LoginServlet log=new LoginServlet();  
	%>
	<%= log.show2() %>
</html>

補充:
1.System.out.println是輸出在Console
jsp <%="xxx"%> 才是輸出在網頁上

2.LoginServlet不要這樣用
HttpServlet用途是來做web請求跟回應的接口


問題:

我想問 public void show2()用void行不行....

回答:

可以,但會很奇怪
要改也是可以,要先依序了解以下知識

1 jsp 先轉成 java 再轉成 class檔案

2 jsp 會繼承 org.apache.jasper.runtime.HttpJspBase

看更多先前的回應...收起先前的回應...
神威 iT邦新手 3 級 ‧ 2018-03-02 15:44:28 檢舉

暐翰大大好:
我知道public string show2()或是public int show()
這樣是可以的
但我想問 public void show2()用void行不行....
謝謝

暐翰 iT邦大師 1 級 ‧ 2018-03-02 15:58:13 檢舉

cool3690
我等等寫一個完整範例給你
只是不建議

Luke iT邦新手 3 級 ‧ 2018-03-02 15:59:13 檢舉

/images/emoticon/emoticon46.gif
語法基礎

神威 iT邦新手 3 級 ‧ 2018-03-02 16:11:30 檢舉

了解了,謝謝大大

暐翰 iT邦大師 1 級 ‧ 2018-03-02 16:24:33 檢舉

1 jsp 先轉成 java 再轉成 class檔案

2 jsp out物件的類別是JspWriter

3.可以看出jsp底層也是這樣寫的
會去呼叫_jspService方法
然後依靠JspWriter來渲染網頁

總結範例

public class LoginServlet  {
    public int show()
    {
    	int a=1;
    	return a;
    }
    public void show2(JspWriter out)
    {
        out.print("hello");
    } 
}

<html>
	<head></head>       
	<body></body>
	<%
		LoginServlet log=new LoginServlet();  
	%>
	<% log.show2(out); %>
</html>

我要發表回答

立即登入回答