码迷,mamicode.com
首页 > 编程语言 > 详细

JSP和JavaBean 虚拟目录配置问题

时间:2015-06-25 11:55:09      阅读:121      评论:0      收藏:0      [点我收藏+]

标签:

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 虚拟目录配置问题

标签:

原文地址:http://www.cnblogs.com/xzqhextt/p/4599263.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!