桂电JAVAEE实验报告

时间:2024.4.7

桂林电子科技大学

桂电JAVAEE实验报告


一、实验目的

掌握JSP+DAO的网站开发步骤;

理解JSP+DAO网站模式的优缺点。

二、实验环境

PC系列微机,CPU2G以上,内存1G以上,Windows XP,MyEclipse6.5

三、实验报告

程序源代码如下:

<%--

    Document   : login

    Created on : 2002-1-1, 0:41:42

    Author     : Administrator

--%>

<%@page contentType="text/html" pageEncoding="UTF-8"%>

<%

    java.sql.Connection conn=null;

    java.lang.String strConn;

    java.sql.PreparedStatement pStmt=null;

    java.sql.ResultSet sqlRst=null;

    String url = "jdbc:sqlserver://localhost:1433;DatabaseName=use";

    String user = "sa";

    String pwd = "123";

    try

         {

                   Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

         }

         catch (ClassNotFoundException e1)

         {

                   e1.printStackTrace();

         }

    try{

        conn=java.sql.DriverManager.getConnection(url,user,pwd);

        pStmt=conn.prepareStatement("select password from member where name=?");

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

        pStmt.setString(1, username);

        sqlRst=pStmt.executeQuery();

%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"

   "http://www.w3.org/TR/html4/loose.dtd">

<html>

    <head>

        <meta http-equiv="Content-Type" content="textml; charset=UTF-8">

        <title>JSP Page</title>

    </head>

    <body>

        <p><h2>欢迎进入系统</h2></p>

        <form>

           用户:<input type="text"name="username"/><br/>

            密码:<input type="password"name="password"/><br/> 

            </p>

            <input type="reset" name="reset" value="重置"/>

            <input type="submit" name="submit" value="提交"/>          

<%           

        if(sqlRst.next()){

%> 

        <h2>恭喜你,登录成功!</h2>

<%

        }

%>

        </form>

    </body>

<ml>

<%

         }catch(java.sql.SQLException e){

             out.println(e.toString());

         }finally{

            if(conn!=null) conn.close();

        }

%>

运行结果:

四、实验小结

通过第二次实验,对于Servlet的工作原理和Servlet编程基本技能,我已经有了更深刻的认识,不再局限于书本上的理论知识,通过上网查找资料,我也扩充了自己的视野范围。同时我也掌握了基于数据源访问数据库等技术

 

桂林电子科技大学

桂电JAVAEE实验报告


一、实验目的

掌握JAVA EE JSP+servlet+web service开发模式开发JAVA EE的web服务;

掌握该开发模式实现用户访问web服务及web服务的业务逻辑功能。

二、实验环境                                                          

PC系列微机,CPU2G以上,内存1G以上,Windows XP,MyEclipse6.5以上。

三、实验报告

源代码如下:

Weightcheck.java

package com.hyl;

import javax.jws.WebService;

import javax.jws.WebMethod;

import javax.jws.WebParam;

/**

* @author Administrator

@WebService(serviceName = "WeightCheck")

public class WeightCheck {

    @WebMethod(operationName = "check")

    public String check(@WebParam(name = "sex") boolean sex, @WebParam(name = "weight") char weight, @WebParam(name = "height") int height) {

        int r=height-weight;

        if(sex)r=105-r;

        else r=115-r;

        if(r<-10)return "太瘦";

        if(r<0&&r>-10) return "偏瘦";

        if(r<10&&r>0) return "超重";

        if(r<20&&r>10) return "肥胖";

        else return "严重肥胖";

    }

}

Invoke.jsp

<%@page contentType="text/html" pageEncoding="UTF-8"%>

<!DOCTYPE html>

<html>

    <head>

        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

        <title>JSP Page</title>

    </head>

    <body>

       

    <%

     boolean sex = false;

int weight = 48;

int height = 165;

       String xb = request.getParameter("sex");

       if(xb.equals("true"))sex=true;

       weight = Integer.parseInt(request.getParameter("weight"));

       height = Integer.parseInt(request.getParameter("height"));

    %>

<%--star web service invocation--%><hr/>

<%

    try {

         com.hyl.wsclient.WeightCheck_Service service = new com.hyl.wsclient.WeightCheck_Service();

         com.hyl.wsclient.WeightCheck port = service.getWeightCheckPort();

         java.lang.String result = port.check(sex, weight, height);

         out.println("你的体重为"+weight+",你的身高为"+height+"<br>");

        out.println("测试结果为:"+result);

    } catch (Exception ex) {

    }

    %>

    <%-- end web service invocation --%><hr/>

    </body>

</html>

Test.jsp

<%@page contentType="text/html" pageEncoding="UTF-8"%>

<!DOCTYPE html>

<html>

    <head>

        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

        <title>JSP Page</title>

    </head>

    <body>

        <h1>体重超标检测</h1>

        <form name="info"action="invoke.jsp"method="POST">

          性别:  <select name="sex">

             <option value="true">男</option>

             <option value="false">女</option>

          <lect>

         体重: <input type="text"name="weight"value="50"/>

         身高: <input type="text"name="height"value="160"/>

         <input type="submit"value="测试"name="up"/>

        </form>

    </body>

</html>

运行结果:

四、实验小结

通过第三次实验,我了解了WEB服务的基本概念,对WEB服务技术的优缺点有了客观上的理解。通过实验课,我了解了WEB服务的基本步骤。

 

桂林电子科技大学

桂电JAVAEE实验报告


一、实验目的

掌握J2EE JSP+servlet+EJB开发模式开发J2EE的EJB组件;

掌握该开发模式实现用户访问EJB及EJB组件功能。

二、实验环境

PC系列微机,CPU2G以上,内存1G以上,Windows XP,MyEclipse6.5以上。

三、实验步骤

1、创建ejbsession.java实现会话 EJB的计算逻辑功能。

         编写该ejbsession.java实现EJB业务逻辑功能。

2、创建ejbentity.java实现实体EJB的数据模型。

         编写该ejbentity.java实现用户账户的数据模型。

3、创建ejbmessage.java实现用户提交信息触发事件,完成逻辑计算和实体EJB对象的修改。

四、实验报告

程序源代码:

Ejbentity.java

public class Ejbentity implements StatefulCalculatorRemote {

         private int a = 0;

         private int b = 0;

         public int add() {

                   return a + b;

         }

         public void setA(int a) {

                   this.a = a;

         }

         public void setB(int b) {

                   this.b = b;

         }

         public void destory() {

                   System.out.println("EJB StatefullCalculator 即将销毁");

         }

         public void created() {

                   System.out.println("EJB StatefullCalculator 已经创建完毕");

         }

         public void passive() {

                   System.out.println("EJB StatefullCalculator 准备钝化");

         }

         public void active() {

                   System.out.println("EJB StatefullCalculator 已经激活");

         }

         public void remove() {

                   System.out.println("EJB StatefullCalculator 请求容器销毁当前 Bean 实例");

         }

}

Ejbentity.java:

public class StudentFacade implements StudentFacadeLocal {

         public static final String USERNAME = "username";

         public static final String PASSWORD = "password";

         public static final String AGE = "age";

         @PersistenceContext

         private EntityManager entityManager;

         public void save(Student entity) {

                   LogUtil.log("saving Student instance", Level.INFO, null);

                   try {

                            entityManager.persist(entity);

                            LogUtil.log("save successful", Level.INFO, null);

                   } catch (RuntimeException re) {

                            LogUtil.log("save failed", Level.SEVERE, re);

                            throw re;

                   }

         }

         public void delete(Student entity) {

                   LogUtil.log("deleting Student instance", Level.INFO, null);

                   try {

                            entity = entityManager.getReference(Student.class, entity.getId());

                            entityManager.remove(entity);

                            LogUtil.log("delete successful", Level.INFO, null);

                   } catch (RuntimeException re) {

                            LogUtil.log("delete failed", Level.SEVERE, re);

                            throw re;

                   }

         }

         public Student update(Student entity) {

                   LogUtil.log("updating Student instance", Level.INFO, null);

                   try {

                            Student result = entityManager.merge(entity);

                            LogUtil.log("update successful", Level.INFO, null);

                            return result;

                   } catch (RuntimeException re) {

                            LogUtil.log("update failed", Level.SEVERE, re);

                            throw re;

                   }

         }

         public Student findById(Integer id) {

                   LogUtil.log("finding Student instance with id: " + id, Level.INFO,null);

                   try {

                            Student instance = entityManager.find(Student.class, id);

                            return instance;

                   } catch (RuntimeException re) {

                            LogUtil.log("find failed", Level.SEVERE, re);

                            throw re;

                   }

         }

         @SuppressWarnings("unchecked")

         public List findByProperty(String propertyName,

                            final Object value, final int... rowStartIdxAndCount) {

                   LogUtil.log("finding Student instance with property: " + propertyName+ ", value: " + value, Level.INFO, null);

                   try {

                            final String queryString = "select model from Student model where model."

                                               + propertyName + "= :propertyValue";

                            Query query = entityManager.createQuery(queryString);

                            query.setParameter("propertyValue", value);

                            if (rowStartIdxAndCount != null && rowStartIdxAndCount.length > 0) {

                                     int rowStartIdx = Math.max(0, rowStartIdxAndCount[0]);

                                     if (rowStartIdx > 0) {

                                               query.setFirstResult(rowStartIdx);

                                     }

                                     if (rowStartIdxAndCount.length > 1) {

                                               int rowCount = Math.max(0, rowStartIdxAndCount[1]);

                                               if (rowCount > 0) {

                                                        query.setMaxResults(rowCount);

                                               }

                                     }

                            }

                            return query.getResultList();

                   } catch (RuntimeException re) {

                            LogUtil.log("find by property name failed", Level.SEVERE, re);

                            throw re;

                   }

         }

         public List findByUsername(Object username,

                            int... rowStartIdxAndCount) {

                   return findByProperty(USERNAME, username, rowStartIdxAndCount);

         }

         public List findByPassword(Object password,

                            int... rowStartIdxAndCount) {

                   return findByProperty(PASSWORD, password, rowStartIdxAndCount);

         }

         public List findByAge(Object age, int... rowStartIdxAndCount) {

                   return findByProperty(AGE, age, rowStartIdxAndCount);

         }

         @SuppressWarnings("unchecked")

         public List findAll(final int... rowStartIdxAndCount) {

                   LogUtil.log("finding all Student instances", Level.INFO, null);

                   try {

                            final String queryString = "select model from Student model";

                            Query query = entityManager.createQuery(queryString);

                            if (rowStartIdxAndCount != null && rowStartIdxAndCount.length > 0) {

                                     int rowStartIdx = Math.max(0, rowStartIdxAndCount[0]);

                                     if (rowStartIdx > 0) {

                                               query.setFirstResult(rowStartIdx);

                                     }

                                     if (rowStartIdxAndCount.length > 1) {

                                               int rowCount = Math.max(0, rowStartIdxAndCount[1]);

                                               if (rowCount > 0) {

                                                        query.setMaxResults(rowCount);

                                               }

                                     }

                            }

                            return query.getResultList();

                   } catch (RuntimeException re) {

                            LogUtil.log("find all failed", Level.SEVERE, re);

                            throw re;

                   }

         }

}

Ejbmessage.java:

@MessageDriven(mappedName = "jms/MyMDB", activationConfig = {

                   @ActivationConfigProperty(propertyName = "acknowledgeMode", propertyValue = "Auto-acknowledge"),

                   @ActivationConfigProperty(propertyName = "destinationType", propertyValue = "javax.jms.Queue"),

                   @ActivationConfigProperty(propertyName = "destination" , propertyValue="queue/testQueue"),

                   @ActivationConfigProperty(propertyName = "messageSelector" , propertyValue="BookName LIKE '%MyEclipse6%'")

})               

public class MyMDB implements MessageListener {

         public void onMessage(Message message) {

                            if(message instanceof TextMessage){

                            TextMessage msg =(TextMessage) message;

                            String text;

                            try {

                                     text = msg.getText();

                                     System.out.println("收到文本消息:" + text);

                            } catch (JMSException e) {

                                     e.printStackTrace();

                            }

                   } else {

                            System.out.println("收到其它消息:" + message);

                   }

         }

}

五、实验小结

通过第四次实验,我知道了EJB有消息EJB,实体EJB,回话EJB,对三种EJB的工作原理有了清晰的认识,同时也对无状态会话EJB、有状态实体EJB、实体EJB以及消息驱动EJB进行了比较,知道他们之间有什么不同于区别,也初步掌握了如何运用三种EJB。

更多相关推荐:
电子电路CAD实验四完整报告

重庆大学学生实验报告实验课程名称电子电路CAD实验开课实验室学院光电工程年级专业班学生姓名学号开课时间至一学期光电学院制电子电路CAD实验报告

电子电路CAD-实验报告格式要求

附录一专业班级光电信息1班姓名付梦婷学号20xx3074给出实验电路图按实验指导书对实验报告的要求给出分析输出的波形图附录一120714153442PSpice92Mar20xxID1ProfilequotSC...

电子线路CAD实验报告

西安邮电大学通信与信息工程学院《电子线路CAD》报告专业班级:信工1201学生姓名:学号(班内序号):20##年5月5日1《电子线路CAD》设计任务书一、设计印刷电路板图1、绘制原理图库元件:根据所给的原理图中…

电子线路CAD设计实验报告

课程设计论文课程名称题目名称线性化电路设计学生学院信息工程专业班级应用电子技术学号学生姓名指导教师罗思杰20xx年4月20日一任务与要求1熟悉原理图编辑器的功能与使用方法掌握原理图元件及元件库的使用元件的放置与...

电子电路CAD上机实验报告----实验五 电路的统计分析

中南大学物理学院电子电路CAD上机实验报告3专业班级时间20xx年11月04日实验五电路的统计分析一实验目的1能够正确对元器件模型参数的离散分布情况进行描述掌握对电路进行MonteCarlo分析以及最坏情况分析...

电子线路CAD实验报告张增帅

电工电子实验教学中心ElectricalandElectronicExperimentCenterofBinzhouUniversity实验报告册课程系院专业班级姓名学号电子线路CAD物理与电子科学系应用电子技...

电子线路CAD实验报告(申超)

电子线路CAD实验报告班级0711电科学号07111022姓名申超指导教师陈兴国实验一两级阻容耦合三极管放大电路原理图设计一实验目的1熟悉原理图编辑器2掌握原理图的实体放置与编辑3熟练完成两级阻容耦合三极管放大...

北京信息科技大学电子线路CAD实验报告四

实验四AltiumDesigner原理图设计一实验目的1熟悉AltiumDesigner10操作环境2掌握电子线路原理图设计步骤及方法二实验内容1设计单片机最小应用系统2画出单片机最小应用系统原理图3输出元件报...

电子线路CAD实验报告2-蒋毅12284020xx

电子线路CAD实验报告实验序号2实验名称原理图输入入门专业班级12微电子姓名蒋毅一实验目的通过实例熟悉电路图的设计过程掌握具体电路的设计方法二实验内容1输入原理图如下图运用A4模板设置好标题栏实验日期20xx年...

电子线路CAD半自动方式设计PCB、制作PCB元件封装图实验报告

实验六半自动方式设计PCB制作PCB元件封装图一实验目的1掌握利用PCB向导建立已放置好布线区的PCB文件的方法2掌握实现原理图文件与PCB文件间信息交换的方法3掌握以半自动方式设计PCB的方法及操作过程4了解...

电子线路CAD实验报告

实验1Protel99SE使用基础一实验目的1掌握Protel99SE的启动和退出方法2熟悉Protel99SE的操作环境菜单栏工具栏状态栏以及系统菜单等3掌握创建和打开设计数据库文件的方法4掌握启动原理图编辑...

电子线路CAD实验报告

电工电子实验教学中心ElectricalandElectronicExperimentCenterofBinzhouUniversity实验报告册课程系院专业班级姓名学号电子线路CAD物理与电子科学系应用电子技...

电子电路cad实验报告(9篇)