第一篇:JSP实习报告
JSp实习报告
实习内容:JSp
实习目的:通过JSp的学习,可以独立的编写留言板、上传规格、考试系统、连接SQLserver数据库、以及怎么样配置运行jsp服务器
实习要求:懂得什么是JSp,运行原理,它的基本语法,内置对象,服务端的输出缓冲区,文件流的读取,jsp数据库如:jdbc、odbc、mysql、oracle等,jsp与javaBeans,javaServlet等
JSp是JavaServerpages的缩写,是由Sun公司倡导、许多公司参与,于1999年推出的一种动态网页技术标准。JSp是一个建立安全的、夸平台的先进动态网页技术。
一、JSp工作原理
在一个JSp文件第一次被请求时,JSp引擎把该JSp文件转换成为一个servlet。而这个引擎本身也是一个servlet,在JSWDK或WEBLOGIC中,它就是JspServlet。JSp引擎先把该JSp文件转换成一个Java源文件,在转换时如果发现jsp文件有任何语法错误,转换过程将中断,并向服务端和客户端输出出错信息;如果转换成功,JSp引擎用javac把该Java源文件编译成相应的class文件。然后创建一个该SERVLET的实例,该SERVLET的jspInit()方法被执行,jspInit()方法在servlet的生命周期中只被执行一次。然后jspService()方法被调用来处理客户端的请求。对每一个请求,JSp引擎创建一个新的线程来处理该请求。如果有多个客户端同时请求该JSp文件,则JSp引擎会创建多个线程。每个客户端请求对应一个线程。以多线程方式执行可大大降低对系统的资源需求,提高系统的并发量及响应时间.但应该注意多线程的编程限制,由于该servlet始终驻于内存,所以响应是非常快的。如果.jsp文件被修改了,服务器将根据设置决定是否对该文件重新编译,如果需要重新编译,则将编译结果取代内存中的servlet,并继续上述处理过程。虽然JSp效率很高,但在第一次调用时由于需要转换和编译而有一些轻微的延迟。此外,如果在任何时候如果由于系统资源不足的原因,JSp引擎将以某种不确定的方式将servlet从内存中移去。当这种情况发生时jspDestroy()方法首先被调用,然后servlet实例便被标记加入“垃圾收集”处理。jspInit()及jspDestory()格式如下:可在jspInit()中进行一些初始化工作,如建立与数据库的连接,或建立网络连接,从配置文件中取一些参数等,在jspDestory()中释放相应的资源。
<%!
publicvoidjspInit()
{
System.out.println(“jspinit”);
}
%>
<%!
publicvoidjspDestory()
{
System.out.println(“jspDestory”);
}
%>
二、服务端的输出缓冲区
缺省情况下:服务端要输出到客户端的内容,不直接写到客户端,而是先写到一个输出缓冲区中.只有在下面三中情况下,才会把该缓冲区的内容输出到客户端上:
该JSp网页已完成信息的输出
输出缓冲区已满
JSp中调用了out.flush()或response.flushbuffer()
输出缓冲区的大小可以用:或response.setBufferSize()设置,如下:
设置输出缓冲区的大小为1KB。或response.setBufferSize(1);
设置输出缓冲区的大小为0,即不缓冲。或response.setBufferSize(0);
用response.getBufferSize()或out.getBufferSize()可取的输出缓冲区的大小,单位为字节.用response.isCommitted()可检查看服务端是否已将数据输出到客户端.如果返回值是TRUE则已将数据输出到客户端,是FALSE则还没有.三、服务端输出重定向
有以下3种方法可以做到输出重定向:
RESpONSE.SETREDERECT(“URL”)该方法通过修改HTTp协议的HEADER部分,对浏览器下达重定向指令的,使浏览器显示重定向网页的内容.response.sendRedirect(“http://localhost:7001/index.html”);
下面的方法也能改变HTTpHEADER属性,它的原理和1是一样的.<%
response.setStatus(HttpServletResponse.SC_MOVED_pERMANENTLY);
StringnewLocn=“/index.html”;
response.setHeader(“Location”,newLocn);
%>
采用
(1)
<%@pagebuffer=“1kb”%>
<%
longi=0;
for(i=0;i<10;i++)
{
out.println(“@@@@@@@@@@@@@@@@@”);
}
%>
(2)
<%@pagebuffer=“1kb”%>
<%
longi=0;
for(i=0;i<600;i++)
{
out.println(“@@@@@@@@@@@@@@@@@”);
}
%>
说明:
1.方法(1),(2)可以使用变量表示重定向的地址;方法(3)不能使用变量表示重定向的地址。
Stringadd=“./index.html”;
无法重定向到index.html中去
Stringadd=http://localhost:7001/index.html
response.sendRedirect(add);
可以重定向到http://localhost:7001/index.html中去。
2.采用方法(1),(2)request中的变量(通过request.setAttribute()保存到request中的值)不能在新的页面中采用,采用方法(3)能.综上,我们应该采用(1),(2)重定向比较好.四、JSp基本配置:
第一步:下载j2sdk和tomcat:到sun官方站点(http://java.sun.com/j2se/1.4.2/download.html)下载j2sdk,注意下载版本为WindowsOfflineInstallation的SDK,同时最好下载J2SE1.4.2Documentation,然后到tomcat官方站点(http://;charset=gb2312“ %>
<% Class.forName(”com.microsoft.jdbc.sqlserver.SQLServerDriver“).newInstance();
String url=”jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=pubs“;
//pubs 为你的数据库的String user=”sa“;
String password=”admin“;Statementstmt;
Connection conn= DriverManager.getConnection(url,user,password);
stmt=conn.createStatement(ResultSet.TYpE_SCROLL_SENSITIVE,ResultSet.CONCUR_UpDATABLE);
String sql=”select job_id,job_desc from jobs“;
ResultSet rs=stmt.executeQuery(sql);
while(rs.next()){ %>
您的第一个字段内容为:<%=rs.getString(1)%>
您的第二个字段内容为:<%=rs.getString(2)%>
<% } %>
<% out.print(”数据库操作成功,恭喜你“);%>
<% rs.close();
stmt.close();
conn.close();
%>
将上面的JSp代码保存为sql_test.jsp,放在/Root目录下。
Servlet/JSp配置详解
首先下载驱动程序:
然后就是安装JDK,我是把它装到从c:JDK目录下面。
然后设置CLASSpATH的问题了:
正如操作系统利用pATH来搜索可执行程序一样,Java运行环境也会遍历CLASSpATH来查找类,即便是HelloWorld这样简单的程序,JVM也会遍历CLASSpATH定义的每一个路径,直到找到相应的文件为止。
相信大家用的系统不是2k就是Xp,然后就应当如下设置path:
我的电脑->属性->高级->环境变量
然后在环境变量的path后面追加:C:JDKbin;.;C:JDKlib
也可以这样配置:C:JDKbin;.;C:JDKlibdt.jar;C:JDKlibtools.jar
★记住:环境变量中的.切记不能少,它表示当前路径,如果少掉出现的错误等会就说!
dt.jar是关于运行环境的类库,tools.jar是关于一些工具的类库
如果没有配置:C:JDKbin,则会出现“javac不是内部或外部命令,也不是可运行的程序或批处理文件。”这样的错误。
下面我们就写一个示例程序:
打开Editplus,新建一个Java文件,请照着如下输入,要一字不漏,并且分清大小写:
publicclassHelloWorld{
publicstaticvoidmain(String[]args){
System.out.println(”Hello,World!“);
}
}
然后把这个文件保存(ctrl+s)到HelloWorld.java,Java是分大小写的,所以大小写一定要分清,是HelloWorld.java不是helloworld.java或者其他。
运行:开始->运行->cmd
在控制台中把目录切换到当前目录:
javacHelloWorld.java
javaHelloWorld
你就会在控制台上看见输出的Hello,World!
javac是编译命令,它把HelloWorld.java编译成HelloWorld.class
java就是解释命令,JVM把HelloWorld.class解释执行.在这个时候:
1、如果出现Exceptioninthread”main“java.lang.NoClassDefFoundError:HelloWorld
那就是你在环境变量中没有加上那个.(dot)
2、如果出现Exceptioninthread”main“java.lang.NoSuchMethodError:main
或者HelloWorld.java:1:publicclasshelloworldmustbedefinedinafilecalled
”HelloWorld.java“.那就是你没有分清大小写的写入这个HelloWorld,或者保存得时候没有保存为HelloWorld.java。这个名字一定要跟publicclass的名字一样
对于环境变量的问题就说到这里,下面我先所说怎么在Editplus里面编译和运行,在Tools->参数设置->配置用户工具
1.添加工具(添加应用程序)
菜单文字:CompileJavaprogram
程序:C:JDKbinjavac.exe
参数:文件名称
初始目录:文件目录
2.添加工具(添加应用程序)
菜单文字:RunJavaprogram
程序:C:JDKbinjava.exe
参数:文件名称(不含扩展名)
初始目录:文件目录
工具组名称可以随便添,比如DebugJavaprogram。
然后在Tools的下拉菜单中,你就会看见CompileJavaprogram以及RunJavaprogram这两个选项,以后你就可以利用ctrl+1编译和ctrl+2运行程序了
下面我们讨论Servlet的运行环境:
要运行Servlet,则需要JSp/Servletcontainer,我用Tomcat。
http://cvs.apache.org/builds/jakarta-tomcat-5/nightly/jakarta-tomcat-5-bin-20030725.zip
然后把这个压缩包解压到:
C:Tomcat
然后再配置环境变量;添加三个系统变量:
JAVA_HOME:C:JDK
TOMCAT_HOME:C:Tomcat
CLASSpATH:%JAVA_HOME%lib;%TOMCAT_HOME%lib
Tomcat的环境变量就配置完毕了,下面检验Tomcat是否能够运行:
在控制台中转到C:Tomcatbin这个目录,运行startup,然后回出现一个窗口,连跳一大串东西,最后表示Server已经运行。
在浏览器中输入http://localhost:8080,出现欢迎界面,则表示Tomcat没问题了。然后和上面一样,写入你的第一个Servlet。
importjava.io.*;
importjavax.servlet.*;
importjavax.servlet.http.*;
publicclassHelloWorldextendsHttpServlet
{
publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException
{
response.setContentType(”text/html“);
printWriterout=response.getWriter();
out.println(”<html><head><title>“);
out.println(”ThisismyfirstServlet“);
out.println(”</title></head><body>“);
out.println(”<h1>Hello,World!</h1>“);
out.println(”</body></html>");
}
}
然后照样用javacHelloWorld.java来编译这个文件,如果出现无法importjavax.servlet.*
那么就是应该把C:Tomcatcommonlib里面的servlet.jar文件拷贝到C:JDKjrelibext中,再次编译,就没有问题了!
然后在Tomcat目录里面的C:TomcatwebappsROOT里面按如下的文件结构:
ROOTindex.html
ROOTwelcom.jsp
ROOTWEB-INFlibMyServlet.jar(如果你的servlet的.class打成了.jar文件,则放在lib下面)
ROOTWEB-INFclassesHelloWorld.class(把上面生成的HelloWorld.class文件放在这个里面)
然后在浏览器中输入http://localhost:8080/servlet/HelloWorld,于是Server众望所归的报错了:Error404--NotFound
出不来,然后继续弄下面的Servlet必须使用C:TomcatwebappsROOTWEB-INF这个目录下面的web.xml文件进行注册,用Ep打开这个web.xml文件,在里面加入:
<servlet>
<servlet-name>HelloWorld</servlet-name>
<servlet-class>HelloWorld</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>HelloWorld</servlet-name>
<url-pattern>/servlet/helloworld</url-pattern>
</servlet-mapping>
这样的结构
<servlet>
<servlet-name>HelloWorld</servlet-name>
<servlet-class>HelloWorld</servlet-class>
</servlet>
表示指定包含的servlet类。而以下的结构:
<servlet-mapping>
<servlet-name>HelloWorld</servlet-name>
<url-pattern>/servlet/HelloWorld</url-pattern>
</servlet-mapping>
表示指定HelloServlet应当映射到哪一种URL模式。
在修改web.xml完毕过后,重新启动Server,然后再输入http://localhost:8080/servlet/HelloWorld,那么偌大一个Hello,World!等着你呢。
六、JSp和Servlet的区别:
SUN首先发展出SERVLET,其功能比较强劲,体系设计也很先进,只是,它输出HTML语句还是采用了老的CGI方式,是一句一句输出,所以,编写和修改HTML非常不方便。后来SUN推出了类似于ASp的JSp,把JAVA代码嵌套到HTML语句中,这样,就大大简化和方便了网页的设计和修改。ASp,pHp,JSp都是嵌套型的SCRIpT语言。一个分布式系统应分为三层:表示层,业务逻辑层,数据存取层,在J2EE体系结构中,SERVLET用来写业务逻辑层是很强大的,但是对于写表示层就很不方便。JSp则主要是为了方便写表示层而设计的。ENTITYBEAN实现数据存取层,SESSIONBEAN实现业务逻辑层。如果是简单的应用系统,可采用JSp+BEANS的结构进行设计,JSp中应该仅仅存放与表示层有关的东西,也就是说,只放输出HTML网页的部份。而所有的数据计算,数据分析,数据库联结处理,统统是属于业务逻辑层,应该放在JAVABEANS中。通过JSp调用JAVABEANS,实现两层的整合。实际上,微软的DNA技术,简单说,就是ASp+COM/DCOM技术。与JSp+BEANS完全类似,所有的表示层由ASp完成,所有的业务逻辑由COM/DCOM完成。为什么要采用这些组件技术呢?因为单纯的ASp/JSp语言是非常低效率执行的,如果出现大量用户点击,纯SCRIpT语言很快就到达了他的功能上限,而组件技术就能大幅度提高功能上限,加快执行速度。另外一方面,纯SCRIpT语言将表示层和业务逻辑层混在一起,造成修改不方便,并且代码不能重复利用,采用组件技术就只改组件就可以了。对于复杂的应用,应该采用ENTITYBEAN实现数据存取层,SESSIONBEAN实现业务逻辑层,用JSp来调用SESSIONBEAN,由SESSIONBEAN调用ENTITYBEAN。即采用JSp+EJB来构建一个复杂的分布式系统。它比JSp+BEAN具有更高的吞吐量,可靠性,安全性。综上所述,对简单应用,可采用JSp+BAEN,对复杂的应用系统,应采用JSp+EJB,SERVLET变的无足轻重。用JSp完全可替代它。
实习心得:
JSp是一门新技术,他基于JavaServlet以及整个java体系的Web开发技术。从网上得知Java的中文问题历史悠久,连绵不绝,至今也没有完全解决,但是上有政策下有对策,我们总是有办法搞定它的。跟Java相关的中文问题主要有两类,一类是编程的问题,涉及到I/O,内码转换等。第二类是Java运行环境的配置,涉及字体,属性配置等。觉得很有必要给自己写个备忘录之类的。
学习了JSp,感触很深,这一技术是需要有一定基础、而且动手能力强的学科。书上也强调一点是:要想真正地掌握JSp技术,必须有较好的java语言基础,以及HTML语言方面的知识。想想的确对啊。
通过一周的实习JSp,这个实习,使我初步掌握和了解了JSp的基本运行原理、各个对象的结构和功能、怎样连接数据库、能自己手动写code开发一些小网页。并且,自己能够组建一台JSp服务器,而且还了解了安装过程中,所要注意的事项。对于一些简单的小问题,能够自己动手排除。
我个人认为,这次实习对于我是非常有意义的,对我个人的影响比较大,对我的成长更有莫大的帮助。
第二篇:JSP实习报告
引言
JSP(Java Server Pages)是由Sun Microsystems公司倡导、许多公司参与一起建立的一种动态网页技术标准,是一种建立安全的、跨平台的、优秀的动态网页技术。由于其具有强大的可移植性和可扩展性,所以应用越来越广泛。实习目的和意义
通过JSP的上机实习,理论联系实际,巩固所学的知识,进一步理解和掌握JSP的原理和基本语法,加深对相关内容的理解;提高处理实际问题的能力,培养实践能力,接触课堂以外的实践知识,拓宽知识面,为最后一学年课程学习打好基础;了解设计专题的主要内容,为自己能顺利与社会环境接轨做好准备。实习要求
理解和掌握JSP的运行原理和基本语法,通过JSP的上机实习,可以独立安装、配置JSP的开发和运行环境,掌握Eclipse等工具软件的使用方法,巩固所学知识,具体实现以下要求:
1.开发一个JSP页面,通过JSP输出“保护环境、爱护地球”。
2.应用eclipse创建一个WEB项目,并在该项目的根目录下创建index.jsp和welcome.jsp文件,要求实现如下功能:当访问index文件后,会自动转发到welcome.jsp页面。3.应用JSP脚本标识实现一个简单的计数器。
4.编写一个简单的留言薄,写入留言提交后显示留言内容。5.编写一个实现页面计数的计数器。
6.实现一个简单的登录程序,要求应用JavaBean来接收用户输入的用户名和密码,然后判断输入的用户名是否为“admin”,密码是否为“000”,若是,则转发到success.jsp页面,显示“欢迎登录”提示信息,否则转发到fault.jsp页面中,显示“登录失败”等提示信息。4 实习准备过程
4.1 软件准备
① j2sdk1.6.0: 到 http://java.sun.com/j2se/ ② Tomcat6.0: 到 http://tomcat.apache.org/download ③ myeclipse6.6: 到 http://>
实现了从index页面自动转到Welcome 页面!
第三篇:jsp实习报告
新疆农业职业技术学院
《Java程序设计》 教学实习报告
部 门:软件技术学院 专 业:计算机网络技术 班 级:2007高职网络 姓 名:张 博 指导教师:李 欣
《JAVA程序设计》教学实习报告
一、实习时间:
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 < length;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 实训分析总结: 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(){ return 3.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 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技术,也通过实习使我了解到我更多的不足,在做题时没有一点点的思路,注意力不是很集中,在每项实训中不是很认真的听讲,在调试程序的时候,发现不了问题的根本原因,一个简单的程序少了那小小的一个标点都不行,发现了自己粗心大意的一面。在以后会多加努力的。 六、致谢 通过这次实习,我深感自己的不足,我对知识的渴望远远超过这些,我将努力学习知识,取长补短,为自己注入新鲜的血液。相信自己会在以后的实习工作中更加努力。 这次非常感谢老师在实习中对我们的指导,我们有什么不懂的问题都是老师悉心教导,不耐其烦的告知我们,和我们一起实习,在这里向老师说声,您辛苦了。也非常感谢同学在学习上给予我的帮助。感谢学校为我们安排的这次实习。 Jsp实习作业 一.实现两个数求和 1.实现过程描述: 写一个界面在这个界面中我们输入要计算的两个数据,如果输入错误的话就是用清零来清除原来的数据然后在重新输入,然后通过求和按钮将数据提交到指定的界面也就是servlet中通过request.getParameter(“name”)来取得输入的数据然后进行类型的转化在进行求和最后将所求的和输出到客户端,这时是一个标准的html文档,再通过浏览器将标准的html文档转化为一个可视化界面,也就是我们所看到的界面。 2.访问过程: 上面写的额这个也就是一个小的项目,所以我们想知道上面的提交的过程是怎么一回事,怎么把输入的数据传到servlet中,在WEB-INF 中我们要建立一个class文件夹lib文件夹和web.xml文件,其中classes文件夹中存放的是servlet被javac编译器编译后的.class文件在使用的过程中tomcat会调用这个文件的,而web.xml 中我们进行配置就是将访问的路劲进行配置,通过这个配置找到前面的class文件并把提交的数据获取进行相应的操作在输出: 也就是执行浏览器中输入的地址:localhost:8080/first/test1.jsp; 3.实现代码: (1)数据输入提交代码: <%@page language =“java” contentType=“text/html;chatset=GBK”%> 电子商务系统规划与管理 实训报告 题 目: 新闻发布系统网站 系 别: 管理系 专 业: 电子商务 学生姓名: 学 号: 指导教师: 2013年 月 日 新闻发布系统 2 目录 1.系统开发和运行环境..........................................3 2.系统设计....................................................3 2.1 总体设计................................................3 2.2 详细设计................................................4 2.2.1 结构设计..........................................4 3.1 具体功能解释..........................................6 3.1.1 增加发布新闻功能....................................6 3.1.2 编辑发布新闻功能....................................7 3.1.3 删除发布新闻功能....................................7 3.1.4 管理发布新闻功能....................................7 3.1.5 管理分类新闻功能....................................7 3.1.6 后台显示效果框架....................................7 3.1.7 登陆验证功能........................................7 3.1.8 登陆数据处理功能....................................7 3.1.9登陆页面............................................7 3.1.10 退出登陆页面功能...................................7 3.1.11 前台首页...........................................8 3.1.12注册页面...........................................8 3.网站整体效果................................................8 4.核心代码....................................................12 4.1.1 main.jsp............................................12 4.1.2 manage.jsp.........................................13 4.1.3 news_list.jsp......................................14 4.1.4 login.jsp...........................................16 4.1.5 addNews.jsp.........................................17 4.1.6 register.jsp........................................18 4.1.7 news_view.jsp.......................................21 5.系统维护...................................................22 6.归纳总结....................................................22 6.1.1 开发经验...........................................22 6.1.2 设计不足之处.......................................22 6.1.3 心得体会...........................................2 3新闻发布系统 3 1.系统开发和运行环境 (1)J2SDK:Java2的软件开发工具,是Java应用程序的基础。JSP是基于Java技术的,所以配置JSP环境之前必须要安装J2SDK。 (2)Tomcat服务器:Apache组织开发的一种JSP引擎,本身具有Web服务器的功能,可以作为独立的Web服务器来使用。但是,在作为Web服务器方面,Tomcat处理静态HTML页面时不如Apache迅速,也没有Apache健壮,所以我们一般将Tomcat与Apache配合使用,让Apache对网站的静态页面请求提供服务,而Tomcat作为专用的JSP引擎,提供JSP解析,以得到更好的性能。并且Tomcat本身就是Apache的一个子项目,所以Tomcat对Apache提供了强有力的支持。对于初学者来说,Tomcat是一个很不错的选择。 (3)MyEclipse:是Eclipse的插件,也是一款非常优秀的J2EE集成开发环境(IDE),用于构建集成Web和应用程序,支持代码编写、配置、测试以及除错。2.系统设计 2.1 总体设计 系统设计是整个软件项目开发的核心阶段,经过对开发软件的项目要求进行仔细分析,明确目标,严格按照要求进行项目开发,设计出系统的总体结构,进行模块划分,并确定个模块之间相互关系以及每个模块所应该完成的任务。 本次采用模块化设计方法,即按照设计原则把程序分为多个模块,再由各个模块细分成更小的任务来实现整个程序的功能。在细分模块的过程中,模块要求相对独立又相互关联,并且使非设计者容易理解。以下是模块化层次结构图,从上到下层层进行细分描述: 主页查看注册登录新闻分类管理 新闻发布系统 新闻发布管理 4 2.2 详细设计 2.2.1 结构设计 1)连接SQL数据库设计 2)网站功能整体设计 3)页面整体设计 3-1 新闻的管理 新闻发布系统 5 3-2 主页,登陆及注册页面 4)数据库设计 一共2个表,分别存放用户,新闻发布的信息。 4-1 wys数据库 新闻发布系统 6 4-2表 4-3 用户表 4-4 新闻表 3.1 具体功能解释 3.1.1 增加发布新闻功能 通过表单来实现发布新闻的标题,内容和分类的提交,并且在同一个页面进行数据处理,添加至数据库。 新闻发布系统 7 声明一个class类,通过getlist来获得分类列表,判断是否提交了表单,通过request获取表单标题,内容,分类。声明一个webInfo的类,把从request获取的内容传入到此类中,声明一个web的类,执行此类中insert方法进行保存。 3.1.2 编辑发布新闻功能 通过表单来实现发布新闻的标题,内容和分类的提交,并且在同一个页面进行数据处理,添加至数据库。 声明一个class类,通过getlist来获得分类列表,判断是否提交了表单,通过request获取表单标题,内容,分类。声明一个webInfo的类,把从request获取的内容传入到此类中,声明一个web的类,执行此类中updata方法进行保存。获取当前内容的分类。 3.1.3 删除发布新闻功能 通过request来获取id,声明一个名为cls的web类,定义result为0,执行删除操作并返回值到result。若result为0删除失败,否则成功。 3.1.4 管理发布新闻功能 声明一个web类和class类,通过request语句来获取查询内容,实现内容查找。遍历查询出所有内容,通过action传递参数id,实现编辑删除功能。 3.1.5 后台显示效果框架 声明一个 web类,通过getlist来获得分类列表,判断是否提交了表单,通过request获取表单标题,内容,分类。声明一个webInfo的类,把从request获取的内容传入到此类中,声明一个web的类,执行此类中insert方法进行保存。 3.1.6 登陆验证功能 建立cookie,验证是否为admin,以及页面跳转。 3.1.7登陆数据处理功能 声明类user,查找账户密码是否在数据库中,若是则创建session,实现页面跳转。否则提示用户名及密码错误。 3.1.8登陆页面 验证账户、密码是否为空,若为空则提示。 3.1.9退出登陆页面功能 清除session,并执行页面跳转。 3.1.10 导航新闻页面 声明类名为w,wif,cls的类。通过传入参数ID,获取内容并显示。通过request语句来获取查询内容,实现内容查找。遍历查询出所有内容,通过action传递参数id,实现编辑删除功能。 新闻发布系统 8 3.1.11 前台首页 声明一个web类和,通过request语句来获取查询内容,实现内容查找。遍历查询出所有内容,通过action传递参数id,实现查看新闻内容功能。 3.1.12注册页面 通过request获取账号、密码、确认密码和电子邮件。声明类user和userInfo,判断action是否为save,是则进行两次密码输入的判断,否则提示密码不一致重新输入。若两次密码输入一致,则对密码进行MD5加密,进行数据保存。并将结果返回result。若不为0则,注册成功,否则提示失败。 3.网站整体效果 1-6 发布新闻页面 1-7 发布成功的效果图 新闻发布系统 9 1-8新闻编辑页面 1-9 新闻编辑成功的效果图 新闻发布系统 10 1-10 发布新闻删除的效果图 1-11前台页面效果图 1-12 注册页面 新闻发布系统 11 1-15 注册信息提醒图 1-16 注册成功页面 1-17浏览新闻稿效果图 新闻发布系统 12 4.核心代码 4.1.1 main.jsp <%@ page language=“java” contentType=“text/html;charset=utf-8” %> <%@page import=“java.util.List”%> <%@page import=“iit.jsp.beans.News”%> 第四篇:JSP实习作业
第五篇:JSP实训报告
bgcolor=“#284B78”>新闻发布系统 | ||||
欢迎, xxx用户 |用户登录 |管理员登录 | ||||
|