小白学webservice

任务要求:

1.预定餐位:只能提前预订两天,且当天晚上七点以后,只能预订明天和后天。

                    判断手机号码是否是11位,是否已经订餐。

                   根据就餐人数判断是否有空余桌子。

2.取消餐位:根据手机号码是否有效且订餐,删除信息。

将该系统部署成web服务后,编写客户端调用。要求有简单界面。

环境选择:eclipse+tomcat+axis2(我还引入了两个jar包:mail.jar和activatation.jar   应该是这样拼吧。。。。。)

 

学习内容整理:

一、什么是基于soap的web服务:     个人感觉就是可以调用很多服务,集成的意思。

具体可以看看   http://www.webxml.com.cn/zh_cn/web_services_item.aspx?id=494536374B66307964534D3D

soap:简单对象访问协议。大概就是是一种协议,给数据穿上xml这个洋气的时装,塞进HTTP这个法拉利,驰骋在tcp或udp的道路上。

web服务:基于web的服务。。。。

wsdl文件是soap的说明书:其中最重要说明了服务的地址。

小白学webservice

 

 有命名空间,方法之类的,但在最后有service:

小白学webservice

 

 说明了服务地址!就 可以调用了,哈哈哈哈哈!

二、具体操作:

1.配置环境:

下载axis2 :

axis2-eclipse-codegen、axis2-eclipse-service 这两个下载后放在\eclipse\dropins下面,最好直接把jar包放在那!

axis2-bin  

添加的mail.jar activation.jar放在Tomcat/lib目录下;

然后重启eclipse new->others 就可以看到axis2了!

二、文件操作流程:

1.服务器端:

新建Dynamic Web Project ,最后要勾上生成.xml文件;

添加一个.java文件,里面写要实现的方法,应该一般都会有返回值。

new-->webservice,找到刚刚写的那个类,start server。

也可以验证一下:lanuch the webservice(在小地球旁边那个把),右上角倒数第二个,点击wsdl,在生成的wsdl文件找到地址,复制+?wsdl,验证服务。

客户端:

看你想要什么就新建什么。控制台输出,那就新建 javaproject,页面的话,新建Dynamic Web Project;

调用服务:new-》web service client 选择刚刚的wsdl文件。

             看到src目录下多了很多java文件,有一个proxy结尾的文件,就new这个实例,调用其方法。

比如:ReserveProxy proxy=new ReserveProxy ();

          hint= proxy.drop(tel);

具体参考我写的时候看到的一个博客,感谢感谢(https://blog.csdn.net/timothy93bp/article/details/77800807);

三、知识总结:
1.连接数据库:这个版本好像 有要求:可以百度一下jdbc版本(https://www.cnblogs.com/junzi/p/6893122.html)。我用的是5.1

增删查改都类似,这里只记录update了。。。。实懒!

        PreparedStatement ps=null;
        String driver="com.mysql.cj.jdbc.Driver";
        String url="jdbc:mysql://localhost:3306/reserve?useUniicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8&useSSL=false";//?useUniicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8&useSSL=false
        try {
        Class.forName(driver).newInstance();                                                                                                 //创建驱动
        java.sql.Connection connection= DriverManager.getConnection(url, "root", null);                       //建立连接
        String sql="update seata set name=?,reservetime=?,people=?where tel=?";                                //sql 语句
         ps=connection.prepareStatement(sql);                                                                                             //准备一下
        ps.setString(1, name);
        ps.setString(2, time);
        ps.setInt(3, count);
        ps.setString(4, tel);
         rs= ps.execute();                                                                                                                                  //发射    这个还有executequery()"update"的时候用。
         System.out.println("查询结果"+rs);
    }catch(Exception e) {
        e.printStackTrace();
    }finally {
        try {
            ps.close();                                                                                                                                          //关闭发动机
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

2.获取时间,今天,明天。。。(date什么的好像被禁用了,该用什么calencer ,好像又拼错了)

           Calendar calendar = Calendar.getInstance();
           Date d = calendar.getTime();
           SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
           String now = df.format(d);
           int day=Integer.valueOf(now.substring(8, 10)).intValue()+1;
         cal.set(Integer.valueOf(now.substring(0, 4)).intValue(), Integer.valueOf(now.substring(5, 7)).intValue()-1,day);     //明天的设法,我也不知道为什么,可能月份是从0开始的吧。

           Date dd=null;
           SimpleDateFormat ddf = new SimpleDateFormat("yyyy-MM-dd");
           dd=cal.getTime();
           String tomorrow = ddf.format(dd);

3.jsp 获得文本框的内容:

把那个table用form包起来像这样<form method="post" action="dining-hall.jsp">,action里面的内容是把数据提交到哪里去。

把你要获得的写个name:<input type="text" placeholder="请输入称呼" name="name" />

最后获取:name=request.getParameter("name");

 

 

 

总体就是这么多了吧。。。

 

 

     

 

 

 

 

 

------------恢复内容结束------------

上一篇:java-使用Apache Axis2和Rampart创建WebService客户端


下一篇:iterm2文件上传下载