JSP和JavaBean 虚拟目录配置问题

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必须在虚拟目录根.

时间: 2024-12-15 19:46:37

JSP和JavaBean 虚拟目录配置问题的相关文章

JSP配置了虚拟目录使用JavaBean报错

今天遇到一个很棘手的问题,在jsp文件中使用useBean,网页返回码出现了500服务器内部错误,报错信息如下: The value for the useBean class attribute wp.A is invalid. 之前项目放在tomcat的webapps文件夹下,运行是正常的,现在是配置了虚拟目录,所以与javabean无关,应该是和配置了虚拟目录有关 尝试了很多方法都没用,最后找到了正确的解决方案(解决方法在最下面,如果会使用javabean的可直接跳过中间部分) 在此之前,

JSP里面的虚拟目录

人们常说的一个网站,其实就是一个web服务目录.Tomcat服务器安装目录的webapps目录下的任何一个子目录都可以作为一个web服务目录(当然也可以在webapps目录下新建子目录都可以). 虚拟目录: Tomcat服务器所在计算机的任何一个目录,都可以作为web服务目录,并为该web服务目录指定虚拟目录,即隐藏web服务目录的实际位置,用户只能通过虚拟目录访问wen服务目录中的JSP页面.例如:现在将E:\virtual这个目录作为web服务目录,用cloud虚拟目录来访问这个web服务目

关于tomcat JSP虚拟目录的这点事儿!

最简单的情况当然是将.jsp文件放在C:\Program Files\Apache Software Foundation\Tomcat 6.0\webapps\ROOT目录下,运行tomcat, 在浏览器中直接访问http://localhost:8080/HelloWorld.jsp  即可运行.jsp文件 而在实际的开发运用中,我们是不可能将Tomcat应用程序安装在系统盘如C盘. 所以,我们需要运用到设置虚拟目录的知识: 为创建虚拟目录以在浏览器中运行jsp文件:1:假设我们将tomca

Tomcat配置虚拟目录

虚拟目录即为保存网站资源如JSP等文件的目录,配置虚拟目录分为如下几个步骤. 第一步: 在磁盘的任意位置创建一个文件夹,如“E:\JavaWebAPP”.该文件夹即为虚拟目录地址. 第二步: 在虚拟目录中创建一个名为“WEB-INF”的文件夹,并在该文件夹中创建一个web.xml文件. 第三步: 打开Tomcat安装目录conf文件夹中的server.xml,找到文件最末端的“</Host>”,在其上面一行添加如下代码.<Context path="/test" do

Tomcat设置虚拟目录

需求 在做B/S的应用时,经常会遇到一个问题,网站上传的一些图片不是保存在应用服务器下面,而是保存在别的目录,但是页面中又需要能访问到这些图片.这时,应用服务器的"虚拟目录"就派上了用场. [转载使用,请注明出处:http://blog.csdn.net/mahoking] 解决方案 本文[以apache-tomcat-5.5为例]打开tomcat的配置文件,路径是:apache-tomcat-5.5/conf/server.xml.找到HOST标签,在<HOST><

在Win7中IIS配置Asp.Net虚拟目录的方法及错误总结!

在Win7中IIS配置Asp.Net虚拟目录的方法总结! 一.右键[网站],点击[添加虚拟目录]或[虚拟应用程序],笔者建议最好建立虚拟应用程序,因为这就跟一个网站差不多,不用考虑路径问题. 二.直接输入相应内容选择路径就行了,如果要指定[应用程序池],需要先建立一个新的[应用程序池],配置与网站差不多了. 三.运行后,如果出现以下错误:HTTP 错误 500.19 一般是web.config配置问题,很简单,找到以下内容 <system.webServer> <defaultDocum

Java Web学习(30): 使用JSP+Servlet+JavaBean实现用户登录

实现用户登录 用户名admin,密码admin,登录成功使用服务器内部跳转到login_success2.jsp页面,并且提示登录成功的用 户名,如果登录失败则跳转到login_failure2.jsp页面. 之前我们使用JSP实现过,也JSP+JavaBean实现过,这一次我们更加细化,使用JSP+Servlet+JavaBean实现用 户登录,好多的源码也是在前面写过. 我们先来看整体的目录结构: 再来看看源代码: 实体类Users.java源代码: package com.entity;

基于JSP+Servlet+JavaBean的图片或文件上传

基于JSP+Servlet+JavaBean的图片或文件上传 一.概述 现在不管是博客论坛还是企业办公,都离不开资源的共享.通过文件上传的方式,与大家同分享,从而达到大众间广泛的沟通和交流,我们既可以从中获得更多的知识和经验,也能通过他人的反馈达到自我改进和提升的目的. 下面我就为大家介绍 web项目中的这一上传功能,那么文件是如何从本地发送到服务器的呢?大家可以在在线视频课程进修学习<基于JSP+Servlet+JavaBean的人力资源管理系统开发>中第22课-项目开发-其它功能完善-图片

基于JSP+Servlet+JavaBean的人力资源管理系统开发课程

<基于JSP+Servlet+JavaBean的人力资源管理系统开发> 课程观看地址:http://www.xuetuwuyou.com/course/53 讲师:蒋子厚(http://www.xuetuwuyou.com/user/1984) 课程出自学途无忧网:http://www.xuetuwuyou.com 课程介绍 一.课程使用到的软件及对应的版本 1.jdk 1.7 2.tomcat 7.0 3.MySQL6.0+ 4.navicat 9 + 5.Macromedia Dreamw