JSP和JavaBean 虛擬目錄配置問題

來源:互聯網
上載者:User

標籤:

1.把webapps/a/當作web應用目錄;

那麼放下如下目錄和檔案webapps/a/fbean.jsp

webapps/a/WEB-INF/classes/f/A.java

cmd下編譯A.java 得到A.class

<%@ page contentType="text/html;charset=GB2312" language="java"%><html><body><jsp:useBean id="fb" class="f.A" scope="session" /><%    fb.setFirstProperty("My first JavaBean!");%><%=fb.getFirstProperty()%></body></html>
fbean.jsp
package f;public class A {    private String FirstProperty = new String("");    public A(){}        public void setFirstProperty(String value) {        FirstProperty = value;    }        public String getFirstProperty() {        return FirstProperty;    }}
A.java

重啟tomcat,在瀏覽器輸入localhost:8080/a/fbean.jsp可以看到運行效果

證明:此jsp和Javabean沒問題.

2.我的F:/CODE/JSP/MyJSP是我的tomcat虛擬目錄;

在這有我以前測試虛擬目錄的test檔案,相關內容如下:

/*下面展示的是一個根據時間問好的jsp程式,這些檔案放在同一個目錄下,即test*/

oldhello.jsp  a.css hua.png Desert.jpg

<%@ page language="java" pageEncoding="GBK"%>    <%@ page import="java.util.Date"%>    <%--java.util package,date class.is old--%><!DOCTYPE html><html><head><title>DateHello</title><link rel="stylesheet" type="text/css" href="a.css" /></head><body id="b"><%=new java.util.Date()%>    <%-- show current time like Thu Apr 23 21 :11:20 CST 2015 --%><hr /><%     Date x=new java.util.Date();   if(x.getHours()>3 && x.getHours()<12) {   %>    <p style="color:red; text-align:center"> Good Morning</p>        <%      }else if (x.getHours()>12&&x.getHours()<18){%>    <p style="color:yellow; text-align:center"> Good Afternoon</p>    <%       }else if (x.getHours()>18||x.getHours()<3){%>    <p style="color:blue; text-align:center"> Good Evening</p>    <%      }                                                                                                                                       %></body></html>
oldhello.jsp
#b {background-image: url("hua.png");opacity:0.4;background-repeat:no-repeat;background-position}#b:hover {background-image: url("Desert.jpg");opacity:1.0;filter:alpha(opacity=100); /* For IE8 and earlier */background-repeat:no-repeat;}
a.css

兩張圖隨便找的,我就不放了.

在瀏覽器寫相關地址運行後也可以顯示效果

證明:我的虛擬目錄沒問題

 

3.問題來了.鑒於我不想把web目錄都放在tomcat內建的目錄下建立了虛擬目錄,我把1所示的所有內容複寫到虛擬根目錄下.重啟tomcat,運行出錯!

The value for the useBean class attribute f.A is invalid.

這三個問題我反覆從昨頁12點試錯到今天早上10點終於解決了.

其中我的javabean代碼先前set和get的位置錯了導致 說某個方法未定義;

其次在網上正確配置了目錄結構還是出現各種問題,於是我一步步每次改完源檔案就編譯一次,還重啟伺服器.總算解決了.

 

此外我發現僅僅改jsp不用重啟伺服器,直接f5就可以.

還有個重要發現:我把.class刪了,f5照樣運行正常,且我重啟伺服器後依舊!真的很詭異啊!

 

 

但是稀裡糊塗的解決了以後難免再出問題.時間不夠,在此留個腳印.

 

//我將a/WEB-INF的WEB-INF移到跟a同目錄的webapps下,也就是我虛擬目錄根目錄下,運行通過!

看來以後要這麼組織圖才對

  +虛擬目錄+項目目錄

      +項目目錄2

              +WEB-INF

                           +classes

                                      +各種包和類

 以前我以為是每個項目目錄帶個WEB-INF,在tomcat安裝目錄的webapps下我這麼乾沒錯.(剛試過把WEB-INF放到項目目錄外也行!)

但是虛擬目錄下建立的javabean形成的class所在的WEB-INF必須在虛擬目錄根.

JSP和JavaBean 虛擬目錄配置問題

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.