JSP程序设计第二版--附带实验代码

1. JSP概述

JSP页面的运行原理

(1) 把JSP页面的HTML标记(页面的静态部分)发送给用户的浏览器, 由浏览器中的HTML解释器负责解释执行HTML标记
(2) 负责处理JSP标记, 并将相关的处理结果发送给用户的浏览器
(3) 执行"<%“和”%>"之间的Java程序片(JSP页面的动态部分),并把执行结果交给用户的浏览器显示
(4) 当多个用户请求一个JSP页面时,Tomcat服务器为每个用户启动一个线程, 该线程负责执行常驻内存的字节码文件来响应相关用户的请求. 这些线程由tomcat服务器来管理, 将CPU的使用权在各个线程之间切换, 以保证每个线程都有机会执行字节码文件, 这与传统的CGI为每个用户启动一个进程相比, 效率要高得多.

怎么开启和关闭tomcat服务器

  1. 确保tomcat服务器使用的是JAVA_HOME环境变量设置的JDK
  2. 进入tomcat安装目录, 在bin目录下找到startup.bat, 双击即可启动, 找到shutdown.bat, 双击即可关闭

如果想要修改Tomcat服务器的端口号, 应该修改哪一个文件? 能否将端口号修改为80?

修改tomcat服务器安装目录中conf文件夹中的配置文件: server.xml.只要没有其他应用程序正在占用80端口, 就可以将端口设置为80

2. JSP页面与JSP标记

<%!%>与<%%>之间声明的变量有什么不同

<%!%>声明的变量在整个JSp页面都是有效, 是JSP的成员变量,所有用户共享成员变量
<%%>之间声明的变量是局部变量, 只能在当前JSP页面的猴急程序片以及表达式部分中有效

是否允许一个JSP页面同时含有以下两种page指令

原因: 在一个JSP页面中, 可以使用多个Page指令来指定属性以及他的值,. 需要注意的是: 可以使用多个page指令指定import属性几个值, 但是其他属性只能使用page指令指定一个值

这两条是不允许的
<% @ page contentType="text/html; charset=GB2312" %>
<% @ page contentType = "application/msword" %>

是否允许JSP页面同时含有如下两个page指令

这两条是允许的
<% @ page import="java.util.*" %>
<% @  page import="java.sql.*" %>

假设有两个用户访问下列JSP页面hello.jsp, 请问第一个访问和第二个访问hello.jsp页面的用户看到的页面效果有何不同

<%!%>是方法和变量声明, <%%>是对Java程序片进行执行, 其中<%!%>中的变量是成员变量, 可以多个JSp页面共享, 而<%%>中的只是局部变量

<% ! int sum=10;
		void add(int m){
			sum= sum + m;
}
%>
<% int n = 600;
	add(n); %>
<% =sum %>

第一个用户看到的sum是610, 第二个用户看到的是1210

请简单叙述include指令标记和include动作的不同

include指令标记的作用是在JSP页面出现该指令的位置处, 静态插入一个文件, 即JSP页面与插入的文件合并成为一个新的JSP页面, 然后JSP引擎再将这个新的JSP页面转义成Java文件. 因此在插入文件之后, 必须保证新合成的JSp页面符合JSP语法规则, 即能够成为一个JSp页面文件. include动作标记告诉JSP页面动态加载一个文件, 不把JSP页面中动作指令include所指定的文件与原JSP页面合并成一个新的JSP页面, 而是告诉Java解释器, 这个文件在JSp运行时才被处理. 如果包含的文件是JSP文件, JSp引擎就会执行这个文件, 然后将执行结果发送到客户端, 并且有客户端负责显示这些结果.;如果包含的文件是普通文件, 就将文件内容发送到客户端, 有客户端负责显示

3. TAg文件与Tag标志

用户可以通过浏览器直接访问一个tag 文件吗

不可以, tag文件可以被JSP页面动态调用, 但是用户不能够通过该tag文件所在的web服务目录直接访问这个文件

Tag文件应该存放在怎样的目录中

如果某个Web服务目录下的JSp页面准备调用一个tag文件, 那么必须在该Web服务目录之下, 建立Web服务目录\WEB-INF\tags, 其中WEB-INF, tags都是固定的子目录名称, 而tags下的子目录名字可以由用户给定, 一个tags文件必须保存到tags目录或者旗下的子目录中

4. JSP内置对象

