JSPは、基本を学びます

JSPはまた、初心者のための著者である、この記事を書くの主な目的は、JSPの内容の理解を容易にするためである、いくつかのように専門的かつ包括的でない記述は、私と一緒に負担してください。

A、JSPの概要

JSP(フルネームのJavaServer Pages)は、Sun Microsystemsが主導動的なWeb技術標準が作成されています。JSPは、ネットワークサーバーにデプロイクライアントから送信された要求に応答し、要求に応じて動的にWebページのHTML、XMLまたはその他の形式の文書を生成し、要求元に返すことができます。複雑なビジネスニーズに対応するために一緒にサービスを提供するために、ユーザーのHTTPリクエストのためのスクリプト言語としてJava言語、およびサーバ上の他のJavaプログラムでJSPテクノロジー。

JSP、中国名Javaのサーバーページ、それぞれが対応していますJSPファイルJavaコードで書くことができJSPファイルは、また書き込みHTMLコード可能なHTMLを理解することは簡単です、あなたがJavaのJSPコードを書くことができ、当然また、XML、XHTMLなどをそこに持っていることです。JSPファイルを書き込むことにより、我々は非常に柔軟性のいくつかのAPIのJavaなどを呼び出し、動的なHTMLページ要素に埋め込むことができます。

二、JSPインスタンス学習

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>$Title$</title>
</head>
<body>

<%--下面是一句Java代码--%>
<%
    System.out.println("hello world");
%>

</body>
</html>

上記の非常に単純なJSPファイルで、それが見やすいとhtmlファイルは非常に似ていますが、より多くの設定手順およびJava文。

<%@ page contentType="text/html;charset=UTF-8" language="java" %>

この上に== <%@ ...%> ==、文の形式に注意を払うJSPファイルの設定手順です

  • ページのcontentType =「text / htmlの;のcharset = UTF-8」
    表示ドキュメントの種類、 "テキスト/ HTMは、" UTF-8のように表す文字セット "のcharset = UTF-8"、テキスト、HTMLを示し、中国は、一般的にUTF-8を使用してデフォルトのプログラミングに関するです。

  • 言語=「javaは、」
    Java言語は、ビット冗長という、デフォルトでは、Java言語である、実際には、ある説明し、この1を削除することができます。

< -注意- %%> ==、より多くの注釈HTMLのパーセント記号よりコメント==とでJSPドキュメント、。
直接書き込むだけでなく、次のように定義されて主に限られていない、Javaコードを書くにはJSP:

  • <%!Javaコード%>
    宣言変数やメソッド、変数がグローバルがあると宣言

  • <%Javaコード%>
    DECLARE変数または方法は、変数が述べローカルあります

  • <%= Javaの発現%>
    ブラウザに出力式のため、およびセミコロンを持つ式がありません

三、EL式学習

EL(式言語)の発現、JSP、Javaコードを簡略化するために言語形式一般的な形式であります

${表达式}

あなたはEL式を無視したい場合は、次のことができ、デフォルトでサポートのEL式をJSP

  • JSPのpageディレクティブを設定します。isELIgnored =「true」を、現在のJSP EL式のすべてのページを無視
  • $ {式}:エルは、この現在の式を無視

(1)EL式の使用

主における有用性EL式

  • 操作
    の直接書き込み操作式とすることができます。

  • 値の取得
    EL式を介してのみ値を取得注意をドメインオブジェクトゲット構文は次のとおりです。

${域名称.键名}:从指定域中获取指定键的值
${键名}:表示依次从最小的域中查找是否有该键对应的值,直到找到为止。

関与と呼ばれる4つの各ドメインのドメイン:

pageScope		    --> pageContext
requestScope 	    --> request
sessionScope 	    --> session
applicationScope    --> application(ServletContext)

(2)完全なコード例を学ぶために

ここで使用したEL式の完全なコードは、リファレンスを参照してください。

<%@ page import="com.study.domain.User" %>
<%@ page import="java.util.ArrayList" %>
<%@ page import="java.util.HashMap" %>
<%@ page import="java.util.List" %>
<%@ page import="java.util.Map" %>

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>


<%
    //在存储域中存储数据
    request.setAttribute("name", "xiaoming");
    session.setAttribute("name", "xiaohong");
    session.setAttribute("password", "123");

%>

<%
    User user = new User();
    user.setName("xiaoming");
    user.setAge(10);

    request.setAttribute("user", user);
%>

<%
    List list = new ArrayList();
    list.add("a");
    list.add("b");
    list.add("c");

    request.setAttribute("list", list);

