29

私は、ビュー レイヤーが JSP である J2EE プロジェクトに数多く携わってきました。ほとんどのプロジェクトで、スクリプトレットの contextPath を使用して、画像、javascript、jsp、css などの外部リソースを参照しているのを見てきました。

コードは次のとおりです。

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>GC Demo Using HandlebarsJS</title>
    <script type="text/javascript" src="<%=request.getContextPath()%>/js/jqueryUI-AutoComplete/jquery-1.9.1.js"></script>
    <script type="text/javascript" src="<%=request.getContextPath()%>/js/jqueryUI-AutoComplete/jquery-ui-1.10.3.custom.js"></script>
    <script type="text/javascript" src="<%=request.getContextPath()%>/js/handlebarsJS/handlebars.js"></script>
    <link rel="stylesheet" type="text/css" href="${pageContext.servletContext.contextPath}/js/jqueryUI-AutoComplete/jquery-ui-1.10.3.custom.css">

上記の jsp から、ここで、同じプロジェクト バンドルにある外部リソース、つまり戦争にある外部リソースをインポートしています。

上記の同じ JSP は、以下のコードのように記述できます。

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>GC Demo Using HandlebarsJS</title>
    <script type="text/javascript" src="../js/jqueryUI-AutoComplete/jquery-1.9.1.js"></script>
    <script type="text/javascript" src="../js/jqueryUI-AutoComplete/jquery-ui-1.10.3.custom.js"></script>
    <script type="text/javascript" src="../js/handlebarsJS/handlebars.js"></script>
    <link rel="stylesheet" type="text/css" href="../js/jqueryUI-AutoComplete/jquery-ui-1.10.3.custom.css">

ここで 2 番目の例でも、戦争に存在するリソースを参照しています。

上記の 2 つのケースの両方を考慮すると、最初のケースがベスト プラクティスとしてより重要になります。

なんで?

2番目のケースを使用することの欠点は何ですか?

2 番目のケースを使用すると、プロジェクトはコンテキストパスとより緊密に結合されますか?

私に説明してください。

4

1 に答える 1