.jsp練習01
http://tomcat.apache.orgファイルのダウンロードと解凍
->サーバがオープンしたら、x連動を再インストールするだけです.
->Oracleとポート番号が同じ場合、競合する可能性がありますので、番号を変更してください
(データベースポート番号=8080、サーバポート番号=8001を指定します)
タグの種類
スクリプトラベル:htmlに実行可能なjavaコードを挿入する
≪ディレクトリ・ラベル|Directory Label|ldap≫:どのように処理するかを設定します.
アクションラベル:クライアント/サーバのアクションコマンド
スクリプトタグ
: <% ... %> シェイプの使用
:jspコンテナはjavaコードとともにスクリプトタグを処理します.
残りはHTMLコードまたは純テキストとみなされます
:javaを使用してjspファイルを自動的に生成
種類
できあがった
<body>
<h2> Scripting tag </h2>
<!-- 스크립트 태그 세가지 -->
<!-- 1. 선언문 : 변수나 메소드 정의 -->
<%!
int count = 3, cnt = 0;
String name = "홍길동";
boolean ox = true;
String marketLower(String data) {
return data.toLowerCase();
}
%>
<!-- 2.스크립틀릿 : 자바 로직코드 작성, 자바 문법의 제어문 -->
<%
for(int i=0; i<=count; i++) {
cnt = cnt+i;
out.println("Java Server Pages " + cnt + " <br>");
}
%>
<!-- 표현문 : 호출 결과를 문자열 형태로 출력-->
<%= marketLower("HELLO World") %> <br>
<%= name + " " + ox %>
</body>
上にはこう書いてあります.実行時このように動作していることが確認できます.
そして.
...\Jsp_Study.metadata.plugins\org.eclipse.wst.server.core\tmp0\work\Catalina\localhost\JspBook\org\apache\jsp\Ch02...
->このようにパスに沿って歩き続けると、スクリプトタグを使用して作成されたコードが自動的に
...생략...
out.write("\t<!-- 스크립트 태그 세가지 -->\r\n");
out.write("\t<!-- 1. 선언문 : 변수나 메소드 정의 -->\r\n");
out.write("\t");
out.write("\r\n");
out.write("\t<!-- 2.스크립틀릿 : 자바 로직코드 작성, 자바 문법의 제어문 -->\r\n");
out.write("\t");
for(int i=0; i<=count; i++) {
cnt = cnt+i;
out.println("Java Server Pages " + cnt + " <br>");
}
out.write("\r\n");
out.write("\t<!-- 표현문 : 호출 결과를 문자열 형태로 출력-->\r\n");
...생략...
このまま.Javaに保存されている様子が見えます.なぜprintlnを出力で使用せずに<br>を使用するのか
上で使用したコードを見ると、出力時に
out.print(출력할 내용 + "<br>");
と同じ形状を使用しています.System.out.print
ではなくout.print
を使用します.out.println
と書いてもエラーは発生しませんが、println
の機能は完了しません.なにしろhtml形式で書かれているので、<%..%>中に書いても<br>
を使って改行してこそ、自分の意思で仕事ができる.実際の体験
1)printlnを使用する場合
<%
int sum = 0;
for(int i=0; i<=10; i++) {
out.println(i);
sum += i;
}
%>
<!-- 표현문 : 호출 결과를 문자열 형태로 출력 -->
<br> <p> 합계= <%= sum %> </p>
出力外観printlnの機能が正常に発揮されていないことがわかります.
2)
<br>
使用時 <h2> Scripting tag </h2>
<%
int sum = 0;
for(int i=0; i<=10; i++) {
out.print(i + "<br>");
sum += i;
}
%>
<!-- 표현문 : 호출 결과를 문자열 형태로 출력 -->
<br> <p> 합계= <%= sum %> </p>
出力外観Pageディレクトリラベル
Pageディレクトリラベル
:現在のjspページ情報を設定するタグ
:どこでも宣言できますが、普通は一番上に書いてあります.
:属性=language、contentType、pageEncode、import、session、buffer、autoFlush、iThreadSafe、info、errorPage、isErrorPage、isErrorPage、isScriptingEnable、isEUgnored
session:サーバ側ストレージ
Cookie:クライアントにデータを格納する
<%@ page contentType="text/html; charset=UTF-8"%>
<!-- contentType="text/html; charset=UTF-8" = contentType="text/html"; pageEncoding="UTF-8"-->
<%@ page import="java.util.*, java.io.*" %>
<%@ page session = "true"%>
<%@ page buffer="32kb" %>
<%@ page autoFlush="true" %>
<%@ page isThreadSafe = "true" %>
<!-- true=스레드처리 / false=순차처리 -->
<%@ page info = "이곳은 JSP 컨테이너에 대한 설명을 쓰는 곳" %>
エラーページを作成するための使用状況の表示1.現在のページでエラーが発生した場合は、特定のページ(error page.jsp)に移動します.
2.例外オブジェクトを使用した例外処理のページへのリンク
作成方法1
"error_page.jsp"
<!-- 에러가 발생하면 아래 페이지로 이동해라 -->
<%@ page errorPage="error_page_error.jsp" %>
<body>
<%
String str = null;
out.print(str.toString());%>
</body>
"error_page_error.jsp"
<body>
<h4> errorPage 디렉티브 테그 </h4>
문자열에 자료를 넣지 않아 에러가 발생했습니다
</body>
前述したように、これにより、対応するファイル(error page error.jsp)ファイルに移動し、作成した文が出力されたことを確認できます.
2つ目のメソッドの作成
"error_page.jsp"
<!-- 에러가 발생하면 아래 페이지로 이동해라 -->
<%@ page errorPage="page_isErrorPage_error.jsp" %>
<body>
<%
String str = null;
out.print(str.toString());%>
</body>
"page_isErrorPage_error.jsp"
<%@page import="java.io.PrintWriter"%>
<!-- isErrorPage 내장객체 사용 기본 값은 false 상태 -->
<%@ page isErrorPage = "true" %>
<body>
<h4> 에러가 발생했습니다 </h4>
<h5> exception 내장 객체로 에러 처리하기</h5>
<!-- isErrorpage가 false로 꺼져있다면 내장객체인 exception 을 사용할 수 없다 -->
<% exception.printStackTrace(new PrintWriter(out)); %>
</body>
作成順に設定した文が出力されると、組み込みオブジェクト出力エラーメッセージが表示されます.
义齿
:jspページの特定のドメインに外部ファイルの内容を含むタグ.
含めることができる外部ファイルタイプ=html、jsp、txt
宣言されていない特定の場所は、jspページの任意の場所で宣言できます.
<%@ include file = " " %>
など <%@ include file="menu.jsp" %>
<%! String greeting = "웹 쇼핑몰에 오신 것을 환영합니다";
String tagline = "Welcome to Market!"; %>
このように接続するとmenujspに接続すると、ファイルの内容が現在のページに露出し続けます.アクションタグ
:コマンドサーバまたはクライアントのアクションのタグ
:jspページでページからページの間を制御する
:他のページの実行結果を現在のページに含める
:JavaBeansなど、さまざまな機能を提供
:XML形式
:
送信
を選択します.
"forward.jsp 파일"
<h2> 액션 태그 </h2>
<!-- 연결 페이지로 보내버리고, 이 페이지는 출력 모양이 안나온다 -->
<jsp:forward page="forward_data.jsp" />
"forward_data.jsp 파일"
<body>
<h2> forward_data 파일 입니다 </h2>
<p> <%= (new java.util.Date()).toLocaleString() %>
</body>
forwardファイルに
<h2> 액션 태그 </h2>
forwardファイルを作成したことは明らかですが、本当にforward dataを実行した場合はforward dataを使用できます.jspファイルが出力されている様子が見えます.を選択します.
"first.jsp 파일"
<body>
<h3> 이 파일은 first.jsp 입니다 </h3>
<!-- 액션태그 사용 -->
<jsp:forward page="second.jsp" />
<p> ====== first.jsp 페이지 =======
</body>
"second.jsp 파일"
<body>
<h3> 이 파일은 second.jsp 파일입니다 </h3>
Today is <%= new java.util.Date() %>
</body>
今回は明らかに初めてjspファイルにコンテンツが作成され、実行されているにもかかわらず2番目です.jspの内容が実行されていると判断できます.
行ってまた帰ってくる
今のページを丁寧に書いたので、出せないのはもったいないですね.だから行って帰ってきた様子も聞いてみた.
を選択します。
"first.jsp 파일"
<body>
<h3> 이 파일은 first_include.jsp 파일</h3>
<!-- 갔다가 다시 이 페이지로 돌아옴 -->
<jsp:include page="second.jsp" />
<p>==============================</p>
</body>
"second.jsp 파일"
<body>
<h3> second_include.jsp 파일입니다 </h3>
Today is <%= (new java.util.Date()).toLocaleString() %>
</body>
以上のようにfirst includeの内容が出力され、接続位置を切り替えて再び戻ることができます.
を選択します。
param
を使用することもできます.よく見ると
<jsp:param name=" " value=" " />
はこのような形で、nameに渡す変数名を書き、valueに渡す値を書きます."first.jsp 파일"
<body>
<h3> 현재 파일은 first.jsp 입니다</h3>
<jsp:include page="second.jsp">
<jsp:param name="name" value="kim java" />
<jsp:param name="dept" value="computer" />
<jsp:param name="age" value="24" />
<jsp:param name="phone" value="7890-1234" />
</jsp:include>
<p> 이곳은 include 액션 태그 이후의 위치
</body>
"second.jsp 파일"
<body>
<h3> 현재 파일은 second.jsp 입니다</h3>
이름 : <%= request.getParameter("name") %> <br>
학과 : <%= request.getParameter("dept") %> <br>
나이 : <%= request.getParameter("age") %> <br>
번호 : <%= request.getParameter("phone") %>
<p> -------------------------------- </p>
</body>
値をリンクされたファイルに移動します.
必要なコンテンツが出力され、戻ってくることを確認します.
でも私は韓文のお金をあなたに渡したいです01
「first.jspファイル」で直接韓国語で値を渡すと、
<jsp:param name="name" value="김자바" />
<jsp:param name="dept" value="컴퓨터 공학과" />
これで割れてちゃんと入っていないのが見えます.
何か方法があるのか調べてみたら、
<% request.setCharacterEncoding(" "); %>
に書けばいいという文章を見ました.だから以下のように書いてあります.
<%@ page language="java" contentType="text/html; charset=EUC-KR" pageEncoding="EUC-KR"%>
<% request.setCharacterEncoding("utf-8"); %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
<title>Insert title here</title>
</head>
<body>
<h3> 현재 파일은 first.jsp 입니다</h3>
<jsp:include page="second.jsp">
<jsp:param name="name" value="김자바" />
<jsp:param name="dept" value="컴퓨터 공학과" />
<jsp:param name="age" value="24" />
<jsp:param name="phone" value="7890-1234" />
</jsp:include>
<p> 이곳은 include 액션 태그 이후의 위치
</body>
</html>
その値が正しく出力されていることを確認できます.
しかし、私はあなたに韓国語のお金を渡したいです。
"first.jsp 파일"
상단에 인코더를 명시해주고
<%@ page import="java.net.URLEncoder" %>
<body>
<h3> 현재 파일은 first.jsp 입니다</h3>
<jsp:include page="second.jsp">
<jsp:param name="name" value='<%= java.net.URLEncoder.encode("김자바") %>' />
<jsp:param name="dept" value='<%= java.net.URLEncoder.encode("컴퓨터 공학과") %>' />
<jsp:param name="age" value="24" />
<jsp:param name="phone" value="7890-1234" />
</jsp:include>
<p> 이곳은 include 액션 태그 이후의 위치
</body>
"second.jsp 파일"
<%@ page import="java.net.URLDecoder" %>
<body>
<h3> 현재 파일은 second.jsp 입니다</h3>
<%
String name = request.getParameter("name");
String dept = request.getParameter("dept");
%>
학과 : <%=java.net.URLDecoder.decode(dept)%> <br>
이름 : <%=java.net.URLDecoder.decode(name)%> <br>
나이 : <%= request.getParameter("age") %> <br>
번호 : <%= request.getParameter("phone") %>
<p> -------------------------------- </p>
</body>
送信者はimportのエンコーダを受信する.
value='<%= java.net.URLEncoder.encode(" ")
受信者はimportでデコーダを受信する.変数
java.net.URLDecoder.decode( )
やはり割れず、出力効果が良かったです.Reference
この問題について(.jsp練習01), 我々は、より多くの情報をここで見つけました https://velog.io/@cyhse7/.jsp-사용하기テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol