《网络编程设计实验指导书范文.docx》由会员分享,可在线阅读,更多相关《网络编程设计实验指导书范文.docx(12页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、实验一 JavaEE初级编程(2学时)1、实验目的(1)掌握Java程序运行环境的安装与配置。(2)掌握Tomcat服务器的安装及环境配置方法。(3)掌握对MyEclipse的集成开发环境的配置,为Java EE程序的实验做好准备工作。(4)掌握编写与运行JSP程序的方法。(5)掌握JSP语言的基本编程方法,了解JSP中各种元素及标签的使用。2、基本要求:(1)注意自始至终贯彻课程中所介绍程序设计风格,养成良好的编程习惯。(2)独立完成所布置习题。(3)为保证尽量在统一安排的上机时间内编译运行通过程序,应事先设计好程序。(4)认真完成每次实验,并写出实验报告。3、实验内容和步骤:(1)安装JD
2、K软件包。(2)设置环境变量,包括设置Java的运行路径和classpath。(3)安装tomcat服务器,并了解服务器的文件结构。(4)安装MyEclipse,学会在该环境中如何配置Tomcat服务器,完成JavaEE项目的部 署及运行。(5)建立一个项目user,在其中首先创建一个注册页面,要求在注册页面中输入用户 注册信息,如果注册成功,则给出成功提示,如果注册失败,则将页面返回到注册页面,并 给出错误提示。 建立一个SQLServer数据库Test,在其中建立数据表user,表中包含用户注册时所需 要的各种信息字段,包括username, password, sex, age, hob
3、by等,并向其中输入 几条用户信息。 建立一个JSP注册页面regist.jsp,在其中通过form表单输入注册所需要的用户名称userName,用户密码userPassword,重复密码RUserPassword,用户性别userSex及年龄userAge还有 用复选框表示的用户爱好hobby等信息,输入信息之后通过点击提交按钮submit,将这些信息提交到另一个regist_User.jsp页面。 在regist_User.jsp页面中完成数据库的验证,根据验证结果给出提示,并转到相应的 处理页面。首先利用jdbc进行SQLServer数据库连接,再调用Statement执行查询语句验证用
4、户名是否已存在于数据库中,如果已存在,则将页面重定向到registjsp进行 重新注册,并给出错误提示;如果用户名不存在则将用户的信息利用Statement 保存到数据库中并返回注册成功的信息。msg.append(e+HnH);发送信息public void sendMessage()try (String s=str_send.getText();str_send.setText(,M,);msg.append(服务器:+s+“n); ByteArrayOutputStream out=new ByteArrayOutputStream(); PrintStream pout=new Pr
5、intStream(out);pout.print(s);byte buf=out.toByteArray();sendPacket=newDatagramPacket(buf,buf.length,InetAddress.getByName(hostname),3001);sendSocket.send(sendPacket); buf=null; catch (Exception err) msg.append(err+nnn);)public void actionPerformed(ActionEvent e) if(e.getSource()=send) sendMessage();
6、)if(e.getSource()=exit) (聊天程序已经关闭,再见! nn);System.exit(O);public void windowsClosing(WindowEvent e)(聊天程序已经关闭,再见n); System.exit(O);)public void keyPressed(KeyEvent e) if(e.getSource()=str_send) if(e.getKeyChar()=KeyEvent.VK_ENTER) sendMessage();主函数public static void main(String args)Serverapp_UDP app=
7、new Serverapp_UDP();app.displayO; app.receiveMessage(); ) public void keyReleased(KeyEvent argO) / TODO Auto-generated method stub)public void keyTyped(KeyEvent argO) / TODO Auto-generated method stub)2.建立客户端程序Clientapp_UDP.java,实现客户端与服务之间的通信, package talk; import java.awt.*;import java.awt.event.*;
8、import java.io.*;.*;public class Clientapp_UDP extends WindowAdapter implements ActionListener,KeyListener TextField stjsend;Label label;TextArea msg;Button send,exit;Panel pl;DatagramSocket receiveSocket,sendSocket;DatagramPacket receivePacket,sendPacket;public void display()Frame f=new Frame(在线聊天客
9、户端”);f.setSize(400,350);f.setLocation(l 00,100);f.setBackground(Color.red);pl=new Panel();f.add(pl,nSouthn);msg=new TextArea();msg.setSize(l 00,250); msg.setBackground(Color. white); msg.setEditable(false);f.add(msg);label=new Label(发送消息);pl.add(label);str_send=new TextField(20);pl.add(str_send);str
10、_send.addKeyListener(this);send=new Button(发送);pl.add(send);send.addActionListener(this);exit=new Button(退出”);pl.add(exit);exit.addActionListener(this);f.addWindowListener(this);f.setVisible(true);try(sendSocket=new DatagramSocket(3000); catch(IOException e) msg.append(e+n);)public void receiveMessa
11、ge()try (receiveSocket=new DatagramSocket(3001);while(true)byte buf=new byte500;receivePacket=new DatagramPacket(buf,buf.length);receiveSocket.receive(receivePacket);ByteArraylnputStreambin=newByteArrayInputStreain(receivePacket.getData();BufferedReader reader=new BufferedReader(new InputStreamReade
12、r(bin);msg.append(“月艮务器:n+reader.readLine(); msg.append(n);) catch (Exception e) msg.append(e-i-nnH);)public void sendMessage()try B y te Array Outputs tream bout=new Byte Array Outputs tream();PrintStream pout=new PrintStream(bout);pout.print(str_send.getText();byte buf=bout.toByteArray(); sendPack
13、et=newDatagramPacket(buf,buf.length,InetAddress.getByName(HlocalhostH),3333); sendSocket.send(sendPacket);msg.append(客户 端:n+str_send.getText()+Mnn); str_send.setText(,n); catch (Exception err) msg.append(err4-nnn);)public void actionPerformed(ActionEvent e) if(e.getSource()=send) sendMessage();)if(e
14、.getSource()=exit) System.out.printlnC聊天程序已经关闭,再见! nn); System.exit(O);)public void windowsClosing(WindowEvent e)(聊天程序已经关闭,再见n); System.exit(O);)public void keyPressed(KeyEvent e) if(e.getSource()=str_send) if(e.getKeyChar()=KeyEvent.VK_ENTER) sendMessage();)public static void main(String args) Clie
15、ntapp_UDP client=new Clientapp_UDP();client.displayO;client.receiveMessage();)public void keyReleased(KeyEvent argO) / TODO Auto-generated method stubpublic void keyTyped(KeyEvent argO) / TODO Auto-generated method stub)实验二 基于Java EE架构程序设计(2学时)1、实验目的:(1)理解Java EE架构,掌握JSP, Servlet和JavaBean的使用。(2)掌握JS
16、P隐含对象的使用,尤其是request, session以及Application的使用(3)理解JavaEE中过滤器的功能及使用方法。2、基本要求:(1)注意自始至终贯彻课程中所介绍的JavaEE程序设计风格,养成良好的编程习惯。(2)独立完成所布置习题。(3)为保证尽量在统一安排的上机时间内编译运行通过程序,应事先设计好程序。(4)认真完成每次实验,并写出实验报告。3、实验内容与步骤:在项目user中建立用户登录页面,login, jsp,实现用户登录操作,然后利用隐含对象 将用户的登录参数传递给Servlet程序loginServlet,并同时转到loginServlet上进行登 录验证
17、,如果登录成功,转入系统欢迎页面user/welcome. jsp页面,如果登录失败则返回 登录页面。(1) 定义表示用户的 JavaBean 类 User, User 的属性包括 us er name, userpassword, sex,age, hobby;方,法包括设置username、设置password、设置sex, 设置age, 设置 hobby, 获取 username、获取 password、获取 sex, 获取 age, 获取 hobby。(2) 创建login, jsp页面,在其中建立form表单,添加文本框和密码框控件,分别向其 中输入用户名和密码,然后通过提交按钮,将
18、它提交给后台的servlet程序的url 映射名。(3) 建立工具类jdbcUtil. java,在其中建立getConnection得到数据库连接。(4) 在创建loginServlet. java,首先从request中提取客户端传递过来的参数,再通 过调用工具类jdbcUtil取得数据库连接,通过查询语句将参数和数据库进行核对, 如果用户输入的用户名称和密码不正确,给出错误提示,并将页面重定向到 regist. jsp,如果用户输入的用户名和密码正确,进入系统欢迎页面。(5) 建立loginServlet后再到Web. xml中对servlet进行部署。(6) 为user文件夹中的所有文
19、件添加过滤器,建立过滤器userfilter, java,在该过滤 器中实现只有登录用户才能访问user文件夹下的页面,如果用户未登录拒绝其访问 该文件夹下的所有页面。(7) 在Web. xml中对userFilter进行部署,设置激活条件。实验三IE小型浏览器的设计与实现(2学时)1、实验目的:(1)掌握InetAdress的概念与应用(2)掌握URL的概念(3)掌握URL与URL Collection类的应用2、基本要求:(1)注意自始至终贯彻课程中所介绍程序设计风格,养成良好的编程习惯。(2)独立完成所布置习题。(3)为保证尽量在统一安排的上机时间内编译运行通过程序,应事先设计好程序。(
20、4)认真完成每次实验,并写出实验报告。3、实验内容与步骤:(1)利用Java扩展包java, swing提供的JEditorPane类,来显示指定的网络资源的 内容,能生成并响应超链接事件。public class browser extends JFrameJLabel jlabel;JTextField jtf;JEditorPane edpl;/定义无参构造方法,对程序进行初始化public browser()super(nbrowsern);Container con=getContentPane();jlabel=new JLabel(n请输入要访问的网址:);jtf=new JTe
21、xtField();jtf.addActionListener(new MyEnter();JPanel panel=new JPanelQ;panel.setLayout(new GridLayout(2,l);panel.add(jlabel);panel. add(jtf);con.add(panel,BorderLayout.NORTH);edpl=new JEditorPane();edpl.setEditable(false);edpl.addHyperlinkListener(new MyHyperListener();con.add(new JScrollPane(edpl),
22、BorderLayout.CENTER);setSize(600,800);setVisible(true);)/ JEditorPane根据参数调用响应的页面void getPage(String site)tryedpLsetPage(site); 在edpl中显示指定网页)catch(IOException e)JOptionPane.showMessageDialog(thisJ连接错误,错误提示JOpti onPane.ERROR_MESSAGE);)处理输入网址时的回车操作class MyEnter implements ActionListener public void act
23、ionPerformed(ActionEvent e)String string=jtf.getText();getPage(string);)/处理网页中的超链接class MyHyperListener implements HyperlinkListenerpublic void hyperlinkUpdate(HyperlinkEvent e)if(e.getEventType()=HyperlinkEvent.EventType. ACTIVATED)(String string=e.getURL().toString();获取超链接指向的地址getPage(string);/显示超
24、链接指向的网页内容 )/建立主函数,对该类进行实例化public static void main(String args)browser mybrowser=new browser();mybrowser.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); )实验四 基于TCP/1P协议的单客户/服务器Socket编程应用(2学时)1、实验目的:(1)掌握基于TCP/IP协议的流套接字的概念与应用(2)掌握ServerSocke和Socket的概念与应用(3)掌握基于TCP/IP协议的C/S模式的编程应用2、基本要求:(1)注意自始至终贯彻课程中所
25、介绍程序设计风格,养成良好的编程习惯。(2)独立完成所布置习题。(3)为保证尽量在统一安排的上机时间内编译运行通过程序,应事先设计好程序。(4)认真完成每次实验,并写出实验报告。3、实验内容和步骤:1、建立服务器端程序(1) talkserver.java,实现与客户的数据通信:import java.io.;.*;public class talkServer 主函数public static void main(String args)ServerSocket server;Socket socket;String s;try建立ServerSocket,针对指定端口进行侦听server=
26、new ServerSocket(2000);System, out. printin(等待连接”);socket=server, accept。;侦听到客户端请求时,则接收请求,建立连接System, out. printin(连接成功”);Systein out pnntlnC*),System.out.print(,n);建立和socket绑定的输入输出流,在服务器与客户端之间进行通信InputStream in=socket.get!nputStream();OutputStream out=socket.getOutputStream();DatalnputStream din二ne
27、w DatalnputStream(in);DataOutputStream dout=new DataOutputStream(out);建立从键盘进行输入的输入流BufferedReader sin=new BufferedReader(new InputStreamReader(System.in);System. out. printing等待客户发送信息”);进入死循环,实现客户端与服务器之间的信息交互while(true)System.out.println(,n);System.out.println(,n);s=din.readUTF();(从客户端接收到的信息为“+s);if
28、(s.trim().equals(nBYEn) break;System, out. print(请输入你要发送的信息)s=sin.readLine();dout.writeUTF(s);if(s.trim().equals(nBYE,) break;)din.close();dout.close();in.close();out.close();socket.close();catch(IOException e)System.out.println(Erro 亡 +e);)2.建立客户端程序(1) talkclient.java,实现与服务器的数据通信/客户端程序,用来向服务器端发出请求并
29、进行通信import java.io.;import .;public class talkclient public static void main(String args) Socket socket;String s;try (针对服务器指定端口建立socket,同时对服务器指定端口发出连接请求socket=new Socket(nlocalhostn,2000);System.out.println();System.out.println();System.out.println();/建立和socket绑定的输入输出流,以及从键盘读入数据的输入流InputStream in=so
30、cket.getInputStream();OutputStream out=socket.getOutputStream();DatalnputStream din=new DatalnputStream(in);DataOutputStream dou=new DataOutputStream(out);BufferedReader sin=new BufferedReader(new InputStreamReader(System.in);/进入死循环进行服务器端和客户端的通信while(true)System, out. print(”请输入您要发送的信息)s=sin.readLin
31、e();dou.writeUTF(s);if(s.trim().equals(,BYEn) break;elseSystem.out.println(nn);System.out.println(nn);)s=din.readUTF();(从服务器接收到的信息为:+s);if(s.trim().equals(nBYEn) break;)din.closeQ;dou.closeQ;in.closeQ;out.close();socket.close(); catch (Exception e) System.out.println(e);实验四 基于UDP协议的C/S模式的Socket编程应用(
32、2学时)1、实验目的:(1)掌握基于UDP协议的数据报套接字的概念与应用(2)掌握 DatagramSocket 和 DatagramPacket 的概念与应用(3)掌握基于UDP协议的C/S模式的编程应用2、基本要求:(1)注意自始至终贯彻课程中所介绍程序设计风格,养成良好的编程习惯。(2)独立完成所布置习题。(3)为保证尽量在统一安排的上机时间内编译运行通过程序,应事先设计好程序。(4)认真完成每次实验,并写出实验报告。3、实验内容和步骤:本实验是基于UDP协议的C/S模式的图形界面通讯程序,以可视化操作模式,实现服 务器与客户端之间的通信操作。1、建立服务器端程序(1) Serverap
33、p_UDP.java,实现与客户的数据通信:package talk;import java.awt.*;import java.awt.event.*;import java.io.*;.*;public class Serverapp_UDP extends WindowAdapter implements ActionListener,Key Listener TextField str_send;Label label;TextArea msg;Button send,exit;Panel p 1;String hostname;DatagramSocket receiveSocket
34、,sendSocket;DatagramPacket receivePacket,sendPacket;public void display()Frame f=new Frame(在线聊天服务器)f.setSize(400,350);f.setLocation(400,400);f.setBackground(Color.red);pl二new Panel();f.add(pl,HSouthH);msg=new TextArea();msg.setSize(l 00,250);msg.setBackground(Color. white);msg.setEditable(false);f.a
35、dd(msg);label=new Label。发送消息)pl.add(label);str_send=new TextField(20);pl.add(str_send);str_send.addKeyListener(this);send=new Button(发送)pl.add(send);send.add ActionListener( this);exit=new Button(退出)pl.add(exit);exit.addActionListener(this);f.addWindowListener(this);f.setVisible(true);trysendSocket=
36、new DatagramSocket(5000);catch(Exception e) msg.append(e+nnn);)接受信息public void receiveMessage() try (receiveSocket=new Datagramsocket(3333);while(true)bytef buf=new byte500;receivePacket=new DatagramPacket(buf,buf.length);receiveSocket.receive(receivePacket);if(receivePacket.getLength()=O)System, out. printin(消息为空) continue;)Byte Array InputStreambin=newByteArrayInputStream(receivePacket.getData();BufferedReader reader=new BufferedReader(new InputStreamReader(bin);msg.append(客户端:n+reader.readLine();msg.append(nnn);reader.close();bin.closeQ; catch (Exception e)