%>

<%
    Map map = new HashMap();
    map.put("name", "xiaogang");
    map.put("gender", "man");

    request.setAttribute("map", map);
%>

<%
    int[] arr = new int[]{1, 2, 3};
    String str = "abc";
    User[] users = new User[0];

    request.setAttribute("arr", arr);
    request.setAttribute("str", str);
    request.setAttribute("users", users);
%>

<%--用el表达式来计算--%>
<h3>计算</h3>
${1+2}<br>
${1<2}<br>

<h3>empty运算符判断是否为空或者长度是否为0</h3>
${empty requestScope.arr}<br>
${empty requestScope.str}<br>
${empty requestScope.users}<br>

<h3>获取值</h3>
${requestScope.name}<br>
${sessionScope.password}<br>
<%--依次从最小的域中查找是否有该键对应的值,直到找到为止。--%>
${name}<br>

<h3>获取对象</h3>
${requestScope.user}<br>
${requestScope.user.name}<br>

<h3>获取list的值</h3>
${requestScope.list}<br>
${requestScope.list[0]}<br>
${requestScope.list[1]}<br>

<h3>获取map的值</h3>
${requestScope.map}<br>
${requestScope.map.name}<br>
${requestScope.map["name"]}<br>
</body>
</html>

四、JSTLの学習

JSTL(Javaサーバページでstandardedタグライブラリ、JSP標準タグライブラリ)は、Apacheのジャカルタ・グループによって、共通の標準タグライブラリは、Java Web開発者に主に利用可能である、JCP(Javaコミュニティのプロセスへ)が開発された標準仕様です維持します。開発者は、読みやすさを改善するために、JSPページにこれらのラベルの代わりに、Javaコードを使用するプログラムを維持することの難しさを減らすことができます。

そして、EL式のように、JSTLは、Javaコード内のJSP簡素化します。
適切なパッケージを使用してインポートする注JSTLは、パッケージがダウンロードされ、インポートされた参照は、兄のブログのjarパッケージのダウンロードJSTLを

(1)JSTLの使用

JSTL一般的に使用されるラベルは、以下のとおりです。

  • もし:Javaコードの同等のステートメントの場合は
    C:なし他のラベル状況が存在しない場合、あなたは他のケースをしたい、あなたは、cを定義することができますタグの場合
  • 選択:Javaのコードのswitch文の同等
使用choose标签声明         			相当于switch声明
使用when标签做判断         			相当于case
使用otherwise标签做其他情况的声明    	相当于default
  • foreachの:文のJavaコードと同等
 - 完成重复的操作
      * 属性:
                begin:开始值
                end:结束值
                var:临时变量
                step:步长
                varStatus:循环状态对象
                index:容器中元素的索引,从0开始
                count:循环次数,从1开始
 - 遍历容器
     * 属性:
                items:容器对象
                var:容器中元素的临时变量
                varStatus:循环状态对象
                index:容器中元素的索引,从0开始
                count:循环次数,从1开始

(2)学習のJSTL例を

ここでは、完全なJSTLコード缶参照です。

<%@ page import="java.util.ArrayList" %>
<%@ page import="java.util.List" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%--引入jstl--%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head>
    <title>Title</title>
</head>
<body>

<%--if标签--%>
<c:if test="true">
    <h3></h3>
</c:if>

<%--choose标签--%>
<%
    request.setAttribute("number", 1);
%>

<c:choose>
    <c:when test="${number == 1}">星期一</c:when>
    <c:when test="${number == 2}">星期二</c:when>
    <c:when test="${number == 3}">星期三</c:when>
    <c:when test="${number == 4}">星期四</c:when>
    <c:when test="${number == 5}">星期五</c:when>
    <c:when test="${number == 6}">星期六</c:when>
    <c:when test="${number == 7}">星期天</c:when>

    <c:otherwise>数字输入有误</c:otherwise>
</c:choose>


<%--foreach语句--%>

<c:forEach begin="1" end="10" var="i" step="2" varStatus="s">
    ${s.index}<br>
</c:forEach>

<%
    List list1 = new ArrayList();
    list1.add(1);
    list1.add(2);
    list1.add(3);

    request.setAttribute("list1", list1);

%>

<c:forEach items="${requestScope.list1}" var="num" varStatus="s">
    ${s.index}<br>
    ${num}<br>

</c:forEach>

</body>
</html>

ここに画像を挿入説明
2019年12月22日

公開された52元の記事 ウォン称賛59 ビュー6827

おすすめ

転載: blog.csdn.net/ataraxy_/article/details/103650764