如果表单中提交的信息有汉字应该怎么处理

将获取的字符串用ISO-8859-1进行编码,并且将编码存放到一个字节数组中, 然后再将这个数组转换为字符串对象

response调用sendRedirect(URL url)方法的作用是什么

实现用户的重定向

回答下列问题

(1) 一个用户在不同的web服务目录中的session对象相同吗?
不相同
(2) 一个用户在同一个web目录下的不同子目录中的session对象相同吗
相同
(3) 如果用户长时间不关闭浏览器, 用户的session对象可能消失吗?
可能消失
(4)用户关闭浏览器之后,用户的session一定消失吗?
一定消失

5.JSp的文件操作

File对象能读写文件吗

不能

File对象怎么获取文件的长度

调用public long length()获取

准备读取文件A.java, 正确的是?

一下两个

FileInputStream in = new FileInputStream("A.java");
FileReader fr = new FileReader(new File("A.java"));

6. 在JSP中使用数据库

什么是JDBC(Java Database Connecivity)

jdbc提供访问数据库的API,即一些由Java类和接口组成,是Java运行平台的核心库的一部分.

7. JSP与JavaBean

设Web服务目录mymoon中的JSP页面使用的一个bean,该bean的包名为blue.sky,请说明, 应当怎样保存bean的字节码

把创建bean的字节码保存到mymoon\WEB-INF\classes\blue\sky中

创建一个名字为moon的bean, 该bean含有一个String类型, 名字为number的属性.如果创建moon的java类没有提供public String getNumber()方法, 在JSp页面中是否允许使用getProperties标记获取moon属性的值?

不允许

tom.jiafei.cirlce是创建bean的类, 下列A-D中哪一个标记是正确创建session周期bean 的标记?

<jsp: useBean id = "cirlce" class="tom.jiafei.circle" scope="session">

假设创建bean的类有一个int型的属性number,下列A-D中哪一个方法是设置该属性值的方法

public void setNumber(int number){
	this.number = number;
}

8. Java Servlet基础

9. MVC与数据库操作

在JSP中, MVC操作模式中的数据模型的角色有谁担当, 控制器, 视图呢?

数据模型由JavaBean担当, 控制器又Servlet担当, 视图由JSP页面担当

MVC有什么好处

MVC的结构可以使Web程序更加具有对象化特征, 也更加容易维护

附加实验代码

<%@ page import="java.util.TreeSet" %>
<%@ page import="java.util.Iterator" %>
<%@ page import="java.io.File" %>
<%@ page import="java.io.FileReader" %>
<%@ page import="java.lang.reflect.Field" %>
<%@ page import="java.io.BufferedReader" %><%-- Created by IntelliJ IDEA. --%>


<!--                  实验1开始                -->
<%--<%@ page  contentType="text/html; ISO-8859-1" language="java"%>--%>
<%--<html>--%>
<%--<body bgcolor="yellow">--%>
<%--<font size="3">--%>
<%--    <%--%>
<%--        for (int i = 1; i < 10; i ++)--%>
<%--            for (int j = 1; j <= i ;j ++){--%>
<%--                int mul = i * j;--%>
<%--                out.print(i+"*"+j+"="+mul);--%>
<%--            }--%>
<%--        out.print("<br>");--%>
<%--        %>--%>
<%--</font>--%>
<%--</body>--%>
<%--</html>--%>
<%--<%@ page contentType="text/html; ISO-8859-1" language="java"%>--%>
<%--<html>--%>
<!--                  实验1结束              -->



<%--<h2>实验二----输入单词程序开始</h2>--%>
<%--<body bgcolor="yellow">--%>
<%--<font size="3">--%>
<%--    <form action="showDirectory.jsp" method="post">\--%>
<%--            请输入单词(用空格间隔):<input type="text" name="word"><br>--%>
<%--            <input type="submit" name="submit" value="送出">--%>
<%--    </form>--%>
<%--</font>--%>
<%--</body>--%>
<%--</html>--%>
<%--<%@ page contentType="text/html; ISO-8859-1" language="java"%>--%>
<%--<html>--%>
<%--<h2>      实验2---展示单词列表程序</h2>--%>
<%--<body bgcolor="yellow">--%>
<%--<font size="3">--%>
<%--    <%!--%>
<%--        TreeSet<String> dictionary = new TreeSet<>();--%>
<%--        public void addWord(String s){--%>
<%--            String word[]  = s.split(" ");--%>
<%--            for (int i = 0; i < word.length; i ++){--%>
<%--                dictionary.add(word[i]);--%>
<%--            }--%>
<%--        }--%>
<%--    %>--%>
<%--    <%--%>
<%--        String str = request.getParameter("word");--%>
<%--        addWord(str);--%>
<%--        Iterator<String> te = dictionary.iterator();--%>
<%--        while (te.hasNext()){--%>
<%--            String word = te.next();--%>
<%--            out.print(" "+word);--%>
<%--        }--%>
<%--        --%>
<%--    %>--%>
<%--</font>--%>
<%--</body>--%>
<%--</html>--%>
<%--<h2>实验二----输入单词程序结束</h2>--%>









