今天在用eclipse测试jsp和javabean是遇到了点问题,请大家帮帮忙

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了今天在用eclipse测试jsp和javabean是遇到了点问题,请大家帮帮忙相关的知识,希望对你有一定的参考价值。

//bean
package bean;
import java.io.*;
public class beantest
public String date="2008.1.1";

public String GetDate()
return date;



//jsp
<%@ page language="java" contentType="text/html; charset=GB18030"
pageEncoding="GB18030"%>
<%@page import="java.io.*" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GB18030">
<title>jsp示例</title>
</head>
<body>
<br>
<jsp:usebean id="test" class="bean.beantest" scope="page" />
<%=test.GetDate() %> **错误**
<br>
</body>
</html>

在test上提示"test cannot be resolved",大家知道原因吗?

你这个主要是小问题:我在机子上测试了一下,下面是我的代码,你看看:你的bean不动,就那样写,在jsp中主要是==
<%@ page language="java" import="java.util.*" pageEncoding="GB18030"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">

<title>My JSP 't1.jsp' starting page</title>

<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->

</head>
<jsp:useBean id="test" class="com.lyr.dbtest"></jsp:useBean>
<body>
<%=test.GetDate() %>
</body>
</html>
这样就可以通过了!
参考技术A test cannot be resolved
这个是你的jsp不能被解析,说明jsp本身写的就有语法错误,至于这个jsp:bean标签很少用了<%=%>是表达式我记得应该先get个什么来的,反正现在都用el表达式或者直接request传至,基本不用这个标签

JavaBean技术

JSP设计模式

关于JavaBean的产生原因和JSP开发模式的一个演变可以参照如下示例图

两种web应用程序的开发模式,一种是JSP+JavaBean模式,一种是Servlet+JSP+JavaBean模式。
JSP+JavaBean模式适合开发业务逻辑不太复杂的web应用程序(因为业务逻辑复杂,控制代码多,而在JSP中编写控制代码,十分不便),这种模式下,JavaBean用于封装业务数据,JSP即负责处理用户请求,又显示数据。(JSP中编写业务控制逻辑代码)
Servlet+JSP+JavaBean(MVC)模式适合开发复杂的web应用,在这种模式下,servlet负责处理用户请求(控制器,连接模型和视图,对整个业务流程进行控制,调用JavaBean封装处理数据,调用JSP显示页面),jsp负责数据显示,javabean负责封装数据(Model 模型功能)。 Servlet+JSP、JavaBean模式程序各个模块之间层次清晰,web开发推荐采用此种模式。

技术分享图片
关于JavaWeb_MVC模式可以参见之前的博客http://blog.csdn.net/megustas_jjc/article/details/52922859,在此不再细说。(其中JavaBean符合Model,JSP符合View,Servlet符合Controller)

JavaBean

(1)什么是JavaBean

1、是一个Java 类
2、必须存在无参数构造方法
3、所有成员变量都是private
4、私有化的属性必须通过public类型的方法暴露给其它程序,并且方法的命名也必须遵守一定的命名规范。即如果想private成员变量被外界访问,提供public的get和set方法。

编写好JavaBean组件,其他程序可以通过反射技术实例化JavaBean对象,并且通过反射那些遵守命名规范的方法,从而获知JavaBean的属性,进而调用其属性保存数据。 关于反射技术,参考http://blog.csdn.net/megustas_jjc/article/details/52769688,这里需要注意不要将JavaBean与单例模式混淆(通过内省Introspection,也可以对JavaBean进行操作,Introspection对JavaBean通过反射技术操作,出国留学内省是一套基于反射技术,更易于操作JavaBean的API)

单例模式

1、private 构造方法
2、private static 实例对象
3、public static 对象访问方法

单例模式是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例的特殊类。通过单例模式可以保证系统中一个类只有一个实例。如下是一个Java代码实例:

