搭建WebService开发环境,改进“图片上传”实验
写在前面:
本次实验是在Jsp+servlet+SqlServer实现图片上传、图片详情查看、表格分页实验的基础上进行改进……
(°ー°〃)菜鸟一枚!如有问题欢迎指出!!
结果展示
1、新建两个工程,一个是Webservice的Server端,一个是Webservice的Client端。
2、把原来业务层里的类(方法)通过Webservice发布出来,提供Client调用。
↓ 画了个简陋的图。。凑合看看
Server端
——此处有修改——
(之前写的太着急,百度了一个如何发布webservice的文章就开始写了,后续也没有验证!如果之前看过这篇博客的朋友们,对不起!这里误导你们了!因为如果你使用的是Endpoint类的发布方法,是不必导入我之前说的那些jar包的。。)
这里使用的是jdk自带的websevice发布方法
1.6版本的jdk中JAX-WS规范定义了如何发布一个WebService服务。。
但貌似jdk10以上就没有javax.xml.ws这个包了。。所以,如果你的jdk版本高于10那就别往下看了!
再次感谢这位朋友!
核心代码
ImageDAOImpl.java
package com.bnuz.dao.impl;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import javax.jws.WebService;
import com.bnuz.dao.ImageDAO;
import com.bnuz.javabean.Image;
import com.bnuz.util.DBUtil;
/*
* 这个注解一定要加上!!在ImageDAO中也要加上这个注解
*/
@WebService
public class ImageDAOImpl implements ImageDAO{
private Connection conn;
private PreparedStatement ps;
@Override
public void add(Image image) {
try {
conn = DBUtil.getConn();
ps = conn.prepareStatement("insert into images(title,url) values (?,?)");
ps.setString(1, image.getTitle());
ps.setString(2, image.getImgurl());
ps.execute();
} catch (SQLException e) {
e.printStackTrace();
}
}
@Override
public List<Image> queryAll() {
List<Image> images = new ArrayList<Image>();
try {
conn = DBUtil.getConn();
ps = conn.prepareStatement("select * from images");
ResultSet rs = ps.executeQuery();
while(rs.next()) {
int id = rs.getInt("id");
String title = rs.getString("title");
String url = rs.getString("url");
Image image = new Image(id,title,url);
images.add(image);
}
} catch (SQLException e) {
e.printStackTrace();
}
return images;
}
@Override
public Image query(int id) {
Image image = new Image();
try {
conn = DBUtil.getConn();
ps = conn.prepareStatement("select * from images where id = ?");
ps.setInt(1, id);
ResultSet rs = ps.executeQuery();
while(rs.next()) {
image.setId(id);
image.setTitle(rs.getString("title"));
image.setImgurl(rs.getString("url"));
}
} catch (SQLException e) {
e.printStackTrace();
}
return image;
}
@Override
public List<Image> queryScope(int start, int end) {
List<Image> images = new ArrayList<Image>();
try {
conn = DBUtil.getConn();
ps = conn.prepareStatement(