文档库 最新最全的文档下载
当前位置:文档库 › 高级Java程序设计实验指导书

高级Java程序设计实验指导书

高级Java程序设计实验指导书
高级Java程序设计实验指导书

《高级Java程序设计》

实验指导书

四川农业大学商学院

目录

实验一简单的Servlet与JSP (1)

实验二HTTP请求对象 (3)

实验三HTTP响应对象 (7)

实验四Servlet容器模型 (9)

实验五会话管理 (13)

实验六JSP基本语法与页面指令 (16)

实验七JSP隐含对象与作用域 (20)

实验八Web组件重用与JavaBeans (24)

实验九JDBC访问数据库 (27)

实验十表达式语言的使用 (35)

实验十一用户自定义标签 (41)

实验十二JSTL与标签文件 (44)

实验十三Servlet事件处理 (50)

实验十四Servlet过滤器的使用 (55)

实验十五Web应用的安全性 (59)

说明:

本实验指导书根据《高级Java程序设计》课程教学大纲编写,共包括15个实验,每个实验2学时,学生每周完成一个实验。

实验环境:

计算机系统应该安装JDK 1.5以上版本,开发工具使用JCreator 4.5 Pro版,服务器使用Tomcat 6.0.20版,数据库使用PostgreSQL 8.3.0版。

该实验指导书的配套教材是《Java Web编程技术》沈泽刚主编,清华大学出版社,2010.3。

实验一简单的Servlet与JSP

一、实验目的

1. 了解和掌握Servlet和JSP页面的编写和运行。

2. 比较Servlet与JSP的区别和联系,体会动态页面的含义。

二、实验原理

Servlet是运行在服务器端的Java程序,它主要是为了扩展服务器的功能。编写和运行Servlet一般要经过4个步骤:(1)编辑源文件,它是继承HttpServlet的Java类;(2)编译源文件;(3)在服务器中部署该Servlet,即将类文件存放到服务器的适当目录中,并修改web.xml部署描述文件;(4)使用浏览器访问该Servlet程序。

JSP是一种服务器端的动态页面技术,它的实质也是Servlet。它的编写较Servlet容易。二者的主要区别是:Servlet通常是实现业务逻辑,而JSP通常实现表示逻辑。

三、实验内容与步骤

(一)编写和运行一个简单的Servlet

【步骤1】在Tomcat安装目录的webapps下建立一个helloapp的目录,在其中再建立一个WEB-INF 目录,在WEB-INF目录中建立一个classes目录。这样就建立了一个名为helloapp的Web应用程序。

【步骤2】编写下面Servlet类,编译并将类文件放入classes目录中

package com.demo;

import java.io.*;

import javax.servlet.*;

import javax.servlet.http.*;

