碼上歡樂
首頁
榜單
標簽
關於
搜索
相關內容
簡體
繁體
關於JSP不能通過瀏覽器直接訪問,要通過servlet跳轉,但一個jsp文件里面用
標簽包含了另一個jsp的訪問問題</a></h3> </center> <div class="postinfo"> 本文轉載自 <i class="icon-globe"></i> <a href="/go/aHR0cHM6Ly93d3cuY25ibG9ncy5jb20vaGVhcnR3dXpodS9wLzQxMTAyODkuaHRtbA==" target="_blank">查看原文</a> <i class="icon-time"></i> <span>2014-11-20 12:12</span> <i class="icon-eye-open"></i> <span>4276 </span> <i class="icon-tag"></i> <span><a href='/tag/jsp' target="_blank">jsp</a></span> <i class="icon-star" title="2.0537"></i> <i class="icon-star" title="2.0537"></i> </div> <hr/> <div class="media-body" id="content_div"> <div class="title_down_ad ad"> </div> <div class="post_content" id="postContent"> <p> 今天在做作業的時候遇到一個問題,以前我們寫jsp代碼都是放在<span style="color: #ff0000;">webcontext</span> 目錄下,沒有放在其子目錄下面的<span style="color: #ff0000;">WED-INF</span>目錄下面,所有導致瀏覽器可以直接訪問jsp,所以存在安全性問題很大,經過了解,正確的寫法是把jsp文件放在WED-INF目錄下面,再通過控制器跳轉。如果直接瀏覽器訪問這個放在<span style="color: #ff0000;">WED-INF</span>目錄下面的jsp就會出現404頁面,找不到jsp文件。</p> <p> 1.首先我們來看一下放在<span style="color: #ff0000;">WEB-INF</span>目錄下面的<span style="color: #ff0000;">test1.jsp</span> 是不能直接訪問的,放在WebContext下面的是能夠直接訪問的。如圖(1.1,1.2)</p> <p> </p> <div> <img src="/image/ZmlsZTovLy9DOlxVc2Vyc1xBZG1pbmlzdHJhdG9yXEFwcERhdGFcUm9hbWluZ1xUZW5jZW50XFVzZXJzXDgwNzI4MTMzOVxRUVxXaW5UZW1wXFJpY2hPbGVcezhXVUdTTVE2W1d7TH40YDk3MTRdWzUuanBn.png" alt="" referrerpolicy="no-referrer"> </div> <p style="text-align: center;"> <img style="display: block; margin-left: auto; margin-right: auto;" src="/image/aHR0cHM6Ly9pbWFnZXMwLmNuYmxvZ3MuY29tL2Jsb2cvNTc1NDcwLzIwMTQxMS8yMDExMzc1ODA0Njg1OTIuanBn.png" alt="" referrerpolicy="no-referrer"></p> <p style="text-align: center;">圖1.1(jsp文件目錄)</p> <p style="text-align: center;"><img src="/image/aHR0cHM6Ly9pbWFnZXMwLmNuYmxvZ3MuY29tL2Jsb2cvNTc1NDcwLzIwMTQxMS8yMDExMzkzNjE0MDY2OTEuanBn.png" alt="" referrerpolicy="no-referrer"></p> <p style="text-align: center;">圖1.2(瀏覽器直接訪問WEB-INF下面的jsp)</p> <ins class="adsbygoogle" style="display:block; text-align:center;" data-ad-layout="in-article" data-ad-format="fluid" data-ad-client="ca-pub-4353345653789615" data-ad-slot="4890554435"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({});</script> <p style="text-align: center;"><img src="/image/aHR0cHM6Ly9pbWFnZXMwLmNuYmxvZ3MuY29tL2Jsb2cvNTc1NDcwLzIwMTQxMS8yMDExNDEyMTgyODc0NzAucG5n.png" alt="" referrerpolicy="no-referrer"></p> <p style="text-align: center;">圖1.3(瀏覽器直接訪問WebContext目錄下面的jsp)</p> <p style="text-align: left;"> 2.但是我們可以通過servlet跳轉來訪問的test1.jsp。</p> <p style="text-align: left;"> 下面是servlet代碼:</p> <div class="cnblogs_code" style="text-align: left;"> <pre><span style="color: #008080;"> 1</span> <span style="color: #0000ff;">package</span><span style="color: #000000;"> com.servlet; </span><span style="color: #008080;"> 2</span> <span style="color: #008080;"> 3</span> <span style="color: #0000ff;">import</span><span style="color: #000000;"> java.io.IOException; </span><span style="color: #008080;"> 4</span> <span style="color: #0000ff;">import</span><span style="color: #000000;"> javax.servlet.ServletException; </span><span style="color: #008080;"> 5</span> <span style="color: #0000ff;">import</span><span style="color: #000000;"> javax.servlet.annotation.WebServlet; </span><span style="color: #008080;"> 6</span> <span style="color: #0000ff;">import</span><span style="color: #000000;"> javax.servlet.http.HttpServlet; </span><span style="color: #008080;"> 7</span> <span style="color: #0000ff;">import</span><span style="color: #000000;"> javax.servlet.http.HttpServletRequest; </span><span style="color: #008080;"> 8</span> <span style="color: #0000ff;">import</span><span style="color: #000000;"> javax.servlet.http.HttpServletResponse; </span><span style="color: #008080;"> 9</span> <span style="color: #008080;">10</span> @WebServlet("/TestServlet"<span style="color: #000000;">) </span><span style="color: #008080;">11</span> <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">class</span> TestServlet <span style="color: #0000ff;">extends</span><span style="color: #000000;"> HttpServlet { </span><span style="color: #008080;">12</span> <span style="color: #0000ff;">private</span> <span style="color: #0000ff;">static</span> <span style="color: #0000ff;">final</span> <span style="color: #0000ff;">long</span> serialVersionUID = 1L<span style="color: #000000;">; </span><span style="color: #008080;">13</span> <span style="color: #0000ff;">public</span><span style="color: #000000;"> TestServlet() { </span><span style="color: #008080;">14</span> <span style="color: #0000ff;">super</span><span style="color: #000000;">(); </span><span style="color: #008080;">15</span> <span style="color: #000000;"> } </span><span style="color: #008080;">16</span> <span style="color: #0000ff;">protected</span> <span style="color: #0000ff;">void</span><span style="color: #000000;"> service(HttpServletRequest request, </span><span style="color: #008080;">17</span> HttpServletResponse response) <span style="color: #0000ff;">throws</span><span style="color: #000000;"> ServletException, IOException { </span><span style="color: #008080;">18</span> request.setCharacterEncoding("utf-8"<span style="color: #000000;">); </span><span style="color: #008080;">19</span> response.setContentType("text/html;charset=utf-8"<span style="color: #000000;">); </span><span style="color: #008080;">20</span> request.getRequestDispatcher("/WEB-INF/test1.jsp"<span style="color: #000000;">) </span><span style="color: #008080;">21</span> <span style="color: #000000;"> .forward(request, response); </span><span style="color: #008080;">22</span> <span style="color: #000000;"> } </span><span style="color: #008080;">23</span> <span style="color: #008080;">24</span> }<br><span style="font-size: 16px; color: #ff0000;">然后就能夠訪問test1.jsp了<br><br></span></pre> <img style="display: block; margin-left: auto; margin-right: auto;" src="/image/aHR0cHM6Ly9pbWFnZXMwLmNuYmxvZ3MuY29tL2Jsb2cvNTc1NDcwLzIwMTQxMS8yMDExNTMzNTUwMDU4OTcuanBn.png" alt="" referrerpolicy="no-referrer"> <pre><br><br> 圖2.1(通過servlet跳轉訪問在WEB-INF目錄下面的test1.jsp)<br><br><span style="font-size: 14px;"><span style="font-size: 15px;">3</span>.但是我們有時候會遇到這種情況在jsp里面用<iframe>標簽包含另一個jsp要同事訪問,但是被包含的那個jsp又不能被瀏覽器直接訪問,所有智能放在web-inf目錄下面,但是問題來了,通過servlet跳轉只能訪問外層jsp,里面被包含的jsp會出現404錯誤。<br><img src="/image/aHR0cHM6Ly9pbWFnZXMwLmNuYmxvZ3MuY29tL2Jsb2cvNTc1NDcwLzIwMTQxMS8yMDEyMDkwOTc1MDQ1NDUucG5n.png" alt="" referrerpolicy="no-referrer"><br> 圖3.1(外面jsp層代碼包含一個jsp文件)<br><img src="/image/aHR0cHM6Ly9pbWFnZXMwLmNuYmxvZ3MuY29tL2Jsb2cvNTc1NDcwLzIwMTQxMS8yMDEyMTAzMDIxODkyMjYucG5n.png" alt="" referrerpolicy="no-referrer"><br> 圖3.2(訪問jsp結果被包含的jsp不能被顯示出來)<br>這時就需要我們在web.xml配置一下jsp能夠通過服務器端跳轉訪問,而客戶端不能直接訪問具體代碼如下:</span></pre> <div class="cnblogs_code"> <pre><servlet> <servlet-name><span style="color: #0000ff;">goto</span></servlet-name> <jsp-file>/WEB-INF/jsp/msgs.jsp</jsp-file> </servlet> <servlet-mapping> <servlet-name><span style="color: #0000ff;">goto</span></servlet-name> <url-pattern>/msgs</url-pattern> </servlet-mapping></pre> </div> <p>然后把iframe 屬性src = “msgs”就可以訪問了。</p> <pre><span style="font-size: 14px;"><img src="/image/aHR0cHM6Ly9pbWFnZXMwLmNuYmxvZ3MuY29tL2Jsb2cvNTc1NDcwLzIwMTQxMS8yMDEyMTYzODk1MzQ3MTAucG5n.png" alt="" referrerpolicy="no-referrer"><br><img src="/image/aHR0cHM6Ly9pbWFnZXMwLmNuYmxvZ3MuY29tL2Jsb2cvNTc1NDcwLzIwMTQxMS8yMDEyMTgyODUwMDU4NDMuanBn.png" alt="" referrerpolicy="no-referrer"><br> 雖然這是個很小的問題,這時我學習jsp時遇到的問題,於是把他記錄下來,我覺得還是有收獲的,如果有什么錯誤的地方,本人新手,</span></pre> <pre>希望大家指正,感激不盡!</pre> <pre><span style="font-size: 14px;"><br><br></span></pre> </div> <ins class="adsbygoogle" style="display:block; text-align:center;" data-ad-layout="in-article" data-ad-format="fluid" data-ad-client="ca-pub-4353345653789615" data-ad-slot="4890554435"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({});</script> <p> </p> <p style="text-align: left;"> </p> <p> </p> </div> <div class="read-more" id="read-more" style="display:none"></div> <div class="alert alert-info" style="margin-top:20px;"> <p id="tips_top1"> </p> </div> <script type="text/javascript"> <!-- $("#tips_top1").append("<strong><i class=\"icon-fire\"></i>溫馨提示:</strong>如果本文未解決您的問題,可以免費向大模型提問:<strong><a href='javascript:void(0)' class='gptbtn'>向AI大模型提問</a></strong>。");--> </script> <div class="iframe-container"> </div> </div> <div class="ad_content_down ad"> </div> </div> <div class="disclaimer visible-desktop"> <br/> <div class="alert alert-block"> <button type="button" class="close" data-dismiss="alert">×</button> <h4>免責聲明!</h4> <p>本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。</p> </div> <br/><br/> </div> </div> <!-- 右邊相關博客和資料 --> <div class="span4 left_content"> <div id="left_list_div" class="left_content"> <span class="list-group-item" href="javascript:void(0)"><i class="icon-filter"></i><strong>猜您在找</strong></span> <a class='list-group-item' href="/blog/2880b11.html" title="AWS RDS 無法連接訪問問題"> <i class="icon-file"></i> AWS RDS 無法連接訪問問題 </a> <a class='list-group-item' href="/blog/f22fdf1.html" title="瀏覽器直接訪問linux上的圖片"> <i class="icon-file"></i> 瀏覽器直接訪問linux上的圖片 </a> <a class='list-group-item' href="/blog/d4e10d1.html" title="在瀏覽器中直接訪問Linux上的一張圖片"> <i class="icon-file"></i> 在瀏覽器中直接訪問Linux上的一張圖片 </a> <a class='list-group-item' href="/blog/3cc2b51.html" title="phonegap 解決https訪問問題"> <i class="icon-file"></i> phonegap 解決https訪問問題 </a> <a class='list-group-item' href="/blog/e630a81.html" title="centos8端口不能訪問問題"> <i class="icon-file"></i> centos8端口不能訪問問題 </a> <a class='list-group-item' href="/blog/66d2de1.html" title="RabbitMQ遠程不能訪問問題的解決"> <i class="icon-file"></i> RabbitMQ遠程不能訪問問題的解決 </a> <a class='list-group-item' href="/blog/b9ec431.html" title="服務器部署網站后,公網ip可以訪問,域名不能訪問問題(穩)"> <i class="icon-file"></i> 服務器部署網站后,公網ip可以訪問,域名不能訪問問題(穩) </a> <a class='list-group-item' href="/blog/79f3c31.html" title="Linux下Tomcat同時部署兩個工程然而只有一個能訪問問題"> <i class="icon-file"></i> Linux下Tomcat同時部署兩個工程然而只有一個能訪問問題 </a> <a class='list-group-item' href="/blog/a57e9a1.html" title="iis共享文件夾內圖片文件通過url無法訪問問題"> <i class="icon-file"></i> iis共享文件夾內圖片文件通過url無法訪問問題 </a> <a class='list-group-item' href="/blog/9f39841.html" title="Spring MVC controller控制器映射無法訪問問題!!!"> <i class="icon-file"></i> Spring MVC controller控制器映射無法訪問問題!!! </a> <div id="right_float_ad" class="ad"> </div> </div> </div> </div> </div> <div class="clear"> </div> <div class="fbar" style="z-index:100"> <div class="span7" style="color:grey;font-size:12px;"> </div> <div class="pull-right"> <span><a href="http://beian.miit.gov.cn" rel="nofollow" target="_blank">粵ICP備18138465號</a> </span><span>© 2018-2025 CODEPRJ.COM </span> </div> </div> <script src="/js/code.js?version=20250621"></script> <script> function buffer(a, b, c) { var d; return function() { if (d) return; d = setTimeout(function() { a.call(this), d = undefined }, b) } } (function() { function e() { var d = document.body.scrollTop || document.documentElement.scrollTop; d > b ? (a.className = "div1 div2", c && (a.style.top = d - b + "px")) : a.className = "div1" } var a = document.getElementById("float"); if (a == undefined) return ! 1; var b = 0, c, d = a; while (d) b += d.offsetTop, d = d.offsetParent; c = window.ActiveXObject && !window.XMLHttpRequest; if (!c || !0) window.onscroll = buffer(e, 50, this) })(); </script> <script> var _hmt = _hmt || []; (function() { var hm = document.createElement("script"); hm.src = "https://hm.baidu.com/hm.js?c81b3b98809d882ddda9a802d3778cf4"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s); })(); </script> </body> </html>