<!--------------------实验3开始----------------------->
<!--leader.txt静态文本实验-->
<%--<%@ page contentType="text/html; ISO-8859-1" language="java"%>--%>
<%--<a href="first.jsp">链接到页面1</a>--%>
<%--<a href="second.jsp">链接到页面2</a>--%>
<%--<a href="third.jsp">链接到页面3</a>--%>

<%--<%@ page contentType="text/html; ISO-8859-1" language="java" %>--%>
<%--<html>--%>
<%--<body bgcolor="yellow">--%>
<%--<P> 这是页面1--%>
<%--<%@ include file="leader.txt"%>--%>
<%--</body>--%>
<%--</html>--%>
<%--<%@ page contentType="text/html; ISO-8859-1" language="java" %>--%>
<%--<html>--%>
<%--<body bgcolor="yellow">--%>
<%--<P> 这是页面2--%>
<%--    <%@ include file="leader.txt"%>--%>
<%--</body>--%>
<%--</html>--%>
<%--<%@ page contentType="text/html; ISO-8859-1" language="java" %>--%>
<%--<html>--%>
<%--<body bgcolor="yellow">--%>
<%--<P> 这是页面3--%>
<%--    <%@ include file="leader.txt"%>>--%>
<%--</body>--%>

<%--</html>--%>
<!--------------------实验3结束----------------------->

<!--------------------实验4开始----------------------->
<%@page contentType="text/html; ISO-8859-1" language="java" %>
<html>
<body>
    读取名字是ok.txt的文件
    <jsp:include page="readFile.jsp">
        <jsp:param name="file" value="xxxx"/>
    </jsp:include>
</body>
</html>

<%@ page contentType="text/html; ISO-8859-1" language="java" %>
<html>
<body>
<P> <FONT size="4">this is ReadFile.jsp</FONT>
<%
        String s = request.getParameter("file");
        File file = new File(s);
        if (file.exists()){
            out.print("<BR>文件"+s+"的内容是:");
            FileReader in = new FileReader(file);
            BufferedReader bin = new BufferedReader(in);
            String line = null;
            while ((line=bin.readLine() )!= null){
                out.print("<br>"+line);
            }
        }else{
            %>
           <jsp:forward page="error.jsp">
    <jsp:param name="mess" value="File Not Found"/>
    </jsp:forward>
        <%}%>
    
</body>
</html>
<%@ page contentType="text/html; ISO-8859-1" language="java"%>
<html>
<body>
    <
</body>
</html>
<!--------------------实验4结束----------------------->


<!--------------------实验5开始----------------------->
<%@ page contentType="text/html; ISO-8859-1"  language="java"%>
<h2>动态加载tag的jsp文件</h2>
<%@ taglib prefix="rili" tagdir="/WEB-INF/tags" %>
<html>
<body>

    <P>调用tag文件来显示日历
        <rili:showCalendar year="2012" month="12"/>

</body>
</html>