public class HelloServlet extends HttpServlet{

public void service(HttpServletRequest request,

HttpServletResponse response)

throws ServletException,IOException{

PrintWriter out = response.getWriter();

out.println("");

out.println("");

out.println("");

out.println("");

out.println("

Hello World!

");

out.println("");

out.println("");

}

}

【步骤3】在WEB-INF目录中建立一个名为web.xml的文件,该文件为Web应用程序的部署描述文件,简称DD。具体内容如下:

xmlns:xsi="https://www.wendangku.net/doc/eb9997934.html,/2001/XMLSchema-instance"

xsi:schemaLocation="https://www.wendangku.net/doc/eb9997934.html,/xml/ns/j2ee

https://www.wendangku.net/doc/eb9997934.html,/xml/ns/j2ee/web-app_2_5.xsd"

version="2.5">

helloServlet

com.demo.HelloServlet

helloServlet

/hello

【步骤4】在浏览器的地址栏中输入下列地址访问该Servlet。

http://localhost:8080/helloapp/hello

在浏览器的窗口中应该显示Hello, World!内容。

(二)下面的Servlet可显示系统当前时间。请编译并部署该Servlet,然后使用浏览器访问。

package com.demo;

import java.io.*;

import javax.servlet.*;

import javax.servlet.http.*;

public class HelloWorldServlet extends HttpServlet{

public void service( )

throws ServletException,IOException{

PrintWriter out = ;

out.println("");

out.println("");

out.println("");

out.println("");

out.println(" ");

out.println("

Hello,World!

");

out.println("The time now is:"+new java.util.Date());

out.println("");

out.println("");

}

}

(三)编写下面的JSP文件,将其用hello.jsp名保存到helloapp目录中

A Simple JSP Page

Hello,World!

The time now is:<%=new java.util.Date()%>

使用下面的URL访问该页面:

http://localhost:8080/helloapp/hello.jsp

(四)运行下面的JSP页面square.jsp

<% for ( int i=0; i<10; i++ ) { %>

<% } %>

numbersquared
<%= i %><%= (i * i) %>

(五)改写上述页面,使其运行后产生下列页面。

图1.1 square.jsp运行结果

四、思考题

1. 如何安装配置JDK和Tomcat?

2. 如何在Tomcat中运行Servlet和JSP页面?

实验二HTTP请求对象

一、实验目的

1. 掌握如何获得请求参数;

2. 掌握如何检索请求头;

3. 了解如何通过请求对象获得客户信息;

4. 重点掌握使用请求对象存储数据和请求转发。

二、实验原理

对客户的请求,容器根据请求调用Servlet的相应doXxx()方法,该方法带有两个参数,一个是HttpServletRequest,一个是HttpServletResponse,它们分别表示请求对象和响应对象,它们是容器自动创建的两个对象。可以使用这两个接口定义的若干方法完成有关操作。

三、实验内容与步骤

(一)通过查询串传递请求参数,并在Servlet中检索请求参数

【步骤1】编写下面的Servlet。

package com.demo;

import java.io.*;

import javax.servlet.*;

import javax.servlet.http.*;

public class HelloUserServlet extends HttpServlet{

public void service(HttpServletRequest request,HttpServletResponse response)

throws ServletException, IOException{

String userName = request.getParameter("userName");

PrintWriter pw = response.getWriter();

pw.println("");

pw.println("");

pw.println("");

pw.println("");

pw.println("

Hello, " + userName + "

");

pw.println("");

pw.println("");

}

}

【步骤2】编译该Servlet,然后修改web.xml文件,将下面代码添加到其中:

helloUserServlet

com.demo.HelloUserServlet

helloUser

/hellouser

【步骤3】使用下面的URL访问之。

http://localhost:8080/helloapp/hellouser?userName=John

将userName的值改为你自己的名字,看输出结果。若不给出查询字符串,结果如何?参数值使用汉字如何?

(二)通过表单传递请求参数,使用HttpServletRequest对象获得请求参数

【步骤1】首先编写一个input.html文件,存放在helloapp目录中。该页面在屏幕上显示一个表单,其中包括姓名和年龄域,点击“确定”按钮后,将表单参数传递给ParamServlet并显示出来。

input.html代码如下:

参数传递

从表单向Servlet传递参数

姓名:

年龄:

【步骤2】编写ParamServlet.java,其代码如下:

package com.demo;

import java.io.*;

import java.util.*;

import javax.servlet.*;

import javax.servlet.http.*;

public class ParamServlet extends HttpServlet {

public void doGet(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException{

response.setCharacterEncoding("gb2312");

response.setContentType("text/html;charset=gb2312");

String name = request.getParameter("name");

name = new String(name.getBytes("iso8859-1"),"gb2312");

String age = request.getParameter("age");

age = new String(age.getBytes("iso8859-1"),"gb2312");

PrintWriter pw = response.getWriter();

pw.println("");

pw.println("");

pw.println("");

pw.println("");

pw.println("

姓名:"+name+"

");

pw.println("

年龄:"+age+"

");

pw.println("");

pw.println("");

}

public void doPost(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException{

doGet(request, response);

}

}

【步骤3】修改web.xml文件,将下面代码添加到其中:

ParamServlet

com.demo.ParamServlet

ParamServlet

/paramtest

【步骤4】测试参数传递。在浏览器的地址栏中输入:http://localhost:8080/helloapp/input.html。输入数据,点击“确定”按钮,体会表单参数的传递。

问题1:如何通过超链接的锚标签()传递请求参数?

(三)编写一个Servlet,显示所有请求头

【步骤1】ShowHeadersServlet.java的Servlet能够检索所有的请求头,代码如下:

package com.demo;

import java.io.*;

import java.util.*;

import javax.servlet.*;

import javax.servlet.http.*;

public class ShowHeadersServlet extends HttpServlet {

public void doGet(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException{

response.setContentType("text/html;charset=gb2312");

PrintWriter out = response.getWriter();

out.println("");

out.println("All Headers");

out.println("");

out.println("");

out.println("

All Request Headers

");

out.println("

\n"+

"

\n"+

"

Header NameHeader V alue");

Enumeration headerNames = request.getHeaderNames();

while(headerNames.hasMoreElements()){

String headerName = (String)headerNames.nextElement();

out.println("

"+headerName);

out.println("

"+request.getHeader(headerName));

}

out.println("

\n");

}

public void doPost(HttpServletRequest request,

HttpServletResponse response)

throws ServletException, IOException{

doGet(request, response);

}

}

【步骤2】修改web.xml,加入下面内容:

ShowHeadersServlet

/showheaders

【步骤3】在浏览器地址栏中输入下面URL访问该Servlet

(四)简单的综合应用

【步骤1】创建一个名为input.html的HTML页面,其中包括一个表单,表单中包含两个文本域,分别供用户输入学号和姓名,该页面也包含提交和重置按钮。

【步骤2】定义一个名为com.demo.Student类,其中包括学号sno和姓名name两个private的成员变量,定义访问和修改sno和name的方法。

【步骤3】编写名为FirstServlet的Servlet,要求当用户在input.html中输入信息后点击“提交”按钮,请求FirstServlet对其处理。在FirstServlet中使用表单传递的参数(学号和姓名)创建一个Student 对象并将其作为属性存储在请求对象中,然后获得通过请求对象的getRequestDispatcher()方法获得RequestDispatcher()对象,将请求转发到SecondServlet。

【步骤4】在SecondServlet中取出请求对象上存储的Student对象,并显示输出该学生的学号和姓名。在SecondServlet的输出中应该包含一个超链接,点击该连接可以返回input.html页面。

图2.1 input.html页面显示结果图2.2 SecondServlet显示结果

四、思考题

1. 在Servlet中如何获得请求参数?

2. 如何实现请求转发?如何在请求对象中共享数据?

实验三HTTP响应对象

一、实验目的

1. 了解和掌握如何从响应对象获得输出流对象;

2. 掌握如何设置响应类型;

3. 掌握如何设置响应头和状态码;

4. 重点掌握如何实现响应重定向。

二、实验原理

对Servlet的请求目的是要获得响应消息。Servlet要向用户发送响应数据首先要获得输出流对象。另外,通过响应对象还可向客户端发送状态码,也可以设置有关响应头,还可以对响应重定向。

三、实验内容与步骤

(一)通过设置响应内容类型构建Excel电子表格

package com.demo;

import java.io.*;

import java.util.*;

import javax.servlet.*;

import javax.servlet.http.*;

public class ExcelServlet extends HttpServlet{

public void doGet(HttpServletRequest request,

HttpServletResponse response)

throws ServletException, IOException{

response.setHeader("Cache-Control","no-cache");

response.setContentType("application/vnd.ms-excel;charset=gb2312");

PrintWriter out = response.getWriter();

out.println("

Student information

");

out.println("学号\t姓名\t性别\t年龄\t所在系");

out.println("95001\t李勇\t男\t20\t信息");

out.println("95002\t刘晨\t女\t19\t数学");

}

}

该程序的运行结果如下图所示:

图3.1 生成Excel电子表格

(二)向客户发送二进制文件

package com.demo;

import java.io.*;

import java.util.*;

import javax.servlet.*;

import javax.servlet.http.*;

public class DownloadServlet extends HttpServlet{

public void doGet(HttpServletRequest request,

HttpServletResponse response)

throws ServletException, IOException{

response.setContentType("application/jar");

File f = new File("C:\\servlet-api.jar");

FileInputStream is = new FileInputStream(f);

ServletOutputStream os = response.getOutputStream();

byte[] bytearray = new byte[1024];

int bytesread = 0;

while( (bytesread = is.read(bytearray) ) != -1 ){

os.write(bytearray, 0, bytesread);

}

os.flush();

}

}

注意:此Servlet正确运行,需要将servlet-api.jar文件复制到C盘根目录下。

(三)下面的ShowTimeServlet通过设置refresh响应头实现每2秒钟刷新一次页面。package com.demo;

import java.io.*;

import java.util.*;

import java.text.SimpleDateFormat;

import javax.servlet.*;

import javax.servlet.http.*;

public class ShowTimeServlet extends HttpServlet{

public void doGet(HttpServletRequest request,

HttpServletResponse response)

throws ServletException, IOException{

response.setContentType("text/html;charset=gb2312");

response.setHeader("refresh","2");

PrintWriter out = response.getWriter();

Date date = new Date();

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd a HH:mm:ss");

String s = sdf.format(date);

out.println("");

out.println("");

out.println("

每5秒钟刷新一次页面

");

out.println("

现在的时间是:"+s+"

");

out.println("");

out.println("");

}

}

(四)响应重定向

【步骤1】建立下面的login.html登录页面

Login Page

cellpading="2" cellspacing="1">

【步骤2】编写一个名为RedirectServlet的Servlet,在其中检索用户名和口令参数值,然后判断其是否正确(若用户名和口令都为admin即认为正确),如果正确将响应重定向到welcome.html页面,否则将响应重定向到error.html页面,这两个页面请你自己编写,存放在应用程序根目录。下面是Servlet 的部分代码。

package com.demo;

import java.io.*;

import javax.servlet.*;

import javax.servlet.http.*;

public class RedirectServlet extends HttpServlet{

public void doPost(HttpServletRequest request,

HttpServletResponse response)

throws IOException,ServletException{

// 此处添加若干代码

if( ){

response.sendRedirect( );

}else{

response.sendRedirect( );

}

}

}

四、思考题

1. 如何理解Servlet的生命周期?

2. 如何理解请求转发与响应重定向?

实验四Servlet容器模型

一、实验目的

1. 掌握Web应用程序的DD文件web.xml的配置方法和作用;

2. 掌握如何通过ServletConfig获取Servlet的初始化参数;

3. 掌握ServletContext的概念,如何获得ServletContext对象;

4. 掌握如何通过RequestDispatcher转发请求。

二、实验原理

Web应用程序有严格定义的目录结构,它需要一个称为部署描述文件的文件web.xml来配置。对应用程序的每个Servlet,可以在web.xml中定义若干个初始化参数,然后通过ServletConfig对象获取这些参数。

ServletContext对象表示该应用程序的环境,通过该对象可以获得应用程序范围的初始化参数、容器版本信息、资源的URL、在其中存放共享数据以及登录日志等。

三、实验内容与步骤

(一)建立一个名为bookstore的Web应用程序

在Tomcat的webapps目录下,建立一个如下所示的目录结构:

|- bookstore

|- html (包含所有的HTML文件)

|- jsp (包含所有的JSP文件)

|- images (包含所有的GIF、JPEG和BMP图象文件)

|- index.html (默认的HTML文件)

|- WEB-INF

|-classes

├ lib

├ web.xml

图4.1 bookstore应用程序的目录结构

这样就建立了一个名为bookstore的Web应用程序,本实验后面的题目都在该应用程序下面完成。

(二)使用ServletConfig检索Servlet的初始化参数

【步骤1】编写ConfigDemoServlet程序,内容如下:

package com.demo;

import java.io.*;

import java.sql.*;

import javax.servlet.*;

import javax.servlet.http.*;

public class ConfigDemoServlet extends HttpServlet{

String servletName=null;

ServletConfig config=null;

String email=null;

String telephone=null;

public void init() {

config = getServletConfig();

servletName = config.getServletName();

email = config.getInitParameter("email");

telephone = config.getInitParameter("telephone");

}

public void service(HttpServletRequest request, HttpServletResponse response)

throws ServletException,IOException{

response.setContentType("text/html;charset=gb2312");

PrintWriter out = response.getWriter();

out.println("");

out.println("Servlet名称:"+servletName+"
");

out.println("Email地址:"+email+"
");

out.println("电话:"+telephone);

out.println("");

}

}

【步骤2】修改web.xml文件,在其中添加下面Servlet定义和初始化参数定义

configDemoServlet

com.demo.ConfigDemoServlet

email

hacker@https://www.wendangku.net/doc/eb9997934.html,

telephone

8899123

1

configDemoServlet

/configDemo.do

【步骤3】在浏览器的地址栏中输入下面URL访问该Servlet:

http://localhost:8080/bookstore/configDemo.do

程序运行结果如下图所示:

图4.1 ConfigDemoServlet程序的运行结果

(三)ServletContext的使用

修改上面程序,将email地址和电话使用ServletContext初始化参数传递给ConfigDemoServlet。使用ServletContext对象将email地址和电话信息写入日志文件中,并查看日志文件。

(五)下面是一个Servlet,它可以获得有关服务器的信息。

package com.demo;

import java.io.*;

import java.util.*;

import javax.servlet.*;

public class ServerInfo extends GenericServlet {

public void service(ServletRequest request, ServletResponse response)

throws ServletException, IOException {

response.setContentType("text/html;charset=GB2312");

PrintWriter out = response.getWriter();

ServletContext sc = getServletContext();

out.println("");

out.println("");

out.println("");

out.println("获取服务器端信息");

out.println("");

out.println("");

out.println("

服务器端信息:

");

out.println("

用户名:
密  码:

 

");

out.println("

");

out.println("

");

out.println("

");

out.println("

");

out.println("

");

out.println("

");

out.println("

");

out.println("

");

out.println("

");

out.println("

");

out.println("

");

out.println("

");

out.println("

");

out.println("

");

out.println("

");

out.println("

");

out.println("

");

out.println("

");

out.println("

");

out.println("

");

out.println("

站点名" + request.getServerName() + "
端口号" + request.getServerPort() + "
服务器类型" + sc.getServerInfo() + "
支持Servlet版本"+sc.getMajorVersion()+"."+sc.getMinorVersion()+"
服务器属性");

// 获得服务器属性集合

Enumeration attributes = sc.getAttributeNames();

while (attributes.hasMoreElements()) {

String name = (String)attributes.nextElement();

out.println(name);

}

out.println("

");

out.println("");

out.println("");

}

}

(六)简单的综合应用

【步骤1】创建一个名为input.html的HTML页面,其中包括一个表单,表单中包含两个文本域,分别供用户输入学号和姓名,该页面也包含提交和重置按钮。

【步骤2】定义一个名为com.demo.Student类,其中包括学号sno和姓名name两个private的成员变量,定义访问和修改sno和name的方法。

【步骤3】编写名为FirstServlet的Servlet,要求当用户在input.html中输入信息后点击“提交”按钮,请求FirstServlet对其处理。在FirstServlet中使用表单传递的参数(学号和姓名)创建一个Student 对象并将其作为属性存储在ServletContext对象中,然后获得通过ServletContext的getRequestDispatcher()

方法获得RequestDispatcher()对象,将请求转发到SecondServlet。

【步骤4】在SecondServlet中取出ServletContext上存储的Student对象,并显示输出该学生的学号和姓名。在SecondServlet的输出中应该包含一个超链接,点击该连接可以返回input.html页面。

图4.2 input.html页面显示结果图4.3 SecondServlet显示结果

四、思考题

1. 如何通过ServletConfig获得Servlet参数?

2. 如何获得ServletContext对象,如何通过该对象获得上下文参数?

3. 如何使用ServletContext共享数据?

实验五会话管理

一、实验目的

1. 了解Web服务器对客户跟踪的各种方法;

2. 重点掌握使用HttpSession对象跟踪会话的方法;

3. 掌握使用Cookie技术跟踪会话的方法;

4. 了解URL重写和隐藏表单域的方法。

二、实验原理

HTTP协议是无状态的协议。在很多情况下,Web服务器必须能够跟踪客户的状态。比如,对于一个购物网站,在一个时刻可能有多个客户购物,Web服务器必须能够区分不同的客户。一般情况下,Web 服务器为每个客户配置了虚拟的购物车(ShoppingCart)。当某个客户请求将一个商品放入购物车时,Web服务器必须根据发出请求的客户的身份,找到该客户的购物车,然后把商品放入其中。

Web服务器跟踪客户的状态通常有4种方法:

(1)使用HttpSession对象管理会话;(2)使用持久的Cookie对象;(3)使用URL重写机制;(4)使用隐藏的表单域。

三、实验内容与步骤

(一)使用HttpSession对象管理会话。

package com.demo;

import java.io.*;

import javax.servlet.*;

import javax.servlet.http.*;

import java.util.Date;

public class ShowSession extends HttpServlet{

public void doGet(HttpServletRequest request,

HttpServletResponse response)

throws ServletException, IOException {

response.setContentType("text/html");

HttpSession session = request.getSession();

String heading =null;

Integer accessCount = (Integer)session.getAttribute("accessCount");

if(accessCount==null){

accessCount = new Integer(0);

heading = "Welcome, Newcomer";

}else{

heading = "Welcome Back.";

accessCount = new Integer(accessCount.intValue()+1);

}

session.setAttribute("accessCount",accessCount);

PrintWriter out = response.getWriter();

out.println("");

out.println("Session Tracking Example");

out.println("

");

out.println("

"+heading+"

");

out.println("

Information about your session.

");

out.println("

");

out.println("

Info TypeValue\n");

out.println("

ID"+session.getId()+"\n");

out.println("

Creation Time:");

out.println(""+new Date(session.getCreationTime())+"\n");

out.println("

Time of last access:");

out.println(""+new Date(session.getLastAccessedTime())+"\n");

out.println("

Access number:"+accessCount+"\n");

out.println("

");

}

}

图5.1 ShowSession程序的运行结果

(二)使用Cookie跟踪会话

使用Cookie跟踪会话涉及到向客户端写入Cookie和从客户端读取Cookie。【步骤1】向客户端写入Cookie对象

package test;

import java.io.*;

import javax.servlet.*;

import javax.servlet.http.*;

public class SendCookie extends HttpServlet{

public void doGet(HttpServletRequest request,

HttpServletResponse response)

throws IOException,ServletException{

Cookie userCookie = new Cookie("user", "uid1234");

userCookie. setMaxAge(60*60*24*7);

response.addCookie(userCookie);

response.setContentType("text/html");

PrintWriter out=response.getWriter();

out.println("add cookies");

out.println("

"+

"A cookie has been sent to brower

");

out.println("");

}

}

访问上述Servlet将向客户端写入一个Cookie,执行后可查看客户机对应目录看是否写了一个文件。

图5.2 SendCookie程序的运行结果

【步骤2】从客户端读取Cookie对象

package test;

import java.io.*;

import javax.servlet.*;

import javax.servlet.http.*;

public class GetCookie extends HttpServlet{

public void doGet(HttpServletRequest

request,HttpServletResponse response)

throws IOException,ServletException{

String cookieName = "user";

String cookieValue = null;

Cookie[] cookies = request.getCookies();

if (cookies!=null){

for(int i = 0;i

Cookie cookie = cookies[i];

if(cookie.getName().equals(cookieName))

cookieValue = cookie.getValue();

}

}

response.setContentType("text/html");

PrintWriter out=response.getWriter();

out.println("get cookies");

out.println("

A cookie has been got from brower

");

out.println("CookieName:"+cookieName+"
");

out.println("CookieValue:"+cookieValue+"
");

out.println("");

}

}

图5.3 GetCookie程序的运行结果

四、思考题

1. 简述会话管理的常用方法有哪些?

2. 如何使用HttpSession对象共享数据?

实验六JSP基本语法与页面指令

一、实验目的

1. 熟练掌握JSP的声明、表达式、小脚本和注释的使用;

2. 理解JSP页面(page)指令和动作的语法格式;

3. 理解JSP页面的生命周期。

4. 熟练掌握page指令的下面的属性:import、session、errorPage、isErrorPage、contentType、pageEncoding。

5. 理解page指令的下面的属性:language、extends、buffer、autoFlush、info。

二、实验原理

JSP有三个指令元素:page、include和taglib。这些指令元素是针对JSP引擎的,并不会产生任何看得见的输出。它们都包含在<%@和%>标签内。本实验主要学习page指令。

<%@ page %>指令作用于整个JSP页面,包括静态包含的页面,但不包括动态包含的页面。可以在一个页面中包含多个<%@ page %>指令,但其属性除import外只能在整个页面中出现一次。

<%@ page %>指令可以放在页面的任何位置,但为了JSP程序的可读性,一般将<%@ page %>指令放在页面的前面。

三、实验内容与步骤

(一)输入并执行下面JSP页面,文件名为counter.jsp

<%@ page language="java" %>

<%! int count = 0; %>

<% count++; %>

Welcome! You are visitor number

<%= count %>

【步骤1】该JSP页面包含哪些JSP语法元素。在浏览器中访问该页面,输出结果如何?多次刷新页面,结果如何?

【步骤2】打开counter.jsp转换后的源文件counter_jsp.java,对应的类文件在哪里?文件名是什么?

【步骤3】查看count变量是在哪里声明的?

【步骤4】将上面JSP页面中的<%! int count = 0; %>一行改为<% int count = 0; %>,页面能否正常执行,它与上面页面有什么区别?

(二)有下面expression.jsp页面:

<%@ page language="java" %>

<%!

int anInt = 3;

boolean aBool = true;

Integer anIntObj = new Integer(3);

Float aFloatObj = new Float(8.6);

String str = "some string";

StringBuffer sBuff = new StringBuffer();

char getChar(){ return 'A'; }

%>

<%= 500 %>

<%= anInt*3.5/100-500 %>

<%= aBool %>

<%= false %>

<%= !false %>

<%= getChar() %>

<%= Math.random() %>

<%= aVector %>

<%= aFloatObj %>

<%= aFloatObj.floatValue() %>

<%= aFloatObj.toString() %>

<%= aBool; %>

<%= int i = 20 %>

<%= sBuff.setLength(12); %>

你能找出其中的错误吗?你可试着执行该页面,看会出现什么结果?将其中错误修改过来,最后输出下面结果:

图6.1 expression.jsp的运行结果

(三)运行下面persistent_counter.jsp页面,体会如何实现持久的计数器的?

<%@ page language="java" import="java.io.*" %>

<%!

int count = 0;

String dbPath;

public void jspInit(){

try{

dbPath = getServletContext().getRealPath("/WEB-INF/counter.db");

FileInputStream fis = new FileInputStream(dbPath);

DataInputStream dis = new DataInputStream(fis);

count = dis.readInt();

dis.close();

}

catch(Exception e){

log("Error loading persistent counter", e);

}

}

%>

<%--下面是向浏览器输出的主要内容,

它将成为产生的_jspService()方法的一部分

--%>

<% count++; %>

Welcome! You are <%= count %> th visitor(s).

<%!

public void jspDestroy(){

try{

FileOutputStream fos = new FileOutputStream(dbPath);

DataOutputStream dos = new DataOutputStream(fos);

dos.writeInt(count);

dos.close();

}

catch(Exception e){

log("Error storing persistent counter", e);

}

}

%>

(四)输入并运行下面的import_test.jsp页面:

<%@ page import="java.util.Date,java.text.DateFormat;" %>

page指令示例

使用page指令导入java.util.Date类

<% Date date = new Date();

String s = DateFormat.getDateInstance().format(date);

String s2 = DateFormat.getDateInstance(DateFormat.FULL).format(date); %>

现在的时间是:<%=s%>

现在的时间是:<%=s2%>

访问上述JSP页面,输出结果如下图所示:

图6.2 import_test.jsp页面的运行结果

可以看到页面中最后一行的中文显示为乱码,将下面代码加到JSP页面中:<%@ page contentType="text/html;charset=gb2312" %>

Java程序设计-实验报告1-模板 (1)

实验报告 课程名称Java程序设计 实验项目实验一类和对象 系别_________计算机_________ 专业/班级_______计算机类/1402______ 姓名_____李馨雪________ 实验日期______2015.10.10______ 成绩_______________________ 指导教师

一、实验题目:实验一类和对象 二、实验内容: (1)用类描述计算机中CPU的速度和硬盘的容量。要求Java应用程序有4个类,名字分别是PC、CPU、HardDisk和Test,其中Test是主类。 1)PC类与CPU类和HardDisk类关联的UML图如图所示。 其中,CPU类要求getSpeed()返回speed的值,setSpeed(int m)方法 将参数m的值赋值给speed。 HardDisk类要求getAmount()返回amount的值,setAmount(int m)方 法将参数m的值赋值给amount。 PC类要求setCPU(CPU c)将参数c的值赋值给cpu,要求setHardDisk (HardDisk h)方法将参数h的值赋值给HD,要求show()方法能显示 cpu的速度和硬盘的容量。 2)主类Test的要求 main()方法中创建一个CPU对象cpu,其speed设置为2200; main()方法中创建一个HardDisk对象disk,其amount设置为200; main()方法中创建一个PC对象pc, pc调用setCPU方法,实参是cpu;调用setHardDisk方法,实参是 disk;调用show方法。 (2)设计一个动物声音“模拟器”,希望模拟器可以模拟许多动物的叫声,要求如下: 1)编写接口Animal,有2个抽象方法cry()和getAnimaName(); 2)编写模拟器类Simulator,该类有一个playSound(Animal animal)方法,其形参是Animal类型,可以调用实现Animal接口的类所重写的cry()方法播放具体动物的声音,调用重写方法显示动物种类的名称; 3)编写实现Animal接口的Dog类和Cat类。具体的UML图如下所示:4)编写主类Application,其main方法中至少包含如下代码: Simulator si=new Simulator();

java 程序设计 实验五

C H A N G Z H O U U N I V E R S I T Y 实验报告 课程名称:JAVA程序设计 学生姓名:文浩班级计算机141 学号14416122 学院(系):信息数理学院指导教师:吕猛 实验时间:2016 年12 月 6 日实验名称:实验五基于Swing的图形用户界面开发实验

实验五基于Swing的图形用户界面开发实验 一实验容 (1)完成开发界面如图所示,实现如下功能 ①选中“查看已有名片”按钮,程序处于查看状态,可以在“名片列表”中选择要查看的名片,程序在“名片详实信息”栏显示该名片的详实信息,此状态中名片信息处于不可编辑状态 ②选中“添加新名片”按钮,程序处于添加状态,所有关于明天信息的项目都处于可编辑状态,设置完成相关信息后,单击“添加”按钮,在“名片列表”中出现新添加名片的名称。单击“清空”按钮可以清空还没提交的容 ③在查看状态和添加状态下,都可以通过点击“爱好”、“学历”单选按钮以显示名片的不同附加信息 (备注:名片附加信息部分,当点击“爱好”按钮时显示的如图1所示,当点击“学历”按钮时显示如图2所示。) 图1

图2 (2)记事本设计与实现 如图所示(1)编程实现如图所示的界面(2)实现文件、编辑、格式、查看,帮助菜单(3)实现记事本的基本功能

二实验目的 (1)理解组件的分类 (2)掌握容器、布局管理器、普通组件的使用 (3)理解事件处理机制的工作原理 (4)掌握事件的添加和功能代码的编写方法 三实验过程 (1)问题分析 答:名片的设计除了使用最基本的组件,如JButton,Jlist,JCheckBox,JTextField, JRadioButton, CardLayout以外,最主要的是逻辑事件的编写,在成功布局完见面后,就需要编写事件处理。首先,由于是名片信息,保存着一个人的基本信息,所以可以用一个类来表示,如PersonInf类,其次,由于是多个人的信息,可以通过ArrayList 来存放类;其次就是当点击按钮的时候,正确添加和显示信息,此处用到cardLayout 布局,可以减少界面的复杂度,在使用JList的时候,除了加滚动条意外,还需要listModel 获取数据等。 (2)代码编写 答: (1) public class PersonInf { public String yourname; public String address1;

JAVA实验指导书 作业

第Ⅰ部分:实验指导 实验1:Java开发环境J2SE 一、实验目的 (1)学习从网络上下载并安装J2SE开发工具。 (2)学习编写简单的Java Application程序. (3)了解Java源代码、字节码文件,掌握Java程序的编辑、编译和运行过程。 二、实验任务 从网络上下载或从CD-ROM直接安装J2SE开发工具,编写简单的Java Application程序,编译并运行这个程序。 三、实验内容 1.安装J2SE开发工具 Sun公司为所有的java程序员提供了一套免费的java开发和运行环境,取名为Java 2 SDK,可以从https://www.wendangku.net/doc/eb9997934.html,上进行下载。安装的时候可以选择安装到任意的硬盘驱动器上,例如安装到C:\j2sdk1.4.1_03目录下。教师通过大屏幕演示J2SE的安装过程,以及在Windows98/2000/2003下环境变量的设置方法。 2.安装J2SE源代码编辑工具Edit Plus 教师通过大屏幕演示Edit Plus的安装过程,以及在Windows98/2000/2003操作系统环境下编辑Java原程序的常用命令的用法。 3.编写并编译、运行一个Java Application程序。 创建一个名为HelloWorldApp的java Application程序,在屏幕上简单的显示一句话"老师,你好!"。 4.编译并运行下面的Java Application程序,写出运行结果。 1:public class MyClass { 2:private int day; 3:private int month;

4:private int year; 5:public MyClass() { 6:day = 1; 7:month = 1; 8:year = 1900; 9:} 10:public MyClass(int d,int m,int y) { 11:day = d; 12:month = m; 13:year = y; 14:} 15:public void display(){ 16:System.out.println(day + "-" + month + "-" + year); 17:} 18:public static void main(String args[ ]) { 19:MyClass m1 = new MyClass(); 20:MyClass m2 = new MyClass(25,12,2001); 21:m1.display(); 22:m2.display(); 23:} 24:}

《Java程序设计》实验指导书_2015

《Java程序设计》实验指导书 实验一Java开发环境的安装与配置 一、实验目的 1.掌握JDK的安装步骤(有条件的话可以在Unix系统下安装)。 2.理解环境变量PATH, CLASSPATH的作用,以及它们的设置方法(Win XP、 WIN7、WIN8、Linux下的不同设置方法)。 3.熟悉TextPad(或JCreator)编辑环境,编写简单的Application程序,并编 译和解释执行。 4.记录编译和执行Java程序当中的系统错误信息提示,并给出解决办法。 二、实验内容 1.下载安装新版本的JDK。 2.设置环境变量PATH, CLASSPATH, 使得Java程序能正确编译和执行。 3.在Textpad(或JCreator)环境下编写一个HelloWorld.java程序,在DOS 提示符下编译并执行这个程序。 4.编写一个类A,它位于包a中,保存到A.java中,再编写一个类B,它位于包b中,保存到B.java中。在类B中实例化类A的一个对象。分别编译类A和类B。 5.实验时,在计算机中建立分别如下目录:D:\学号\src和D:\学号\class,分别用来放置Java源文件和编译后的字节吗文件(注:每位同学分别用自己的学号建立目录)。 三、思考题 1.什么是JVM,它的作用是什么? 2. 如何理解PATH和CLASSPATH,如何设置它们。

实验二类的封装、继承、多态 一、实验目的 1.复习、理解OOP的三大特征——封装、继承和多态。 2.学会使用Java编写简单的类。理解类的属性和方法。 3.掌握关键字private, protected, public的作用,掌握静态类,内部类的概念。 4.掌握多态的概念。 二、实验内容 1.分别编写两个类Point2D,Point3D来表示二维空间和三维空间的点,使之满足下列要求: (1)Point2D有两个整型成员变量x, y (分别为二维空间的X,Y方向坐标),Point2D的构造方法要实现对其成员变量x, y的初始化。 (2)Point2D有一个void型成员方法offset(int a, int b),它可以实现Point2D 的平移。 (3)Point3D是Point2D的直接子类,它有有三个整型成员变量x,y,z (分别为三维空间的X,Y,Z方向坐标),Point3D有两个构造方法:Point3D(int x,int y,int z)和Point3D(Point2D p,int z),两者均可实现对Point3D的成员变量x, y,z的初始化。 (4)Point3D有一个void型成员方法offset(int a, int b,int c),该方法可以实现Point3D的平移。 (5)在Point3D中的主函数main()中实例化两个Point2D的对象p2d1,p2d2,打印出它们之间的距离,再实例化两个Point3D的对象p3d1,p3d2,打印 出他们之间的距离。 提示:https://www.wendangku.net/doc/eb9997934.html,ng.Math.sqrt()方法 2.创建一个数组,随机生成Point2D或者Point3D的对象放于其中。最后依次调用数组中每个对象的“打印方法”,显示数组中存储的对象是什么。 提示:https://www.wendangku.net/doc/eb9997934.html,ng.Math.random()方法或者java.util.Random类 三、思考题 1.什么是类的多态性。

Java程序设计上机实验

班级号一学号_姓名一题号java(多文件应压缩为rar): 实验1:熟悉上机环境,编写并运行简单的java程序(3学时)实验目的 (1)熟悉Java程序开发环境J2SDK+JCreator的安装及使用 ⑵熟悉Java Application 和Applet程序的结构及开发步骤 ⑶熟练掌握if语句的使用 ⑷掌握Math.sqrt()等常用数学函数的用法 ⑸熟悉System.out.print()的用法 实验内容及要求 按Java Application 和Applet两种方式分别编写程序,求 一元二次方程ax2+bx+c=0的根(系数在程序中给定),并输出。 思考并验证 (1)分别给定以下几组系数,给出输出结果 a=1,b=5,c=3 a=4, b=4, c=1 a=2, b=3, c=2 : + i ________ +_ _______ i ⑵如果程序的public类的类名和源文件的文件名不一样会有什

么问题? (3) 将类的public 修饰去掉是否可行?接着再将类名换为其它是 否可行?这说明了什么? (4) 将程序中main 前面的public 去掉,重新编译执行你的程序,你看到 了什么信息? (5) 将程序中main 前面的static 去掉,重新编译执行你的程序,你看到 了什么信息?为什么? (6) 本次上机中,你还遇到了什么问题,是如何解决的?

班级号一学号_姓名一题号java (多文件应压缩为rar ): 实验 2:控制流程 1(3 学时 ) 实验目的 (1) 进一步熟悉使用 if 语句 (2) 掌握循环语句实现循环的方法 实验内容及要求 输出时,只使用下面的语句: System.out.print( “ ”); // 不换行 System.out.print( “* ”); // 并且不换行 System.out.print( “+”); // 并且不换行 System.out.println( “*”;) // 并换行 编写程序输出(注:在图形的中心处有一个加号 ' +'): 思考并验证 下面程序片段给出了从键盘输入一个整数的方法: import java.io.*; 输出一个空格, 并且 输出一个字符' * ', 输出一个字符' +', 输出一个

Java实验指导书

《Java程序设计》课程实验指导书软件学院网络工程系

实验一 Java开发环境的安装与配置,熟悉Java程序 结构 一、实验目的: 1. 掌握JDK的安装步骤。 2. 理解环境变量PATH, CLASSPATH的作用,以及它们的设置方法。 3. 熟悉Editplus(或TextPad,JCreator)编辑环境,编写简单的 Application程序和Applet程序,并编译和执行。 二、实验内容: 熟悉JDK的安装和配置,学习如何编写并运行简单的Application程序和Applet程序(能输出一条简单的问候信息); 三、实验要求: 1. 能正确地安装JDK 2. 熟悉环境变量PATH, CLASSPATH设置方法,熟悉编辑环境 3. 调试程序、编译,运行后得到正确的结果 4. 写出实验报告,要求记录编译和执行Java程序当中的系统错误信息提示, 并给出解决办法。 四、实验步骤: 1.从https://www.wendangku.net/doc/eb9997934.html, 上下载最新版本的JDK,并安装。 2.设置环境变量PATH, CLASSPATH, 使得Java程序能正确编译和执行。 3.在Editplus(或JCreator ,Textpad)环境下编写一个HelloWorld.jav a程序, (1)在主方法static public void main(String[ ] args)中调用System. out.println()方法,使程序输出一条问候信息; (2) 编译运行程序,观察运行情况和输出结果。(使用JDK环境,调用 javac.exe和java.exe编译和执行程序) 4.在Editplus(或JCreator ,Textpad)环境下编写一个 HelloWorldApplet.java程序。 (1)在public void paint(Graphics g)方法中调用g.drawString()方法,使

Java程序设计实验报告分析

学生实验报告 (理工类) 课程名称: JAVA程序设计专业班级: 13电子信息工程(2)学生学号: 1305102056 学生姓名:许伟铭 所属院部:软件工程学院指导教师:王倩倩 20 15 ——20 16 学年第 2 学期 金陵科技学院教务处制

实验报告书写要求 实验报告原则上要求学生手写,要求书写工整。若因课程特点需打印的,要遵照以下字体、字号、间距等的具体要求。纸张一律采用A4的纸张。 实验报告书写说明 实验报告中一至四项内容为必填项,包括实验目的和要求;实验仪器和设备;实验内容与过程;实验结果与分析。各院部可根据学科特点和实验具体要求增加项目。 填写注意事项 (1)细致观察,及时、准确、如实记录。 (2)准确说明,层次清晰。 (3)尽量采用专用术语来说明事物。 (4)外文、符号、公式要准确,应使用统一规定的名词和符号。 (5)应独立完成实验报告的书写,严禁抄袭、复印,一经发现,以零分论处。 实验报告批改说明 实验报告的批改要及时、认真、仔细,一律用红色笔批改。实验报告的批改成绩采用百分制,具体评分标准由各院部自行制定。 实验报告装订要求 实验批改完毕后,任课老师将每门课程的每个实验项目的实验报告以自然班为单位、按学号升序排列,装订成册,并附上一份该门课程的实验大纲。

实验项目名称:JAVA编程基础实验学时: 4 同组学生姓名:————实验地点: 1514/A203 实验日期: 2016.04.08 实验成绩: 批改教师:王倩倩批改时间:

一、实验目的和要求 (1)熟练掌握JDK1.7及Eclipse Kepler Service Release 1(下简称Eclipse)编写调试Java应用程序及Java小程序的方法; (2)熟练掌握Java应用程序的结构; (3)了解Java语言的特点,基本语句、运算符及表达式的使用方法; (4)熟练掌握常见数据类型的使用; (5)熟练掌握if-else、switch、while、do-while、for、continue、break、return 语句的使用方法; (6)熟练掌握数组和字符串的使用; (7)调试程序要记录调试过程中出现的问题及解决办法; (8)编写程序要规范、正确,上机调试过程和结果要有记录,不断积累编程及调试经验; (9)做完实验后给出本实验的实验报告。 二、实验仪器和设备 奔腾以上计算机,Windows 操作系统,装有JDK1.7和Eclipse软件。 三、实验过程 (1)分别使用JDK命令行和Eclipse编译运行Java应用程序。记录操作过程。 Java应用程序参考如下: 思考:1. 适当添加注释信息,通过javadoc生成注释文档; 2. 为主方法传递参数“Hello world”字符串,并输出; 3. 压缩生成".jar"文件。 (2)分别使用JDK命令行和Eclipse编译Java Applet,并建立HTML文档运行该Applet。 记录操作过程。 Java小应用程序参考如下:

(完整版)Java程序设计实验报告

Java 程序设计实验报告

实验一 JDK开发环境和结构化程序设计 实验学时:2 实验类型:综合性 一、实验目的 1.熟悉JDK开发环境。 2.熟悉UltraEdit/NotePad等编辑器编写、编译、运行Java程序。 3.掌握Java Application的程序结构和开发过程。 4.掌握Eclipse工具的使用。 5.结构化程序设计 二、实验内容 1.JDK开发环境 (1)J2sdk开发环境安装。假设JDK的安装路径为C:\JDK; (2)设置环境变量PATH和CLASSPATH(如果在autoexec.bat中没有进行设置)。如 SET PATH=C:\JDK\BIN;%PATH% SET CLASSPATH=.; %CLASSPATH%;d:\test_java (自己的工作目录) 2.UltraEdit/Notepad编辑器 练习使用Ultraedit/Notepad创建Java源程序的方法。

3.掌握Java Application程序开发过程 (1)编辑源程序,如下程序: import java.io.*; public class HelloWorld1{ public static void main(String arg[]){ System.out.println("Hello World!"); } } (2)保存文件,(注意大小写)。可将文件保存在“D:\test_java\”目录中,注意文件名为HelloWorld1.java。 (3)进入命令行(MS-DOS)方式,设定当前目录为“D:\test_java\”,运行Java 编译器: D:\test_java>javac HelloWorld1.java (4)如果输出错误信息,则根据错误信息提示的错误所在行返回EditPlus编辑器进行修改。常见错误是类名与文件名不一致、当前目录中没有所需源程序、标点符号全角等。 如果没有输出任何信息或者出现“deprecation”警告,则认为编译成功,此时会在当前目录中生成HelloWorld1.class文件。 (5)利用Java解释器运行这个Java Application程序,并查看运行结果。 D:\test_java>java HelloWorld1 4.Eclipse开发环境的使用 练习使用Eclipse实现第3步中Java HelloWorld程序的方法。

Java程序设计大作业实验报告

目录 一、前言 (2) 二、需求分析 (3) 三、系统总体设计 (3) 3.1系统总体设计系统思路 (3) 3.2数据库设计 (4) 3.2.1 login1表的设计和数据 (4) 3.2.2 student表的设计和数据 (5) 3.2.3 course表的设计和数据 (5) 3.2.4 score表的设计和数据 (6) 3.3系统功能模块设计 (6) 四、系统详细设计 (7) 4.1登录模块 (7) 4.2 学生模块 (7) 4.3 教师模块 (8) 4.4 管理员模块 (8) 五、系统测试及运行结果 (9) 5.1 主界面 (9) 5.2 学生管理中心界面 (9) 5.3 教师管理中心界面 (10) 5.4 管理员管理中心界面 (10) 5.5 查询课表界面 (11) 5.6 查询成绩界面 (11) 5.7 查询教学情况界面 (11) 5.8 查询所有学生成绩界面 (12) 5.9 学生信息管理界面 (12) 5.10 学生成绩管理界面 (13) 5.11 用户管理界面 (13) 六、实验总结 (14) 七、参考文献 (14)

一、前言 随着计算机在人们生活中的普及和网络时代的来临,对信息的要求日益增加,学生信息管理业务受到了较为强烈的冲击,传统的手工管理方式传统的手工管理方式已不能适应现在的信息化社会。如何利用现有的先进计算机技术来解决学生信息管理成为当下的一个重要问题,学生信息管理系统是典型的信息管理系统,其开发主要就是针对前台的页面展示以及后台数据的管理。对于前者,要求应用程序功能完备,易于使用,界面简单;而对于后者,则要求数据库具有一致性、完整性,并能够依据前台的操作来对应操作后台数据库达到一定的安全性。 本学生信息管理系统主要采用的纯JAVA代码实现图形界面系统的开发,以及数据库知识进行数据的查询,删除,插入和更新。本系统主要分为三个部分:学生模块、教师模块、管理员模块。其中学生模块实现的功能:查询课表信息和查询成绩。教师模块实现的功能:查询课表信息、查询教学情况和查询所有学生的各科成绩。管理员模块实现的功能:课表信息的管理、学生信息管理、学生成绩管理和用户信息管理。

《java程序设计》实验指导书(完整)

实验一 Java实验环境的建立一、实验目的 1.掌握Java编程环境的搭建过程; 2.掌握Jcreator pro软件的使用方法; 3.能使用Java doc文档。 二、实验内容 1.下载并安装,配置JDK环境变量; 2.下载Javadoc压缩包并解压在JDK安装路径下; 3.下载Jcreator pro 并安装和配置使用环境; 4.使用实验环境运行书中实例代码,在屏幕上输出“Hello Java”字符串。 ①Java application程序代码如下: public class HelloJava { public static void main(String args[]) { "Hello Java!"); } } ②Java applet程序代码如下: import .*; public class Hello extends { public void paint(Graphics g) { ("Hello!",30,30); } } 三、试验要求 1、预习试验内容并写出上机报告。 2、实验中出现的问题及实验体会。

一、实验目的: 1.输入、输出操作实现原理和方法 2.掌握程序流程控制的实现方法 3.掌握数组的定义和操作方法 二、实验内容 1.计算 Result=1!+2!+3!+ (10) public class TestJieC{ p ublic static void main(String arg[]){ long result=1; for(int i=1;i<=10;i++) { result=i*result; result+=result; } " "+result); } } 2.计算1---50之间所有素数的和。 public class Test{ p ublic static void main(String args[]){ int count = 0; for(int i = 2;i<=50;i++){ for(int j = 2;j<=i;j++){ if(i>j){ if(i%j == 0){ count++; } } } if(count==0){

java实验指导书

实验指导书 (实验报告书写规范) 1.拿到实验报告后,先填写封面: 2012-2013学年第一学期 实验室名称:兰州工业学院计算机一体化教室 课程名称:《Java语言程序设计》 指导教师:杜叔强 学号:(只写后2位) 2.接着填写目录,即实验项目名称 3.下面是每次做实验后应完成的内容: 每一页正文最上边写上实验时间:(例如:2011-9-22)同组者:(这个不用填写)实验题目: 一、实验目的 二、实验环境:JDK 三、实验内容 四、实验结果 说明:实验结果中给出主要代码及运行数据和结果,每次实验报告3-4页 五、实验总结: 4.其他要求 每个实验项目另起一页!!!! 实验报告册使用黄色厚本规格!!!

(学校规定,十个学时以上实验用厚本,十个学时以内用薄本。)

实验一熟悉Java运行环境 一、实验目的 1.熟悉JDK开发环境 2.了解Java Application的程序结构和开发过程 3.了解Java Applet程序的开发过程并编写第一个Java Applet程序 4.学习编写简单的HTML文件配合Java Applet使用 二、实验环境:JDK1.5 三、实验内容 四、实验结果 五、实验总结:

实验二 Java的基本数据类型 一、实验目的 1.熟悉Java的基本数据类型; 2.会准确操作字符型类型,并掌握强制转换的操作; 二、实验环境与地点 1.实验环境: JDK1.6+Ultraedit 2.实验地点: 软件工程系一体化教室 三、实验内容与步骤 1. 定义一个类,类中包含主程序,在主程序中进行如下定义: (1)定义一个常量,名称为MAXVALUE,赋值为1000; (2)定义一个变量,名称为maxValue,赋值为500; 2. System.out.println(“你好”);可输出字符串,也可以使用System.out.println( )输出变量或表达式的值,只需使用并置符号“+”将变量、表达式或一个常数值与一个字符串并置即可,如: System.out.println(“”+x);System.out.println(“:”+123+“大于”+122);等。上机调试下列程序,注意观察结果,特别注意System.out.print( )和System.out.println( )的区别。 public class OutputData { public static void main(String args[]) { int x=234,y=432; System.out.println(x+"<"+(2*x)); System.out.print("我输出结果后不回车"); System.out.println("我输出结果后自动回车到下一行"); System.out.println("x+y= "+(x+y)); System.out.println(" "+x+y+"=234432"); }} 3. 定义一个类,其中包含主程序,在主程序中进行如下操作: (1)输出‘h’+1; (2)输出‘7’+1; 4. 定义一个类,在主程序中加入如下语句: int x = 8; byte b = 127; b = x;

Java程序的设计实验报告

信息科学与工程学院 课程设计 题目:图书管理系统 姓名:晓雨颖 学号: 201312140115 201312140120 班级: 13级本科四班物联网 课程: Java程序设计 任课教师梦琳 2014年12月20日

课程设计任务书及成绩评定

目录 1前言 (3) 1.1设计目的 (4) 1.2设计任务 (4) 1.3运行环境 (4) 2总体设计 (5) 2.1设计原理............................................. 错误!未定义书签。3详细设计实现.. (5) 3.1 代码 (5) 3.2 登陆后事件处理 (12) 4心得体会................................................ 错误!未定义书签。

1前言 Java的前身是Oak,它一开始只是被应用于消费性电子产品中。后来它的开发者们发现它还可以被用于更大围的Internet上。1995年,Java语言的名字从Oak编程了Java。1997年J2SE1.1发布。1998年J2SE1.2发布,标志Java2的诞生。十多年来,Java编程语言及平台成功地运用在网络计算及移动等各个领域。Java的体系结构由Java语言、Java class、Java API、Java虚拟机组成。它具有简单、面向对象、健壮、安全、结构中立、可移植和高效能等众多优点。Java支持多线程编程,Java运行时系统在多线程同步方面具有成熟的解决方案。Java的平台标准有Java ME,Java SE和Java EE。Java发展到今天,它的卓越成就及在业界的地位毋庸置疑。目前在众多的支持Java的开发工具中主要的7有Java Development Kit,NetBeans,Jcreator,JBuilder,JDeveloper和Eclipse等。其中Java Development Kit 简称JDK是大多开发工具的基础。以上的每种开发工具都有优缺点,对于开发者来说,重要的是要根据自己的开发规模、开发容和软硬件环境等因素来选择一种合适的开发 工具。

Java程序设计慕课版实验一

一、实验目的 (1)熟系编写Java程序的开发工具—Eclipse (2)掌握Java基础语法 二、实验内容、步骤方法、结果 1、使用Eclipse开发Java程序 package com.hello; public class HelloWorld { public static void main(String[] args) { System.out.println("你好,Java"); } } 2、输出字符串 package com.CharPtint; public class CharPrint { public static void main(String[] args) { char c1,c2; char c3; char c4; c1='A'; c2=' '; c3=66; c4='#'; System.out.println(c1); System.out.println(c2); System.out.println(c3); System.out.println(c4);

} } 3、截取字符串 package com.CharPtint; public class SubStr { public static void main(String[] args) { String str="abc123def"; System.out.println(str.substring(3,7)); System.out.println(str.substring(7)); System.out.println(str.charAt(0)); System.out.println(str.charAt(8)); } }

java实验指导书 学生用李伟

实验一、安装JDK并熟悉java的运行环境实验二、基本语法练习 实验三、面向对象编程实验(4) 实验四、异常处理实验 实验五、小应用程序实验 实验六、图形图像实验 实验七、GUI(图形用户接口)实验(4) 实验八、多线程实验 实验九、输入输出流实验(4) 实验十、数据库应用实验(4)

实验一、安装JDK并熟悉java的运行环境 一、实验目的 熟悉JA V A的运行环境及学习简单的编程。 二、预习内容 安装工具软件的基本方法。 三、实验设备与环境 装有JA V A语言工具软件(Eclipse )的微机若干 四、实验内容 安装Eclipse及JA V A的核心编译程序J2SDK。 1、打开Eclipse的安装盘安装Eclipse。 2、在相同目录下安装J2SDK。 3、打开Eclipse软件对J2SDK文件进行配置。 4、编写一应用程序,在屏幕上显示“HELLO WORLD”和爱心标志。 Pulic class Hello { public static void main(String args[]) { //在屏幕上显示“HELLO WORLD”和爱心标志 } } 5、编写一小程序实现上述功能:在屏幕上显示“HELLO WORLD”和爱心标志。 实验结果 五、注意事项 ⒈认真填写实验报告 ⒉遵守实验室各项制度,服从实验指导教师的安排 ⒊按规定的时间完成实验 六、说明 本次实验建议学时数2学时 七、实验总结与体会

实验二、基本语法练习 一、实验目的 ⒈熟悉Java的基本语法 ⒉编写应用程序接收命令行参数 ⒊编写应用程序接收用户从键盘的输入 ⒋掌握字符串与数组的基本方法 二、预习内容 java编程的基本结构 三、实验设备与环境 装有JA V A语言工具软件(Eclipse )的微机若干 四、实验内容 ⒈编写一个应用程序求若干个数的平均数,原始数字要求从命令行输入。应用程序中main方法的参数String类型的数组args能接受用户从命令行键入的参数。 (1)编辑Average.java。 class Average { public static void main(String args[ ]) { double n,sun=0; for (int l=0;l

Java 2实用教程(第三版)实验指导与习题解答

Java 2实用教程(第三版)实验指导与习题解答 清华大学出版社 (编著耿祥义张跃平) 实验模版代码及答案 建议使用文档结构图 (选择Word菜单→视图→文档结构图)

上机实践1 初识JA V A (4) 实验1一个简单的应用程序 (4) 实验2一个简单的J A V A A PPLET程序 (4) 实验3联合编译 (5) 上机实践2 基本数据类型与控制语句 (6) 实验1输出希腊字母表 (6) 实验2回文数 (7) 实验3猜数字游戏 (9) 上机实践3 类与对象 (10) 实验1三角形、梯形和圆形的类封装 (10) 实验2实例成员与类成员 (13) 实验3使用PACKAGE语句与IMPORT语句 (15) 上机实践4 继承与接口 (17) 实验1继承 (17) 实验2上转型对象 (20) 实验3接口回调 (22) 上机实践5 字符串、时间与数字 (24) 实验1S TRING类的常用方法 (24) 实验2比较日期的大小 (25) 实验3处理大整数 (26) 上机实践6 组件及事件处理 (27) 实验1算术测试 (27) 实验2信号灯 (30) 实验3布局与日历 (32) 上机实践7 组件及事件处理2 (36) 实验1方程求根 (36) 实验2字体对话框 (39) 实验3英语单词拼写训练 (42) 上机实践8 多线程 (46) 实验1汉字打字练习 (46) 实验2旋转的行星 (48) 实验3双线程接力 (52) 上机实践9 输入输出流 (55) 实验1学读汉字 (55) 实验2统计英文单词字 (58) 实验2读取Z IP文件 (62)

上机实践10 JAV A 中的网络编程 (63) 实验1读取服务器端文件 (63) 实验2使用套接字读取服务器端对象 (65) 实验3基于UDP的图像传输 (68) 上机实践11 数据结构 (72) 实验1扫雷小游戏 (72) 实验2排序与查找 (77) 实验3使用T REE S ET排序 (78) 上机实践12 JAV A SWING (80) 实验1JL AYERED P ANE分层窗格 (80) 实验2使用表格显示日历 (81) 实验3多文档界面(MDI) (84)

java实验报告1(程序设计基础)

2012—2013学年第 1 学期 合肥学院数理系 实验报告 课程名称:《面向对象程序设计》 实验项目:程序设计基础 实验类别:综合性□设计性□验证性√ 专业班级:10信息与计算科学班 姓名:学号: 实验地点:校内机房 实验时间:2012.10.22 —2012.10.28 指导教师:钱泽强成绩:

一、实验目的 熟悉Java的编程环境;通过编程掌握Java程序的调试;提高学生的分析问题、解决问题的能力;理解Java语言的基本结构和程序设计方法。 二、实验内容 1、安装并配置JDK,使用Eclipse创建Java程序,并调试运行; 2、了解 Java Application应用程序和Java Applet程序; 3、通过编程掌握Java的基本,并提高分析问题和解决问题的能力。 三、实验方案(程序设计说明) [题目1] 安装Eclipse并配置JDK。 [题目2] 使用Eclipse创建Application程序,并调试运行。 public class test1 { public static void main(String []args) { System.out.println("hello"); } } [题目3] 在Eclipse中创建Applet程序并调试运行。 import java.awt.*; import java.applet.*; public class test2 extends Applet { public void paint(Graphics g) { g.drawString("hello",20,20);} } [题目4] 掌握输入和输出,编写程序求任意两个实型数据的和。 [题目5] 掌握数组的使用,编写程序求一组整型数据的最大值。 四、实验程序和运行结果 请附页记录正确的源程序 五、实验总结 六、教师评语及成绩

java实验指导书

实验一熟悉Java程序开发环境 一、实验目的及要求 (1)了解和使用j2sdk1.6.0(JDK)。 (2)熟悉JDK集成环境的基本命令、功能和基本用法,并学会配置PATH等环境变量。 (3)学习并熟练掌握使用JDK环境进行Java程序开发的全过程(包括:源程序的编辑、编译、调试、运行和结果查看)。 二、实验学时 6学时 三、实验任务 (1)安装j2sdk1.6.0,设置环境变量PATH和CLASSPATH。 1)下载JDK 为了建立基于SDK的java运行环境,需要先下载sun的免费SDK软件包。SDK包含了一整套开发工具,其中包含对编程最有用的是Java编译器、Applet查看器和Java解释器。在浏览器中输入https://www.wendangku.net/doc/eb9997934.html,进入sun公司官方网站页面。在页面右边“Popular Downloads”栏中可看到最新版的JDK软件包(JDK1.6),并下载。 2)安装SDK 运行下载的“jdk-6u1-windows-i586-p.exe”软件包,在安装过程中可以设置安装路径及选择组件,默认的组件选择是全部安装,安装成功后,其中bin文件夹中包含编译器(javac.exe)、解释器(java.exe)、Applet查看器(appletviewer.exe)等可执行文件,lib文件夹中包含了所有的类库以便开发Java程序使用,demo文件夹中包含开源代码程序实例。 3)JDK中主要文件夹和文件 安装成功后,d:\java\jdk1.6中bin文件夹中包含编译器(javac.exe)、解释器(java.exe)、Applet查看器(appletviewer.exe)等可执行文件,lib文件夹中包含了所有的类库以便开发Java程序使用,sample文件夹包含开源代码程序实例,src压缩文件中包含类库开源代码。 设置环境变量 JDK中的工具都是命令行工具,需要从命令行即MS-DOS提示符下运行它们。以Windows XP 为例说明设置过程。 右击桌面“我的电脑”图标,选择“属性”菜单

java实验报告实验3答案

实验三熟悉常用java工具包并运用编程 实验目的: 本实验旨在巩固同学们对上课所讲java.util工具包中Collection,List,Set,Map加深理解,对其用法编程有一个更加深入的理解,为同学们以后的能够用Java进行独立地编写桌面程序打下一定的基础。 实验内容: 本实验的内容为:用Collection,List,Set,Map来存储数据,并进行排序,任何用Iterator,ListIterator或者Enumeration来打印其结果(按顺序和降序排列打印)。共分为四部分部分(前三部分必做,如果选第四个,前三个可以不做。。): (1)按顺序把1,10,5,7,6,2,9,20,14,存入到List中(注:允许自己自定义任何数),并对其进行排序,打印其升序和降序排列的结果。然后再向List中位置为第四位插入数35看看会有啥结果?再向List中插入字符串“ddy”,试猜想排序是否会出错?然后看看运行结果是啥? 程序: import java.util.*; public class SY3 { public SY3() { List list=new ArrayList(); list.add(1); list.add(10); list.add(5); list.add(7); list.add(6); list.add(2); list.add(9); list.add(20); list.add(14); list.add(35); list.add("ddy"); System.out.println("原序列:"); for(int i=0;i<=list.size()-1;i++) { System.out.println(list.get(i)); } System.out.println("新序列"); for(int i=0;i<=list.size()-1;i++) {

相关文档
相关文档 最新文档