HighLight.java import java.io.bufferedreader; import java.io.file; import java.io.fileinputstream; import java.io.ioexception; import java.io.inputstr

Similar documents
2 GET POST Servlet Servlet Servlet CGI/Servlet GET POST 2 GET URL? FORM GET : POST HT

II 2 p.2 2 GET POST form action URL Aisatsu 2.1 Servlet GET GET : Query String QueryStringTest.java 1 import java.io.ioexception; 2 import java.io.pri

GET Servlet URL? Query String Servlet print Query String Servlet doget 1 HttpServletRequest getqueryst

II 1 p.1 1 Servlet 1.1 Web Web WWW HTML CGI Common Gateway Interface Web HTML Web Web CGI CGI CGI Perl, PHP C JavaScript Web CGI HTML 1.2 Servlet Java

Web 1 p.2 1 Servlet Servlet Web Web Web Apache Web Servlet JSP Web Apache Tomcat Jetty Apache Tomcat, Jetty Java JDK, Eclipse

HTML Java Tips dp8t-asm/java/tips/ Apache Tomcat Java if else f

HTML Java Tips dp8t-asm/java/tips/ Apache Tomcat Java if else f

PowerPoint プレゼンテーション

Servlet JSP JSP Servlet/JSP における 日 本 語 の 処 理 - 1

Web JavaScript Java Applet Flash ActionScript CGI (C, perl, ruby ) PHP Servlet, JSP (JavaServer Pages) ASP 7-2

メディプロ1 Javaサーブレット補足資料.ppt

Microsoft PowerPoint - Lecture_3

B2-Servlet-0112.PDF

Microsoft PowerPoint - Lecture_2

Java (9) 1 Lesson Java System.out.println() 1 Java API 1 Java Java 1

オブジェクト指向プログラミング・同演習 5月21日演習課題

Web Servlet/JSP JSP

HTML/JSP/Servlet... 7 JSP... 7 Servlet Struts Struts Struts FormBean LoginForm

スライド 1

Oracle9iAS Containers for J2EEチュートリアル

Part1 159 a a


hands_on_4.PDF

6 2 1

日 力力 生 行行 入 入 力力 生 用 方