<%@ tag pageEncoding="GB2312" %>
<%@ tag import="java.util.*" %>
<%@ page import="java.util.regex.Pattern" %>
<%@ page import="javax.sound.midi.Soundbank" %>
<%@ attribute name="year" required="true" %>
<%@ attribute name="month" required="true" %>
<%
    int y = 1999, m = 1;
    String [] day = new String[42];
    try{
        y = Integer.parseInt(year);
        m = Integer.parseInt(month);
        Calendar rili = Calendar.getInstance();
        rili.set(y, m-1 ,1);//0表示1月, 11表示12月
        int 星期几  = rili.get(Calendar.DAY_OF_WEEK)-1;
        int dayAmount = 0;
        if (m == 1 || m==3 || m==5 || m==7 || m==8 || m == 12){
            dayAmount=31;
        }
        if (m == 4 || m == 6 || m == 9 || m == 11){
            dayAmount=30;
        }
        if (m == 2){
            if ((y % 4 == 0 && y % 100 != 0) || y % 400 == 0){
                dayAmount=29;
            }else{
                dayAmount=28;
            }

        }
        for (int i = 0; i < 星期几; i++){
            day[i] = "--";
        }
        for (int i = 星期几, n=1; i < 星期几+dayAmount; i ++){
            day[i] = String.valueOf(n);
            n ++;
        }
        for (int i = 0; i < 星期几; i++){
            day[i]="--";
        }
    }catch (Exception e){
        e.printStackTrace();
        out.print("年份或者月份不合理");
    }
%>
<h3><%=year%>年<%=month%>>月的日历:</h3>
<table border="1">
    <tr><th>星期一</th><th>星期二</th><th>星期三</th><th>星期四</th><th>星期五</th><th>星期六</th><th>星期天</th></tr>
    <%
        for (int n = 0; n < day.length; n +=7){
            %>
    <tr>
    <%
        for (int i = n ; i < n+7; i ++){
            %>
        <td>

            <%= day[i]%>
        </td>

       <% }

        }
    %>
    </tr>

        }
    %>
</table>
<!--------------------实验5结束----------------------->
<!--------------------实验6开始----------------------->
<%@ page contentType="text/html; ISO-8859-1" language="java" %>
<html>
<body>
    <form action="receiveNumber" method="post">
        输入运算数, 选择运算符号: <br>
        <input type="text" name="numberOne" size="6">
        <select name="operator">
            <option value="+">+</option>
            <option value="-">-</option>
            <option value="*">*</option>
            <option value="/">/</option>
        </select>
        <input type="text" name="numberTwo" size="6"><br>
        <input type="submit" name="submit" value="提交你的选择">
    </form>
</body>
</html>


<%@ page contentType="text/html; ISO-8859-1" language="java" %>
<%@ taglib prefix="computer" tagdir="/WEB-INF/tags" %>
<html>
<body>
<%
    String a = request.getParameter("numberOne");
    String b = request.getParameter("numberTwo");
    String operator = request.getParameter("operator");
    if (a == null  || b == null){
        a = ""; b = "";
    }
    if (a.length() > 0 && b.length() > 0){
        %>
    <computer: Computer numberA = "<%=a%>" numberB = "<%=b%>" operator="<%=operator%>"
               计算结果: <%=a%><%=operator%><%=b%>=<%=result%>
    <%}
%>

                       <a href="inputNumber.jsp">返回输入数据界面</c    omputer:>
</body>
</html>



<%@ tag pageEncoding="GB2312" %>
<%@ attribute name="numberA" required="true"%>
<%@ attribute name="numberB" required="true"%>
<%@ attribute name="result" required="true"%>
<%@ variable name-given="result" scope="AT_END"%>

<%
    try{
        double a = Double.parseDouble(numberA);
        double b = Double.parseDouble(numberB);
        double r = 0;
        if (operator.equals("+")){
            r= a+b;
        }else if(operator.equals("-")){
            r=a-b;
        }else if(operator.equals("*")){
            r=a*b;
        }else if(operator.equals("/")){
            r=a/b;
        }
        jspContext.setAttribute("result", String.valueOf(r));
    }catch (Exception e){
        e.printStackTrace();
        jspContext.setAttribute("result", "发生异常:"+e);
    }
%>
<!--------------------实验6结束----------------------->
<!--------------------实验7开始----------------------->

<%@ page contentType="text/html; ISO-8859-1" language="java"%>
<html>
<body>
    <font>
        <form action = "draeCircle.jsp" method="post">
            输入园的半径: <input type="text" name="radius" size="6">
            <input type="submit" name="submit">
        </form>
    </font>

