亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Servlet 無法向jsp輸出HashMap鍵:

Servlet 無法向jsp輸出HashMap鍵:

qq_遁去的一_1 2022-06-08 17:21:32
我有一個TranslateServlet需要一些文本,創建一個Cracker類的實例并調用一個getCrackedResult返回HashMap鍵和值的方法:public class TranslateServlet extends HttpServlet {    public static void main(String[] args) {        Cracker cracker = new Cracker("German", "English");        HashMap<String, ArrayList<Cracker.EntrySet<String, ArrayList<String>>>> crackedResults =                cracker.getCrackedResult("Ich bin");        for (String category: crackedResults.keySet())  {            System.out.print(category);  //works fine        }    }    public void doPost(HttpServletRequest request, HttpServletResponse response)            throws IOException, ServletException {        Cracker cracker = new Cracker("German", "English");        HashMap<String, ArrayList<Cracker.EntrySet<String, ArrayList<String>>>> crackedResults =                cracker.getCrackedResult("Ich bin");        for (String category: crackedResults.keySet())  {                response.getWriter().print(category);  //doesn't work        }        response.getWriter().print("DONE");  //works fine    }}但是,雖然迭代方法HashMap內部main工作正常,但嘗試通過方法獲取鍵值時doPost(),我只得到DONE輸出,沒有其他值。為什么??編輯: “不起作用”意味著不輸出類別。如果main方法輸出“Dog”、“Cat”,jsp頁面只輸出“Done”,而不是“Dog”、“Cat”、“Done”。我的問題有什么問題足以關閉它?也感謝匿名投票者。編輯:我檢查了tomcat的日志,java.io.FileNotFoundException: some_folder/some_file.bin每次調用servlet時都會出錯。我意識到該函數getCrackedResult使用了這樣的本地文件:InputStream inputPOS = new FileInputStream("some_folder/some_file.bin");我嘗試將文件移動到WEB-INF并更改文件路徑:InputStream inputPOS = new FileInputStream("WEB-INF/some_folder/some_file.bin");但我仍然得到例外:java.io.FileNotFoundException: WEB-INF/some_folder/some_file.bin.
查看完整描述

2 回答

?
嗶嗶one

TA貢獻1854條經驗 獲得超8個贊

解決方案:

請在正確的位置部署(?。?code>/WEB-INF/some_file/some.bin,然后您可以FileInputStream從 servlet 環境訪問它,例如:

java.io.InputStream inS = /*httpRequest.get*/servletContext
    .getResourceAsStream("/WEB-INF/some_file/some.bin");


查看完整回答
反對 回復 2022-06-08
?
夢里花落0921

TA貢獻1772條經驗 獲得超6個贊

現在,我設法修復它

InputStream inputPOS = Cracker.class.getClassLoader().getResourceAsStream("some_folder/some_file.bin");

解決方案并將some_folder/some_file.bin 兩者都放在里面

  1. Project Root/target/classes(這樣代碼就可以在 IDE 中運行)

  1. Project Root/WEB-INF/classes(以便該代碼在部署在 tomcat 上時可以工作)。


查看完整回答
反對 回復 2022-06-08
  • 2 回答
  • 0 關注
  • 127 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號