jsp实习报告模板
新疆农业职业技术学院
《Java程序设计》教学实习报告
部门:软件技术学院
专业:计算机网络技术
班级:2007高职网络
姓名:张博
指导教师:李欣
《JA V A程序设计》教学实习报告
一、实习时间:2009年5月14日至2009年5月20日
二、实习地点:第2微机室
三、实习目的
1、掌握搭建Java开发环境的方法;
2、通过团队合作,提高沟通、交流能力,培养团队合作精神;
3、严格按照Java语言编写规约编写代码,养成遵守规约的习惯,增强编码质量的意识;
4、教师面向对象程序实例的剖析,以及实际操作,理解面向对象编程的理念,并熟练编写程序;
5、掌握Java程序的调试方法;
四、实习内容及方法
实训一相关环境搭建
实验目的
1、熟悉JDK开发环境。
2、熟悉JCreator编辑器的使用。
实验内容
1、JDK开发环境及安装
第一步:下载。从学校网站上找:ftp://10.1.1.16选择编程软件中Java。
第二步:安装jdk。
第三步:安装好后,选择“开始”→“运行…”命令,在打开的“运行”窗口中输入“cmd”命令并“确定”。在打开的命令行窗口中,分别执行java和javac 命令。如下图所表示
第四步:查看操作系统环境变量。选择“我的电脑”的“属性”,选择“高级”中的“环境变量”。
第五步:设置环境变量及path环境变量的作用和设置。
编辑源文件
import java.io.*;
public class HelloWorld1{
public static void main(String arg[]){
System.out.println("Hello World!");}}
输出结果
实训分析总结
什么是Java虚拟机?它的作用是什么?
Java虚拟机是一个想象中的机器,在实际的计算机上通过软件模拟来实现。Java虚拟机有自己想象中的硬件,如处理器、堆栈、寄存器等,还具有相应的指令系统。
作用:运行JAVA applet小程序,没了它,好多网站的功能无法使用,因为现在很多服务是通过它实现的。JAVA不编译,他的字节码要靠虚拟机才能运行。
实训二Java基础-控制语句使用实例
实训目的:
1、掌握Java语言中的三种基本的流程控制
2、理解数组的概念,数组的定义方法,数组的应用。
实训内容:
1、随机输入3个数,要求按降序排列。
import java.util.*;\\导入包
public class bidaxiao{
public static void main(String[]args){
int length=3;
int[]ints=new int[length];
Scanner san=new Scanner(System.in);
for(int i=0;i System.out.print("请输入第"+(i+1)+"个数:"); ints[i]=san.nextInt();} Arrays.sort(ints); System.out.println("这"+length+"个数从大到小的排列顺序为:"); for(int i=length-1;i>=0;i--){ System.out.print(ints[i]+"");}}} 输出结果: 2、编写程序,用循环语句列出1到10的阶乘值。 public class A{ public static void main(String args[]){ int i; long A=1; for(i=1;i<=10;i++){ A*=i; System.out.println("!"+A);}}} 输出结果: 3、编写程序显示一年的月份。月份要保存在数组中。 public class year{ public static void main(String args[]){ int[]a=new int[12]; for(int i=1;i<=12;i++){ System.out.println("一年的第"+i+"个月是"+i+"月");}}}输出结果: 4、定义一个二维数组,从键盘输入数据,要求求出最大值元素、最小值元素。 public class MaxArray{ public static void main(String[]args){ int a[][]={{3,2,6},{6,8,2,10},{5},{12,3,23}}; int max=0;int min=0; for(int i=0;i for(int j=0;j max=a[0][0]; if(max else{min=a[i][j];}}} System.out.println("二维数组的最大值为:"+max); System.out.println("二维数组的最小值为:"+min);}} 输出结果: 实训分析总结: 1、三种循环语句的数据流程图如何执行? do-while流程图for流程图while流程图 2、三种循环语句的语法格式。 while循环语句的语法格式: [initialization] while(loop-condition){body; [iteration;]} for循环语句的语法格式: for([initialization];[loop-condition];[iteration;]){ body;} 3、什么是数组?数组的定义形式? 数组是由相同的数据类型数据按顺序组成的数据集合。 数组的定义形式: 一维数组:type arrayName[]或者type[]arrayName 二维数组:type arrayName[][]或者type[][]arrayName 实训三类的封装、继承与多态性 实训目的: 1、理解类、封装、继承多态的概念和类的对象的创建和使用。 2、理解方法的概念,方法的调用,参数的传递。 3、熟练掌握类的继承。 实训内容: 1、编写程序,给定圆的半径和高度,计算圆柱体的体积,利用引用对象方法的形式表示。 import java.io.*; class tj{ private double r;private double h; public tj(double r,double h){ if(r>0)this.r=r; if(h>0)this.h=h;} public boolean setr(double r){ if(r>0){this.r=r; return true;} else return false;} public double getr(){ return r;} public boolean seth(double h){ if(h>0){return true;} else return false;} public double geth(){return h;} public double tj(){return3.14*r*r*h;} public static void main(String args[])throws IOException{ BufferedReaderin=new BufferedReader(new InputStreamReader(System.in)); System.out.println("请输入圆的半径:"); double r=Double.parseDouble(in.readLine()); System.out.println("请输入圆柱的高:"); double h=Double.parseDouble(in.readLine()); tj v=new tj(r,h); System.out.println("圆柱的半径为:"+v.getr()+"\t高为:"+v.geth()); System.out.println("圆柱的体积为:"+v.tj());}} 2、试设计一个Calculator类,并完成下列的各方法的程序设计: 定义add(a,b)方法,用来计算两数之和。 定义mul(a,b)方法,用来计算两数的乘积。 定义sub(a,b)方法,用来计算两数之差。 定义div(a,b)方法,用来计算a/b。 import java.io.*; class Calculator{ private double a;private double b; public Calculator(double a,double b){ if(a>0)this.a=a; if(b>0)this.b=b;} public boolean seta(double a){ if(a>0){this.a=a; return true;} else return false;} public double geta(){return a;} public boolean setb(double b){ if(b>0){return true;} else return false;} public double getb(){return b;} public double add(){return a+b;} public double mul(){return a*b;} public double sub(){return a-b;} public double div(){return a/b;} public static void main(String args[])throws IOException{ BufferedReaderin=newBufferedReader(new InputStreamReader(System.in)); System.out.println("请输入a的值:"); double a=Double.parseDouble(in.readLine()); System.out.println("请输入b的值:"); double b=Double.parseDouble(in.readLine()); Calculator c=new Calculator(a,b); //System.out.println(""+c.geta()+"\t"+c.getb()); System.out.println("a,b的和:"+c.add()); System.out.println("a,b的积:"+c.mul()); System.out.println("a,b的差:"+c.sub()); System.out.println("a,b的商:"+c.div());}} 输出结果 3、请逐步完成下列的程序设计: (a)、设计一个父类Caaa,内含public两个整数数据成员。 (b)、设计一个子类Cbbb,继承自Caaa类,并加入set_num()方法,可用来赋值从父类继承而来的成员num1,num2,和show()方法,用来显示num1与num2的值。 (c)、在Caaa类里加入一个没有参数的构造函数Caaa(),它可用来把num1和num2赋值初值为1。 (d)、在类里加入另一个有参数的构造函数Caaa(int a,int b),它可用来把num1赋值为a,把num2赋值为b。 (e)、在main()方法里编写程序代码,测试(c)和(d)的结果。 不带参数 class Caaa{ public int num1;public int num2; public Caaa(){} public void setnum1(int num1){this.num1=num1;} public int getnum1(){return num1;} public void setnum2(int num2){this.num2=num2;} public int getnum2(){return num2;} public void printOtherInfo(){ System.out.print("num1="+num1); System.out.print("\tnum2="+num2); System.out.println();}} class Cbbb extends Caaa{} class Cbbbtest{ public static void main(String agrs[]){ Cbbb b=new Cbbb(); b.setnum1(1); b.setnum2(1); b.printOtherInfo();}} 输出结果 带参数的 class Caaa{public int num1;public int num2;} class Cbbb extends Caaa{void set_num(int a,int b){ num1=a;num2=b;} void show(){System.out.println("num1="+num1+","+"num2="+num2);}} class app{public static void main(String args[]){ Cbbb bb=new Cbbb(); bb.set_num(5,10); bb.show();}} 输出结果 4、设计一个类,内含一个方法可以判别输入的值为奇数还是偶数,如果为奇数就输出“此数为奇数”,反之若为偶数就输出“此数为偶数”。 import java.io.*; public class jo{private int a; public jo(int a){if(a>0) this.a=a;} public boolean seta(int a){ if(a>0){this.a=a; return true;} else return false;} public double geta(){return a;} public static void main(String args[])throws IOException{ BufferedReaderin=new BufferedReader(new InputStreamReader(System.in)); System.out.println("请输入a的值:"); double a=Double.parseDouble(in.readLine()); if(a%2==1){System.out.println("此数为奇数");} else{System.out.println("此数为偶数");}}} 输出结果 实训分析总结: 1、什么是类?请写出定义类的格式。 2、如何创建一个类和该类的对象? 1、什么是类?写出定义类的格式,如何创建类的对象? 类是组成java程序的基本元素,一个java程序由若干个类组成。 Java中使用关键字class声明一个类,大括号用来指出类体的开始和结束。 创建类:class Student{创建类的对象: //类的成员变量声明Student studeng=new Student //类的方法声明} 2、类的成员变量和方法? 类的成员变量用来描述对象的状态,也称为属性、数据或域。 类的方法是用来描述对象的行为。 3、什么是继承?什么是封装? 像大客车和小轿车与车类之间存在的关系为继承 封装是指信息与实现细节的隐藏。 实训四简单计算器模拟 实训目的: 1、熟练掌握图形用户界面的设计和各组件的应用 2、能够处理一般事件的响应 实训内容: 1、设计一个窗口,内含一个按钮,当按下此按钮的时候,窗口的颜色会从原来的白色变成其他你所设置的颜色。 import java.awt.Button; import java.awt.Color; import java.awt.FlowLayout; import java.awt.Frame; import java.awt.Panel; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; public class button extends MouseAdapter{ Frame f=new Frame();Panel P1=new Panel(); Button b1=new Button("绿色"); public static void main(String args[]){ button ct=new button(); ct.init();} public void init(){ f.setLayout(new FlowLayout()); f.add(b1); P1.setBackground(Color.red); P1.setVisible(true); b1.addMouseListener(this); f.setSize(200,150); f.setVisible(true);} public void mousePressed(MouseEvent e2){ if(e2.getSource()==b1){ f.setBackground(Color.green);}}} 2、设计一个包含有文本框和标签的窗口,在文本框中输入一段文字,按回 车后,将该段文字内容加入到标签中显示。 import java.awt.GridLayout; import java.awt.event.KeyAdapter; import java.awt.event.KeyEvent; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JTextField; public class zhuanhuan{public static void main(String[]args){ JFrame jf=new JFrame();JPanel jp=new JPanel(); final JLabel jl=new JLabel();final JTextField jtf=new JTextField(); jf.add(jp); jp.setLayout(new GridLayout(2,1)); jp.add(jl);jp.add(jtf); jtf.addKeyListener(new KeyAdapter(){ public void keyPressed(KeyEvent e){ if(e.getKeyCode()==KeyEvent.VK_ENTER){ jl.setText(jtf.getText());}}}); jf.setSize(144,144); jf.setVisible(true);}} 输出结果 3、学生注册系统 import java.util.*;//导入工具包 import java.awt.*;//导入抽象窗口工具包 import java.awt.event.*;//导入软件包 import javax.swing.*;//导入轻量级的工具包 import java.io.*;//导入软件包 class学生extends Panel{ class ShowWin extends JFrame implements ActionListener{ LinkedList students_list=null; JTextField学号文本框=new JTextField(), 姓名文本框=new JTextField(), 年龄文本框=new JTextField(),//创建新实例 班级文本框=new JTextField(), 删除文本框=new JTextField(); JButton b_add=new JButton("添加学生"), b_del=new JButton("删除学生"), b_show=new JButton("显示学生名单"); JTextArea显示区=new JTextArea(); students_list=new LinkedList(); JPanel save=new JPanel(); save.setLayout(new GridLayout(5,2)); save.add(new Label("输入学号:"));save.add(学号文本框);//添加文本内容save.add(new Label("点击添加:"));save.add(b_add); JPanel del=new JPanel();del.setLayout(new GridLayout(2,2));//删除文本内 容 del.add(new Label("输入删除的学号:"));del.add(删除文本框); del.add(new Label("点击删除:"));del.add(b_del); JPanel show=new JPanel();show.setLayout(new BorderLayout()); show.add(pane,BorderLayout.CENTER); show.add(b_show,BorderLayout.SOUTH);//显示添加的商品清单 JSplitPane split_one,split_two; split_one=new JSplitPane(JSplitPane.VERTICAL_SPLIT,save,del); split_two=new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,true,split_one,show); con.add(split_two,BorderLayout.CENTER); b_show.addActionListener(this);} public void actionPerformed(ActionEvent e){ if(e.getSource()==b_add){String xuehao=null; String xingming=null;String nianling=null;String banji=null; banji=班级文本框.getText(); 学生students=new学生(xuehao,xingming,nianling,banji); students_list.add(students); try{FileOutputStream file=new FileOutputStream("students.txt"); ObjectOutputStream out=new ObjectOutputStream(file); out.writeObject(students_list);out.close();} catch(IOException event){}} else if(e.getSource()==b_del){ String xuehao=删除文本框.getText(); try{FileInputStream come_in=new FileInputStream("students.txt"); ObjectInputStream in=new ObjectInputStream(come_in); students_list=(LinkedList)in.readObject();in.close();} catch(ClassNotFoundException event){} catch(IOException event){} for(int i=0;i 学生te=(学生)iter.next(); ShowWin win=new ShowWin(); win.setSize(460,300);//设置尺寸大小 win.setVisible(true);//设置属性(trun显示,false隐藏) win.addWindowListener(new WindowAdapter()//继承WindowAdapter,然后又覆盖 实训分析总结: 1、布局管理器,它有什么用? JAVA是与平台无关的,就是应用程序的界面的大小,位置与硬件没关系,与平台无关就是说你不能通过setSize()这样的方法去设置窗体中组件的大小。由此问题产生了。 当一个窗体中有文本控件,又有标签,还有按钮,这时你怎么控制它们在窗体中的排列顺序和位置呢,JAVA定义了布局管理器来处理这个问题 2、说明文本区和文本框的主要不同点。 文本区:是用户输入、编辑、格式化、查看文本数据的区域。单击鼠标左键定位插入点。 文本框就是可以向其中输入文字的框,比如百度。 实训五扩展—Java和JSP编写要点练习 实训目的: 1、理解JSP运行环境要求。 2、掌握JSP建立与测试开发环境的方法 3、了解j2ee 实训内容: 1、链接到指定的email地址 在网站中,你经常会看到“联系我们”的链接,一点击这个链接,就会触发你的邮件客户端,比如Outlook Express,然后显示一个新建mail的窗口。用可以实现这样的功能。 2、给定系统的自我学习 后台分析: 计算机图书信息后台维护系统分析 点击删除 点击修改 它的路径 路径 http://localhost:8080/aaa/book/index.jsp http://localhost:8080/aaa/book/RequestAdd.jsp 实训分析总结: 1、JSP文件的建立过程? 第一步安装JDK 第二步安装Tomcat 第三步安装Eclipse 第四步安装MyEclipse 第五步破解MyEclipse 第六步指定Eclipse+MyEclipse的JRE和Tomcat服务器 第七步新建个项目来测试一下Eclipse+MyEclipse开发环境是否搭建成功 2、JSP的特点。 1.将内容的生成和显示进行分离 2.强调可重用的组件 3.采用标识简化页面开发 五、结论 在为期一个星期的实习中,让我收获不少,并且发现自己存在的不足。 通过这次实习我受益匪浅,知道JAVA的功能和使用方法以及编译技术,以前只知道玩手机中的小游戏,并不知道是用JAVA做出来的,现在实习也使自己掌握了JAVA技术,也通过实习使我了解到我更多的不足,在做题时没有一点点的思路,注意力不是很集中,在每项实训中不是很认真的听讲,在调试程序的时候,发现不了问题的根本原因,一个简单的程序少了那小小的一个标点都不行,发现了自己粗心大意的一面。在以后会多加努力的。 六、致谢 通过这次实习,我深感自己的不足,我对知识的渴望远远超过这些,我将努力学习知识,取长补短,为自己注入新鲜的血液。相信自己会在以后的实习工作中更加努力。 这次非常感谢老师在实习中对我们的指导,我们有什么不懂的问题都是老师悉心教导,不耐其烦的告知我们,和我们一起实习,在这里向老师说声,您辛苦了。也非常感谢同学在学习上给予我的帮助。感谢学校为我们安排的这次实习。