</body>
</html>
<%@ page contentType="text/html; ISO-8859-1" language="java"%>
<%@ page import="java.awt.*"%>
<%@ page import="java.util.*"%>
<%@ page import="java.io.*"%>
<%@ page import="java.awt.image.*"%>
<%@ page import="java.awt.geom.*"%>
<%@ page import="com.sun.image.codec.jpeg.*"%>
<%@ page import="java.nio.Buffer" %>
<html>
<body>
<%
    String R = request.getParameter("radius");
    try{
        double number  = Double.parseDouble(R);
        if (number < 0 || number > 100){
            response.setContentType("text/plain;charset=GB2312");
            out.print(number+"作为园的半径不合理");
        }
        else if (number > 0 && number <= 100){
            response.setContentType("image/jpeg");
            int width = 100, height = 100;
            BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
            Graphics graphics = image.createGraphics();
            graphics.setColor(Color.WHITE);
            graphics.fillRect(0, 0, width, height);
            Graphics2D graphics2D = (Graphics2D) graphics;
            Ellipse2D circle = new Ellipse2D.Double(0, 0, number, number);
            graphics2D.setColor(Color.BLUE);
            graphics2D.fill(circle);
            graphics.dispose();
            OutputStream outputStream = response.getOutputStream();
            JPEGImageEncoder encoder = JPEGImageEncoder.createJPEGEncoder(outputStream);
            encoder.encode(image);
        }
    }catch (Exception e){
        e.printStackTrace();
        response.sendRedirect("inputRadius.jsp");
    }
%>
</body>
</html>
<!--------------------实验7结束----------------------->
<!--------------------实验8开始----------------------->
<%@ page contentType="text/html; ISO-8859-1" language="java"%>
<html>

<P>选择所有图书
<table>
    <tr><td><a href="orderForm.jsp ? bookMess=Java面向对象"></a> </td></tr>

</table>
</html>

<%@ page contentType="text/html; ISO-8859-1" language="java"%>
<%@ page import="java.util.*"%>
<%
    String book = request.getParameter("bookMess");
    if (book != null){
        StringTokenizer fenxi = new StringTokenizer(book, "@");
        String bookName = fenxi.nextToken();
        String bookISBN = fenxi.nextToken();
        session.setAttribute(bookISBN, book);
    }
%>
<html>

<%@ page contentType="text/html; ISO-8859-1" language="java"%>
<%
    Enumeration keys = session.getAttributeNames();
    while (keys.hasMoreElements()){
        String key = (String) keys.nextElement();
        book = session.getAttribute(key);
        if (book != null){
            StringTokenizer fexi = new StringTokenizer(book, "@");
            
        }
    }
