ওয়েব অ্যাপ্লিকেশন নাম (প্রকৃতপক্ষে প্রসঙ্গের পাথ) কল করে উপলব্ধ HttpServletrequest#getContextPath()
(এবং এভাবে getServletPath()
আগে যেমন প্রস্তাবিত নয় )। আপনি এটি দ্বারা জেএসপিতে পুনরুদ্ধার করতে পারেন ${pageContext.request.contextPath}
।
<p>The context path is: ${pageContext.request.contextPath}.</p>
আপনি যদি নিজের জেএসপি পৃষ্ঠায় সমস্ত আপেক্ষিক পাথের জন্য এটি ব্যবহার করার মনস্থ করেন (যা এই প্রশ্নটি আরও বুদ্ধিমান করে তোলে) তবে আপনি এইচটিএমএল <base>
ট্যাগটি ব্যবহার করতে পারেন :
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<c:set var="req" value="${pageContext.request}" />
<c:set var="url">${req.requestURL}</c:set>
<c:set var="uri" value="${req.requestURI}" />
<!doctype html>
<html lang="en">
<head>
<title>SO question 2204870</title>
<base href="${fn:substring(url, 0, fn:length(url) - fn:length(uri))}${req.contextPath}/">
<script src="js/global.js"></script>
<link rel="stylesheet" href="css/global.css">
</head>
<body>
<ul>
<li><a href="home.jsp">Home</a></li>
<li><a href="faq.jsp">FAQ</a></li>
<li><a href="contact.jsp">Contact</a></li>
</ul>
</body>
</html>
পৃষ্ঠার সমস্ত লিঙ্কগুলি স্বয়ংক্রিয়ভাবে <base>
এমনভাবে তুলনামূলকভাবে প্রাসঙ্গিক হবে যাতে আপনাকে সর্বত্র প্রসঙ্গের পথটি কপিপেষ্ট করার প্রয়োজন হয় না। মনে রাখবেন যে আপেক্ষিক লিঙ্কগুলি যখন একটি দিয়ে শুরু হয় /
, তখন সেগুলি <base>
আর কোনওটির সাথে সম্পর্কিত হবে না, পরিবর্তে ডোমেন রুটের সাথে সম্পর্কিত হবে।
ServletContext.getContextPath()
তাকে অ্যাপ্লিকেশনটির প্রধান বা পছন্দসই প্রসঙ্গের পথ হিসাবে বিবেচনা করা উচিত"। জিনিসটি উপলব্ধি করার পরে আমি এটিকে আমার মূল উত্তরে অন্তর্ভুক্ত করেছি। আমি আমার প্রথম প্রয়াসটি সরিয়ে ফেলিনি, কারণ আমি চাইছি ওপি ডক্সের মাধ্যমে পড়া বিবেচনা করে এবং সম্পর্কিত পদ্ধতিগুলি সম্পর্কে আরও কিছুটা জানতে। আমি আশা করি আপনি আমার বক্তব্য পাচ্ছেন।