Чизҳои зеринро санҷед:
javax.servlet.* ворид кунед; javax.servlet.http.* ворид кунед; воридоти java.io.*; синфи public MessageServlet васеъ мекунад HttpServlet { public void doGet(HttpServletRequest req, HttpServletResponse res) мепартояд IOException, ServletException { // баровардани саҳифаи HTML res.setContentType("text/html"); // Параметри конфигуратсияро бор кунед (шумо бояд инро худатон танзим кунед) Стринг реша = getInitParameter("root"); // чоп баъзе html ServletOutputStream берун = res.getOutputStream (); берун. println(" "); out.println(" Паёми рӯз "); out.println(" Паёми имрӯза: "); // файли InputStream-ро дар = null чоп кунед; кӯшиш кунед { in = new BufferedInputStream (нав FileInputStream(root + "/message.txt") ); int ch; while ((ch = in.read()) != -1) {out.print((char)ch); } } ниҳоят {агар (дар != null) in.close(); // хеле муҳим } // тамом кардан out.println(" "); } }
[Эзоҳ: Ман ҳоло намунаи дар боло зикршударо бомуваффақият тартиб додам ва иҷро кардам. Шумо як манбаи корӣ пурсидед, шумо онро гирифтед :-)]
Шумо метавонед на танҳо нусхабардории файлро иҷро кунед; дар java.io бастаи синфҳое, ки ба коркарди файл кӯмак мекунанд, ба монанди StreamTokenizer.
Ба истифодаи InitParameter диққат диҳед, то реша дар системаи файлиро таъмин кунад. Ҳамин тариқ, сервлети шумо метавонад дар серверҳои дигар бидуни рамзгузории роҳи файл истифода шавад.
Инчунин, истифодаи а дар охир блокро барои пӯшидани файл. Бо ин роҳ, ҳатто агар хониш истисноро ба вуҷуд орад, файл баста мешавад. Ин дар сервер муҳим аст, зеро тавсифкунандагони файл маҳдуданд ва шумо намехоҳед, ки ягон ихроҷ шавад, зеро сервер муддати хеле дароз кор хоҳад кард (умедворам!).
Ҳар вақте ки шумо ба захираҳои маҳаллӣ дастрасӣ доред, шумо бояд сӯрохиҳои амниятро ба назар гиред. Масалан, агар шумо дар асоси параметри FORM номи файл созед, шумо бояд онро тасдиқ кунед, то боварӣ ҳосил кунед, ки оё ҳакер ҳамчун номи корбарии худ, масалан, "/etc/passwd" -ро мефиристад, вай аслан системаро дарёфт намекунад. файли парол.