%>
</html>
<!--------------------实验8结束----------------------->
参与评论 您还未登录,请先 登录 后发表或查看评论
前言:找了很久终于找到清华大学出社的JSP程序设计第2,耿祥义老师著作,大学java web课程的常用教材书,在此免费分享给大家。 JSP是由Sun公司倡导、许多公司参与,于1999年推出的一种动态网页技术标准。JSP是基于Java Servlet以及整个Java体系的Web开发技术,利用这一技术可以建立安全、跨平台的先进动态网站,这项技术还在不断地更新和优化中。JSPJava技术为基础,又在许多方面做了改进,具有动态页面与静态页面分离,能够脱离硬件平台的束缚,以及编译后多平台运行等优点,JSP已经成为Internet上的主流开发工具。 本书第2对一些例子和部分内容做了适度的调整、更新和修改,考虑到数据库在Web设计中的重要作用,本书第2加强了数据库的知识容量,特别采用了目前在Web设计中占主导地位的MySQL数据库作为主要的数据库来讲解有关知识点。本书分为10章,第1章主要介绍Tomcat的安装与配置,通过一个简单的JSP页面初识JSP概貌。第2章详细讲解JSP的基本语法,包括程序片,页面指令等重要内容。第3章主要讲解Tag文件与标记,特别重点强调了怎样使用Tag文件实现代码复用。第4章主要讲解JSP的内置对象,特别重点讲解了session会话对象。第5章讲解输入/输出流技术,重点介绍了文件的上传与下载以及怎样使用Tag标记实现文件的读/写操作。第6章涉及的内容是数据库,也是Web应用开发的非常重要的一部分内容,采用MySQL数据库讲解主要知识点,也特别介绍了各种数据库的连接方式。第7章讲解JavaBean的使用,是JSP技术中很重要的内容,即怎样使用JavaBean分离数据的显示和处理,给出了许多有一定应用价值的例子。第8章讲解Servlet,对servlet对象的运行原理给予了详细的讲解。在第9章对Servlet在MVC开发模式中的地位给予了重点介绍,并按照MVC模式给出了易于理解MVC设计模式的例子,本章中的许多例子都是大多数Web开发中经常使用的模块。第10章是一个完整的网站,完全按照MVC模式开发设计,其目的是掌握一般Web应用中常用基本模块的开发方法。
第二版) 清华大学出社(耿祥义 张跃平编著) 程序源代码 建议使用文档结构图浏览使用 (选择Word菜单→视图→文档结构图) 摘 要 JSP是一种动态网页技术标准,利用这一技术可以建立安全、跨平台的先进动态网站。 本书是一本实用教程,配备了大量的例题,叙述详细,通俗易懂,便于自学,特别注重结合实例讲解一些难点和关键技术。全书共分10章,内容包括JSP简介、JSP语法、内置对象、JSPJavabean、文件操作、数据库操作、JavaServlet、MVC设计模式、JSP中使用XML等重要内容。本书所有知识都结合具体实例进行介绍.力求详略得当,突出JSP在开发Web动态网站方面的强大功能,使读者快速掌握和运用JSP的编程技巧。 本书不仅可以作为大学计算机及相关专业的选修课教材,也适合自学者及网站开发人员参考使用。 前 言 本书是《JSP实用教程》的第二版,继续保留原教材的特点——注重教材的可读性和实用性,许多例题都经过精心的考虑,即能帮助理解知识,同时又具有启发性。在第二版中增加了XML和MVC模式在Web设计中的应用,对全书章节的先后顺序和部分例题的内容做了调整。 第1章介绍JSP重要性,对Tomcat服务器的安装与配置给予了详细介绍。第2章讲解JSP页面的基本构成、常用的JSP标记。第3章讲解内置对象,特别强调了这些内置对象在JSP应用开发中的重要性,结合实例使读者掌握内置对象的用法。第4章是JSP技术中很重要的内容,即怎样使用Javabean分离数据的显示和处理,这一章讲解了许多有一定应用价值的例子。第5章主要讲解怎样使用Java中的输入输出流实现文件的读写操作,在实例上特别强调怎样使用Javabean实现文件的读写操作。第6章涉及的内容是数据库,也是Web应用开发的非常重要的一部分内容,特别介绍了各种数据库的连接方式。第7章讲解JavaServlet,对servlet对象的运行原理给予了细致的讲解,许多例子都是大多数Web开发中经常使用的模块。在第8章对Java Servlet在MVC开发模式中的地位给予了重点介绍,并按着MVC模式给出了易于理解MVC设计模式的例子。第9章介绍了XML语言以及在JSP中怎样有效地使用XML文件。第10章是一个完整的网站,完全按着MVC模式开发设计,其目的是掌握一般Web应用中常用基本模块的开发方法。 作者简介 耿祥义,1995年中国科学技术大学博士毕业,获理学博士学位。1997年从中山大学博士后流动站出站。现任大连交通大学教授。已编写出Java 2实用教程》、《Java 课程设计》、《JSP 实用教程》、《JSP 基础教程》、《XML 基础教程》等10余部教材。 张跃平,现任大连交通大学讲师。已编写和参编出《Visual FoxPro课程设计》、《Java 2实用教程》、《JSP 实用教程》3部教材。 希望本教材能对读者学习JSP有所帮助,并请读者批评指正(xygeng0629@sina.com)。 编者 2007年05月 第1章 JSP 简介 1 例子1 1 第2章 JSP语法 2 例子1 2 2 <% date=new Date(); //java程序片 2 2 例子2 2 例子3 3 例子4 3 例子5 4 例子6 4 例子7 5 例子8 5 例子9 6 例子10 7 例子11 7 例子12 8 例子13 9 第3章 JSP 内置对象 10 例子1 10 例子2 10 例子3 11 例子4 12 例子5 14 例子6 15 例子7 16 例子8 17 例子9 17 例子10 18 例子11 18 例子12 19 例子13 20 例子14 21 例子15 22 例子16 24 例子17 25 例子18 27 例子19 29 第4章 JSPJavaBean 31 Circle.java 31 例子1 31 例子2 32 例子3 32 NewCircle.java 32 例子4 33 Student.java 33 例子5 34 Goods.java 34 例子6 35 ListFile.java 36 例子7 36 三角形bean 37 Triangle.java 37 四则运算bean 38 Compu

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:黑客帝国 设计师:我叫白小胖 返回首页

打赏作者

天又热了

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值