2012-08-30 268 views
0

我正在通過google app engine tutorials如何在java中創建超鏈接?

我很新的谷歌應用程序引擎,Java和一般的網絡編程。所以我的問題是,在頁面的底部,它說添加一個鏈接,允許用戶註銷。到目前爲止,我有這樣的:

public void doGet(HttpServletRequest req, HttpServletResponse resp) 
     throws IOException { 
    UserService userService = UserServiceFactory.getUserService(); 
    User user = userService.getCurrentUser(); 

    if(user != null){ 
     resp.setContentType("text/plain"); 
     resp.getWriter().println("Hello, " + user.getNickname()); 

     String logoutLink = String.format("<a href=\"%s\">Click here to log out.</a>", 
      userService.createLogoutURL(req.getRequestURI())); 
     resp.getWriter().println(logoutLink); 
    }else { 
     resp.sendRedirect(userService.createLoginURL(req.getRequestURI())); 
    } 
} 

然而,而不是一個鏈接,滿弦被打印在屏幕上,包括標籤。當我查看頁面源時,我沒有任何標籤或任何其他網頁內容。我想這是有道理的,因爲我沒有做任何事情輸出任何。我只是做了一堆resp.GetWriter()。println()語句來輸出網頁的其餘部分,還是有一些我不知道的東西?

謝謝!

+1

resp.setContentType('text/plain')表示你想純文本,而不是HTML(帶有鏈接和其他標籤) – Thilo

回答

4

您需要將內容類型更改爲text/html而不是text/plain<a href鏈接是一個html elemt。然後,只有瀏覽器纔會將其重新鏈接爲鏈接。

+0

啊,這是有道理的。非常感謝! – ConditionRacer

+0

快速跟進的問題..爲了有一個完整的網頁與等,我需要輸出這一切手工或有一些網頁對象,我可以填寫和調用write()方法或東西? – ConditionRacer

+2

@ Justin984,你不需要像這樣在代碼中手工創建html。有很多框架可以爲你完成這項工作。例如,wicket和freemarker框架可以用來渲染html O/P爲你。 – UVM