55 7 Java C Java TCP/IP TCP/IP TCP TCP_RO.java import java.net.*; import java.io.*; public class TCP_RO { public static void main(string[] a

データ構造とアルゴリズム論

Applet java.lang.object java.awt.component java.awt.container java.awt.panel java.applet.applet

~/WWW-local/compIID (WWW IID ) $ mkdir WWW-local $ cd WWW-local $ mkdir compiid 3. Emacs index.html n (a) $ cd ~/WWW/compIID

K227 Java 2

WAS V8.5.5 SAML認証構成ガイド - Liberty Profile編


ii II Web Web HTML CSS PHP MySQL Web Web CSS JavaScript Web SQL Web

1: Preference Display 1 package sample. pref ; 2 3 import android. app. Activity ; 4 import android. content. Intent ; 5 import android. content. Shar

サーブレット (Servlet) とは Web サーバ側で動作する Java プログラム 通常はapache 等のバックグラウンドで動作する Servletコンテナ上にアプリケーションを配置 代表的な Servlet コンテナ Apache Tomcat WebLogic WebSphere Gla

JavaScript の使い方

intra-mart im-J2EE Framework

intra-mart WebPlatform/AppFramework

java_servlet2_見本


untitled

新・明解Java入門

インターネットマガジン2001年4月号―INTERNET magazine No.75

Java演習(4) -- 変数と型 --

PowerPoint プレゼンテーション

r1.dvi

intra-mart Accel Platform — イベントナビゲータ 開発ガイド   初版  

(Java/FX ) Java CD Java version Java VC++ Python Ruby Java Java Eclipse Java Java 3 Java for Everyone 2 10 Java Midi Java JavaFX Shape Canvas C

HTML web HTML HTML

--- サーバ側処理 Java servlet の例 // 通常の Java servlet での POST で受信と同じ protected void dopost(httpservletrequest request, HttpServletResponse response) throws S

データ構造とアルゴリズム論

オンラインテスト

I. EspressReport 100%Java JSP API II. EspressReport Report Designer Report Designer - Report Designer Web Java Web Web Report Designer import java.awt

untitled

Exam : 1z1-809-JPN Title : Java SE 8 Programmer II Vendor : Oracle Version : DEMO Get Latest & Valid 1z1-809-JPN Exam's Question and Answers 1 from Ac

class IntCell { private int value ; int getvalue() {return value; private IntCell next; IntCell next() {return next; IntCell(int value) {this.value =


Transcription:

2 GET POST Servlet Servlet Servlet CGI/Servlet GET POST 2 GET URL? FORM GET : http://maps.google.co.jp/maps?hl=ja&ll=34.292821,134.063587&z=15 POST HTML HTML : Aisatsu.html HTML <form action= Aisatsu method= post > <br/> <input type= text size= 10 name= family /> <input type= text size= 10 name= given /> <br/> <input type= submit value= /> </form> form action URL Aisatsu 2.1 Servlet GET GET : Servlet HighLight.java II 2 p.1

HighLight.java import java.io.bufferedreader; import java.io.file; import java.io.fileinputstream; import java.io.ioexception; import java.io.inputstreamreader; import java.io.printwriter; import javax.servlet.http.httpservlet; import javax.servlet.http.httpservletrequest; import javax.servlet.http.httpservletresponse; public class HighLight extends HttpServlet { @Override public void doget(httpservletrequest request, HttpServletResponse response) throws IOException { response.setcontenttype("text/html; charset=windows-31j"); PrintWriter out = response.getwriter(); out.println("<html><head></head><body><pre>"); // Java HighLight.java // WEB Tekito.java File f = new File(getServletContext().getRealPath("/Tekito.java")); String word = request.getquerystring(); InputStreamReader fr = new InputStreamReader (new FileInputStream(f), "Windows-31J"); BufferedReader in = new BufferedReader(fr); while(true) { String line = in.readline(); if (line==null) break; line = line.replace("&", "&"); line = line.replace("<", "<") line = line.replace(">", ">"); if (word!=null && word.length()!=0) { line = line.replace(word, "<font color= red >"+word+"</font>"); out.println(line); out.println("</pre></body></html>"); out.close(); GET Servlet URL? Query String Servlet http://localhost:8080/softengenshu/highlight?print print Query String Servlet doget 1 HttpServletRequest getquerystring() String word = request.getquerystring(); URL? word II 2 p.2

line = line.replace(word, "<font color= red >"+word+"</font>"); replace < > HTML line = line.replace("&", "&"); line = line.replace("<", "<"); line = line.replace(">", ">"); <, > HighLight.java http://localhost:8080/softengenshu/highlight?print print 2.1.1 MyCalerdar?200804 2008 4 Servlet : y m d java.util.calendar Zellar static int Zellar(int y, int m, int d) { // 0 1... 6 if (m<3) { // 1 2 13 14 y--; m+=12; return (y + y/4 - y/100 + y/400 + (13*m+8)/5 + d) % 7; 2.1.2 images 1.png, 2.png,... Servlet SlideShow.java : request.getquerystring() null 1.png n HTML <html><head><title> n </title></head><body> <div align= center > <img src= images/n.png /><hr/> <a href= SlideShow?n-1 > </a> <a href= SlideShow?n+1 > </a> </div> </body></html> SlideShow II 2 p.3

2.2 HTML Form <form... > </form> <input... > <form action= URI method= post > </form> URI CGI Servlet URI method= post method= get URI? GET CGI/Servlet GET POST <input type= text size= n name= namae /> n namae type= text type= password * <input type= checkbox name= namae value= str /> str CGI/Servlet value on checked <input type= radio name= namae value= str /> namae str CGI/Servlet checked <input type= hidden name= namae value= str /> hidden CGI/Servlet <input type= submit value= str /> CGI/Servlet str <input type= reset value= str /> str <textarea cols= haba rows= takasa name= namae > </textarea> haba takasa II 2 p.4

2.3 Servlet POST POST Servlet doget dopost Servlet dopost name 1 =value 1 &name 2 =value 2 &... &name n =value n name 1, name 2,... input textarea name value 1, value 2,... value value Servlet dopost 1 HttpServletRequest getparameter getparameter name getparameter value : Aisatsu.html Servlet Aisatsu.html Aisatsu.html Aisatsu.java import java.io.ioexception; import java.io.printwriter; import javax.servlet.http.httpservlet; import javax.servlet.http.httpservletrequest; import javax.servlet.http.httpservletresponse; public class Aisatsu extends HttpServlet { @Override public void dopost(httpservletrequest request, HttpServletResponse response) throws IOException { response.setcontenttype("text/html; charset=windows-31j"); PrintWriter out = response.getwriter(); out.println("<html><head></head><body>"); request.setcharacterencoding("windows-31j"); String family = request.getparameter("family"); String given = request.getparameter("given"); out.printf(",%s %s!%n", family, given); out.println("</body></html>"); out.close(); %8D%81%90%EC%91%E5%8Aw Windows-31J request.setcharacterencoding("windows-31j"); II 2 p.5

setcharacterencoding 1 Windows- 31J JISAutoDetect Shift JIS, EUC-JP, ISO-2022-JP 2.3.1 Servlet HTML Servlet 2.3.2 HighLight Servlet : Web HTML Servlet HTML GuestBook.html <html><head> <meta http-equiv= Content-Type content= text/html; charset=windows-31j > <title> </title></head> <body> <form action= GuestBook method= post > <br/> <table> <tr><td> :</td><td><input type= text size= 30 name= ></td></tr> <tr><td> :</td> <td><input type= text size= 30 name= ></td></tr> <tr><td> :</td> <td><input type= text size= 30 name= ></td></tr> <tr><td> </td> <td><textarea name= rows= 5 cols= 30 ></textarea></td> </table> <input type= submit value= ><input type= reset value= > </form> </body></html> 1 HTML Aisatsu.html II 2 p.6

Servlet Guests.html tmp.html tmp.html Guests.html Guests.html /WEB-INF Guests.html <?xml version="1.0" encoding="windows-31j"?> <html> <head><title> </title></head> <body> <h1 align="center"> </h1> <br/> <hr/> </body> </html> GuestBook.java 1 import java.io.bufferedreader; import java.io.file; import java.io.fileinputstream; import java.io.filenotfoundexception; import java.io.fileoutputstream; import java.io.ioexception; import java.io.inputstreamreader; import java.io.outputstreamwriter; import java.io.printwriter; import javax.servlet.servletexception; import javax.servlet.http.httpservlet; import javax.servlet.http.httpservletrequest; import javax.servlet.http.httpservletresponse; public class GuestBook extends HttpServlet { 2 Guests.html, tmp.html 2 </body> Guests.html tmp.html II 2 p.7

GuestBook.java 2 @Override public void dopost(httpservletrequest request, HttpServletResponse response) throws IOException { request.setcharacterencoding("windows-31j"); File tmp = new File(getServletContext().getRealPath("/WEB-INF/tmp.html")); PrintWriter fout = new PrintWriter (new OutputStreamWriter(new FileOutputStream(tmp), "Windows-31J")); File f = new File(getServletContext().getRealPath("/WEB-INF/Guests.html")); try { BufferedReader fin = new BufferedReader (new InputStreamReader(new FileInputStream(f), "Windows-31J")); String line; while (true) { line = fin.readline(); if (line==null) { fout.println("<!-- : Guests.html -->"); line="</body>"; break; if (line.contains("</body>")) break; fout.println(line); 3 GuestBook.java 3 fout.println("<table border>"); fout.printf("<tr><td> </td><td>%s</td></tr>%n", request.getparameter(" ")); fout.printf("<tr><td> </td><td>%s</td></tr>%n", request.getparameter(" ")); fout.printf("<tr><td> </td><td>%s</td></tr>%n", request.getparameter(" ")); fout.printf("<tr><td> </td><td>%s</td></tr>%n", request.getparameter(" ")); fout.println("</table>"); fout.println("<hr/>"); 4 line 2 </body> Guests.html tmp.html close() GuestBook.java 4 fout.println(line); while (true) { line = fin.readline(); if (line==null) break; fout.println(line); fin.close(); fout.close(); catch (FileNotFoundException e) { outputerror(response, e); return; 5 Guests.html tmp.html Guests.html II 2 p.8

GuestBook.java 5 f.delete(); tmp.renameto(f); 6 Guest.html ServletContext getrequestdispatcher RequestDispatcher / Web RequestDispatcher request response forward WEB-INF forward include GuestBook.java 6 try { getservletcontext().getrequestdispatcher("/web-inf/guests.html").forward(request, response); catch (ServletException e) { outputerror(response, e); return; private void outputerror(httpservletresponse response, Exception e) throws IOException { response.setcontenttype("text/html; charset=windows-31j"); PrintWriter out = response.getwriter(); out.println("<html><body><pre>"); e.printstacktrace(out); out.println("</pre></body></html>"); 2.3.3 Servlet 4 Servlet Diary.java II 2 p.9

2.3.4 Servlet 2.4 : DOM Guests.html HTML XML XML DOM Document Object Model DOM Java javax.xml.parsers javax.xml.transform org.w3c.dom API GuestBookDom.java import import java.io.fileoutputstream; import java.io.filereader; import java.io.ioexception; import java.io.outputstream; import java.io.printwriter; import java.util.enumeration; import javax.servlet.http.httpservlet; import javax.servlet.http.httpservletrequest; import javax.servlet.http.httpservletresponse; import javax.xml.parsers.documentbuilder; import javax.xml.parsers.documentbuilderfactory; import javax.xml.transform.outputkeys; import javax.xml.transform.transformer; import javax.xml.transform.transformerfactory; import javax.xml.transform.dom.domsource; import javax.xml.transform.stream.streamresult; import org.w3c.dom.document; import org.w3c.dom.element; public class GuestBookDom extends HttpServlet { II 2 p.10

GuestBookDom.java private static Element createtablefromkeys(httpservletrequest request, Document doc, Enumeration keys) { Element tbl = doc.createelement("table"); tbl.setattribute("border", "1"); tbl.appendchild(doc.createtextnode("y=n")); while (keys.hasmoreelements()) { Element row = doc.createelement("tr"); Element td1 = doc.createelement("td"); String left = (String)keys.nextElement(); td1.settextcontent(left); row.appendchild(td1); Element td2 = doc.createelement("td"); td2.settextcontent(request.getparameter(left)); row.appendchild(td2); tbl.appendchild(row); tbl.appendchild(doc.createtextnode("y=n")); return tbl; II 2 p.11

GuestBookDom.java dopost @Override public void dopost(httpservletrequest request, HttpServletResponse response) throws IOException { request.setcharacterencoding("windows-31j"); try { // String filename = getservletcontext().getrealpath("/web-inf/guests.html"); DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); DocumentBuilder db = dbf.newdocumentbuilder(); Document doc = db.parse(filename); // Element root = doc.getdocumentelement(); // root html Element body = (Element)root.getElementsByTagName("body").item(0); // body // table body.appendchild(createtablefromkeys(request, doc, request.getparameternames())); body.appendchild(doc.createtextnode("y=n")); body.appendchild(doc.createelement("hr")); body.appendchild(doc.createtextnode("y=n")); // TransformerFactory fac = TransformerFactory.newInstance(); Transformer tran = fac.newtransformer(); tran.setoutputproperty(outputkeys.encoding, "Shift_JIS"); // : Windows-31J OutputStream o = new FileOutputStream(filename); StreamResult result = new StreamResult(o); tran.transform(new DOMSource(doc.getDocumentElement()), result); o.close(); getservletcontext().getrequestdispatcher("/web-inf/guests.html").forward(request, response); catch (Exception e) { response.setcontenttype("text/html; charset=windows-31j"); PrintWriter out = response.getwriter(); out.println("<html><body><pre>"); e.printstacktrace(out); out.println("</pre></body></html>"); : GET, Query String, getparameter,, POST, dopost, setcharacterencoding, getrequestdispatcher, forward, DOM II 2 p.12