一些资源管理器常常设计成单例模式。在计算机系统中,需要管理的资源包括软件外部资源,譬如每台计算机可以有若干个打印机,但只能有一个Printer Spooler, 以避免两个打印作业同时输出到打印机中。每台计算机可以有若干传真卡,但是只应该有一个软件负责管理传真卡,以避免出现两份传真作业同时传到传真卡中的情况。每台计算机可以有若干通信端口,系统应当集中管理这些通信端口,以避免一个通信端口同时被两个请求同时调用。

(2)使用JavaBean的原因

程序中往往有重复使用的段落,JavaBean就是为了能够重复使用而设计的程序段落,而且这些段落并不只服务于某一个程序,而且每个JavaBean都具有特定功能,当需要这个功能的时候就可以调用相应的JavaBean。从这个意义上来讲,JavaBean大大简化了程序的设计过程,也方便了其他程序的重复使用。

JavaBean传统应用于可视化领域,如AWT(窗口工具集)下的应用。而现在,JavaBean更多地应用于非可视化领域,同时,JavaBean在服务器端的应用也表现出强大的优势。非可视化的JavaBean可以很好地实现业务逻辑、雅思基础控制逻辑和显示页面的分离,现在多用于后台处理,使得系统具有更好的健壮性和灵活性。JSP + JavaBean和JSP + JavaBean + Servlet成为当前开发Web应用的主流模式。

(3)JavaBean的属性

  • JavaBean的属性可以是任意类型,并且一个JavaBean可以有多个属性。每个属性通常都需要具有相应的setter、 getter方法,setter方法称为属性修改器,getter方法称为属性访问器。
  • 属性修改器必须以小写的set前缀开始,后跟属性名,且属性名的第一个字母要改为大写,例如,name属性的修改器名称为setName,password属性的修改器名称为setPassword。
  • 属性访问器通常以小写的get前缀开始,后跟属性名,且属性名的第一个字母也要改为大写,例如,name属性的访问器名称为getName,password属性的访问器名称为getPassword。
  • 一个JavaBean的某个属性也可以只有set方法或get方法,这样的属性通常也称之为只写、只读属性。

(4)在JSP中使用JavaBean

  1. 标签:用于在指定的域范围内查找指定名称的JavaBean对象:
    如果存在则直接返回该JavaBean对象的引用。
    如果不存在则实例化一个新的JavaBean对象并将它以指定的名称存储到指定的域范围中。
    常用语法

    id属性用于指定JavaBean实例对象的引用名称和其存储在域范围中的名称。
    class属性用于指定JavaBean的完整类名(即必须带有包名)。
    scope属性用于指定JavaBean实例对象所存储的域范围,英语培训费用其取值只能是page、request、session和application等四个值中的一个,其默认值是page。

例如:

翻译为(即会生成一个.java文件):

代码效果:从page返回获得person对象,如果不为null 直接使用,如果为null 创建新的Person对象

标签:用于在JSP页面中设置一个JavaBean组件的属性。
标签:用于在JSP页面中获取一个JavaBean组件的属性。

(5)实例
首先,我们写一个JavaBean:

JSP页面:

因为实际开发中,主要应用model2模式,所有javabean相关标签已经很少使用。

setProperty特殊用法
—- 根据请求数据自动封装 Person属性

技术分享图片

利用最简单的Model 1 JSP+JavaBean模式,我们可以简单的实现一个计算器的功能:

技术分享图片

代码很简单,在此就不再附上实际代码。



















以上是关于今天在用eclipse测试jsp和javabean是遇到了点问题,请大家帮帮忙的主要内容,如果未能解决你的问题,请参考以下文章

从零开始,编写简单的课程信息管理系统(使用jsp+servlet+javabean架构)

使用Eclipse开发一个基于Jsp+JavaBean+Servlet的网上书店web应用程序,数据库要求使用MySQL。

请问用eclipse怎样方便的写javabean

jsp中用javaBean传中文参数是乱码

重新编辑更详细Eclipse中编写JavaBean

javabean+jsp+servlet+jdbc