• JavaWeb在线电子相册springmvc


    (一)

    这学期上了一们叫做J2EE的选修课,本以为很水,没想到这个课这么烦气,最后大实验是一个springmvc的电子相册,做了两个周,终于完事了,姑且把这一篇叫做(一)吧

    粗略看了一下啊,两个人的实验报告,后台java代码差不多1500多行,实验报告37页。。。反正很烦气。。。开始正经事

    根据老师给的样例和查阅了很多的资料,最终采用的方法是:将图片的相对路径存入数据库,然后在web运行时候,获取到服务器所在的目录,然后进行存取。

    本来想把代码整个工程上传上来,但是想想又好像很low的样子,实在需要的,可以邮箱联系:ahuskyboy@gmail.com

    如果发现代码有什么问题,也请不吝赐教,评论或者邮箱都ok的~~多谢啦多谢啦

    一,数据库:

    在数据库建好,然后后台jdbc和implement都写好以后,出现了一个问题:picture的第二个字段,我之前的命名是describe但是总是报错,每次执行到这一行都会出错,最后发现,describe是sql中的一个关键词。。。。好坑爹

    二,后台数据处理:由于实验是springmvc的,所以下面分层进行说明

    <M>

    1,model层

     1 package cn.edu.ouc.model;
     2 
     3 import java.io.File;
     4 
     5 
     6 public class Picture {
     7     private String name; // 图片名称
     8     private String describe; // 描述
     9     private String user; // 创建人
    10     private boolean visited; // 是否可查看
    11     private int album; // 所属的相册
    12     private String images;// 图片文件
    13     
    14     public Picture(){};
    15 
    16     public String getPicturePath() {
    17         File file = new File("resource");
    18         String apath = file.getAbsolutePath();
    19         String path =apath.substring(0, apath.lastIndexOf(File.separator));
    20         path = path.replace('\', '/');
    21         String picPath = path+"\WebContent\WEB-INF\resource\";
    22         //System.out.println);
    23         file.delete();
    24         return picPath;
    25     }
    26     
    27     public Picture(String name, String describe, boolean visited, int album,
    28             String images, String user) {
    29         super();
    30         this.name = name;
    31         this.describe = describe;
    32         this.user = user;
    33         this.visited = visited;
    34         this.album = album;
    35         this.images = images;
    36     }
    37 
    38     public String getUser() {
    39         return user;
    40     }
    41 
    42     public void setUser(String user) {
    43         this.user = user;
    44     }
    45 
    46     public String getName() {
    47         return name;
    48     }
    49 
    50     public void setName(String name) {
    51         this.name = name;
    52     }
    53 
    54     public String getDescribe() {
    55         return describe;
    56     }
    57 
    58     public void setDescribe(String describe) {
    59         this.describe = describe;
    60     }
    61 
    62     public boolean isVisited() {
    63         return visited;
    64     }
    65 
    66     public void setVisit(boolean visited) {
    67         this.visited = visited;
    68     }
    69 
    70     public int getAlbum() {
    71         return album;
    72     }
    73 
    74     public void setAlbum(int album) {
    75         this.album = album;
    76     }
    77 
    78     public String getImages() {
    79         return images;
    80     }
    81 
    82     public void setImages(String images) {
    83         this.images = images;
    84     }
    85 
    86 }
    picture.class

    2,jdbc连接数据库

    这个没什么需要注意的,只要是mysql和java连接,都是大同小异的

     1 package cn.edu.ouc.jdbc;
     2 
     3 import java.sql.Connection;
     4 import java.sql.DriverManager;
     5 import java.sql.SQLException;
     6 
     7 public class ConnectDB {
     8     
     9         public static final String DRIVER_CLASS_NAME = "com.mysql.jdbc.Driver";
    10         public static final String URL = "jdbc:mysql://localhost:3306/2017end";
    11         public static final String USERNAME = "root";
    12         public static final String PASSWORD = "123456";
    13 
    14         // 注册数据库驱动
    15         static {
    16             try {
    17                 Class.forName(DRIVER_CLASS_NAME);
    18             } catch (ClassNotFoundException e) {
    19                 System.out.println("注册失败!");
    20                 e.printStackTrace();
    21             }
    22         }
    23 
    24         // 获取连接
    25         public static Connection getConn() throws SQLException {
    26             return DriverManager.getConnection(URL, USERNAME, PASSWORD);
    27         }
    28 
    29         // 关闭连接
    30         public static void closeConn(Connection conn) {
    31             if (null != conn) {
    32                 try {
    33                     conn.close();
    34                 } catch (SQLException e) {
    35                     System.out.println("关闭连接失败!");
    36                     e.printStackTrace();
    37                 }
    38             }
    39         }
    40         //测试
    41         public static void main(String[] args) throws SQLException {
    42             System.out.println(ConnectDB.getConn());
    43         }
    44 
    45     
    46 }
    ConnectDB.class

    3,dao包(根据函数名应该大概知道什么意思吧~)

    其实也是interface接口类

     1 package cn.edu.ouc.dao;
     2 
     3 import java.util.ArrayList;
     4 import java.util.List;
     5 
     6 import cn.edu.ouc.model.Picture;
     7 
     8 public interface PictureOperationDao {
     9     public boolean add(Picture picture);
    10 
    11     public boolean deleteOnePicture(String name,int album);
    12     
    13     public boolean deleteByAlbum(int id);
    14     
    15     public boolean update(Picture picture);
    16     
    17     public ArrayList<Picture> getPicturesOfOneAlbum(int album);
    18     
    19     public List<Picture> getAllPirctures();
    20     
    21     public List<Picture> getVisitedPictures();
    22 
    23     Picture getOnePicture(String name, int album);
    24     
    25     
    26 }
    PictureOperationDao.class

    4,implement包

    对接口进行实现的包

    这里面尤其需要主义的是各种sql代码,例如:

    String sql = "update picture set name = '" + name
          + "',description = '" + describe + "',isvisited = " + isVisit
          + ",album = " + album + ",source = '"+images +"',user = '"+user +"' where name = '"
          +name +"'and album = "+album;
     conn = ConnectDB.getConn();// 获得连接
    ps = (PreparedStatement) conn.prepareStatement(sql);

    一定注意sql中各种单引号  ‘   单引号只需要在数据库中为char和varchar的需要,int不需要,但是不能漏掉,我写代码过程中漏掉好多次。。。

      1 package cn.edu.ouc.dao.impl;
      2 
      3 import java.sql.Connection;
      4 import java.sql.ResultSet;
      5 import java.util.ArrayList;
      6 import java.util.List;
      7 
      8 import com.mysql.jdbc.PreparedStatement;
      9 
     10 import cn.edu.ouc.dao.AlbumOperationDao;
     11 import cn.edu.ouc.dao.PictureOperationDao;
     12 import cn.edu.ouc.jdbc.ConnectDB;
     13 import cn.edu.ouc.model.Album;
     14 import cn.edu.ouc.model.Picture;
     15 
     16 public class PictureOperationDaoImpl implements PictureOperationDao {
     17 
     18     String name; // 图片名称
     19     String describe; // 描述
     20     String user; // 创建人
     21     int isVisit; // 是否可查看
     22     int album; // 所属的相册
     23     String images;// 图片文件
     24     AlbumOperationDao albumDao = new AlbumOperationDaoImpl();
     25 
     26     @Override
     27     public boolean add(Picture picture) {
     28         // TODO Auto-generated method stub
     29         name = picture.getName();
     30         describe = picture.getDescribe();
     31         user = picture.getUser();
     32         if (picture.isVisited()) {
     33             isVisit = 1;
     34         } else {
     35             isVisit = 0;
     36         }
     37         album = picture.getAlbum();
     38         images = picture.getImages();
     39 
     40         Album oneAlbum = albumDao.getAlbum(album);
     41 
     42         Connection conn = null;
     43         PreparedStatement ps = null;
     44         try {
     45             String sql = "insert into picture(name,description,isvisited,album,source,user) values(?,?,?,?,?,?)";
     46             conn = ConnectDB.getConn();
     47             ps = (PreparedStatement) conn.prepareStatement(sql);
     48             ps.setString(1, name);
     49             ps.setString(2, describe);
     50             ps.setInt(3, isVisit);
     51             ps.setInt(4, album);
     52             ps.setString(5, images);
     53             ps.setString(6, user);
     54             if (ps.executeUpdate() > 0) {
     55                 oneAlbum.setCountPic((oneAlbum.getCountPic() + 1));
     56                 if (albumDao.update(oneAlbum)) {
     57                     System.out.println("插入成功");
     58                     return true;
     59                 }
     60 
     61             } else {
     62                 System.out.println("插入失败");
     63                 return false;
     64             }
     65         } catch (Exception e) {
     66             // TODO: handle exception
     67             e.printStackTrace();
     68         } finally {
     69             ConnectDB.closeConn(conn);
     70             if (ps != null) {
     71                 try {
     72                     ps.close();
     73                 } catch (Exception e2) {
     74                     // TODO: handle exception
     75                     e2.printStackTrace();
     76                 }
     77             }
     78         }
     79 
     80         return false;
     81     }
     82 
     83     @Override
     84     public boolean deleteOnePicture(String name,int albumId) {
     85         // TODO Auto-generated method stub
     86         Connection conn = null;
     87         PreparedStatement ps = null;
     88         try {
     89             String sql = "delete from picture where name = '" + name + "' and album = " +albumId;
     90             conn = ConnectDB.getConn();
     91             ps = (PreparedStatement) conn.prepareStatement(sql);
     92 
     93             Album oneAlbum = albumDao.getAlbum(album);
     94 
     95             if (ps.executeUpdate() > 0) {
     96 
     97                 oneAlbum.setCountPic((oneAlbum.getCountPic() - 1));
     98                 if (albumDao.update(oneAlbum)) {
     99                     System.out.println("删除成功");
    100                     return true;
    101                 } else {
    102                     System.out.println("删除失败");
    103                     return false;
    104                 }
    105 
    106             } else {
    107                 System.out.println("删除失败");
    108                 return false;
    109             }
    110         } catch (Exception e) {
    111             // TODO: handle exception
    112             e.printStackTrace();
    113         } finally {
    114             ConnectDB.closeConn(conn);
    115             if (ps != null) {
    116                 try {
    117                     ps.close();
    118                 } catch (Exception e2) {
    119                     // TODO: handle exception
    120                     e2.printStackTrace();
    121                 }
    122             }
    123         }
    124         return false;
    125 
    126     }
    127 
    128     @Override
    129     public boolean update(Picture picture) {
    130         // TODO Auto-generated method stub
    131         name = picture.getName();
    132         describe = picture.getDescribe();
    133         user = picture.getUser();
    134         if (picture.isVisited()) {
    135             isVisit = 1;
    136         } else {
    137             isVisit = 0;
    138         }
    139         album = picture.getAlbum();
    140         images = picture.getImages();
    141 
    142         Connection conn = null;
    143         PreparedStatement ps = null;
    144         try {
    145             String sql = "update picture set name = '" + name
    146                     + "',description = '" + describe + "',isvisited = " + isVisit
    147                     + ",album = " + album + ",source = '"+images +"',user = '"+user +"' where name = '"
    148                     +name +"'and album = "+album;
    149             conn = ConnectDB.getConn();// 获得连接
    150             ps = (PreparedStatement) conn.prepareStatement(sql);
    151             if (ps.executeUpdate() > 0) {
    152                 System.out.println("更新成功");
    153                 return true;
    154             } else {
    155                 System.out.println("更新失败");
    156                 return false;
    157             }
    158         } catch (Exception e) {
    159             // TODO: handle exception
    160             e.printStackTrace();
    161         } finally {
    162             ConnectDB.closeConn(conn);
    163             if (ps != null) {
    164                 try {
    165                     ps.close();
    166                 } catch (Exception e2) {
    167                     // TODO: handle exception
    168                     e2.printStackTrace();
    169                 }
    170             }
    171         }
    172         return false;
    173     }
    174 
    175     @Override
    176     public ArrayList<Picture> getPicturesOfOneAlbum(int albumNum) {
    177         // TODO Auto-generated method stub
    178         
    179         ArrayList<Picture> result = new ArrayList<Picture>();
    180         Connection conn = null;
    181         PreparedStatement ps = null;
    182         try {
    183             String sql = "select * from picture where album = "+albumNum;
    184             conn = ConnectDB.getConn();// 获得连接
    185             ps = (PreparedStatement) conn.prepareStatement(sql);
    186             ResultSet rs = ps.executeQuery();
    187             while (rs.next()) {
    188                 boolean visited;
    189                 name = rs.getString(1);
    190                 describe = rs.getString(2);
    191                 isVisit = rs.getInt(3);
    192                 album = rs.getInt(4);
    193                 images = rs.getString(5);
    194                 user = rs.getString(6);
    195                 if (isVisit == 1) {
    196                     visited = true;
    197                 } else {
    198                     visited = false;
    199                 }
    200                 Picture picture = new Picture(name, describe, visited, album,images, user);
    201                 result.add(picture);
    202             }
    203         } catch (Exception e) {
    204             // TODO: handle exception
    205             e.printStackTrace();
    206         } finally {
    207             ConnectDB.closeConn(conn);
    208             if (ps != null) {
    209                 try {
    210                     ps.close();
    211                 } catch (Exception e2) {
    212                     // TODO: handle exception
    213                     e2.printStackTrace();
    214                 }
    215             }
    216         }
    217 
    218         return result;
    219     }
    220 
    221     @Override
    222     public List<Picture> getAllPirctures() {
    223         // TODO Auto-generated method stub
    224         ArrayList<Picture> result = new ArrayList<Picture>();
    225         Connection conn = null;
    226         PreparedStatement ps = null;
    227         try {
    228             String sql = "select * from picture";
    229             conn = ConnectDB.getConn();// 获得连接
    230             ps = (PreparedStatement) conn.prepareStatement(sql);
    231             ResultSet rs = ps.executeQuery();
    232             while (rs.next()) {
    233                 boolean visited;
    234                 name = rs.getString(1);
    235                 describe = rs.getString(2);
    236                 isVisit = rs.getInt(3);
    237                 album = rs.getInt(4);
    238                 images = rs.getString(5);
    239                 user = rs.getString(6);
    240                 
    241                 if (isVisit == 1) {
    242                     visited = true;
    243                 } else {
    244                     visited = false;
    245                 }
    246                 Picture picture = new Picture(name, describe, visited, album,
    247                         images, user);
    248                 result.add(picture);
    249             }
    250         } catch (Exception e) {
    251             // TODO: handle exception
    252             e.printStackTrace();
    253         } finally {
    254             ConnectDB.closeConn(conn);
    255             if (ps != null) {
    256                 try {
    257                     ps.close();
    258                 } catch (Exception e2) {
    259                     // TODO: handle exception
    260                     e2.printStackTrace();
    261                 }
    262             }
    263         }
    264 
    265         return result;
    266     }
    267 
    268     @Override
    269     public boolean deleteByAlbum(int id) {
    270         // TODO Auto-generated method stub
    271         Connection conn = null;
    272         PreparedStatement ps = null;
    273         try {
    274             String sql = "delete from picture where album = " + id;
    275             conn = ConnectDB.getConn();
    276             ps = (PreparedStatement) conn.prepareStatement(sql);
    277             if (ps.executeUpdate() > 0) {
    278                 System.out.println("删除成功");
    279                 return true;
    280             } else {
    281                 System.out.println("删除失败");
    282                 return false;
    283             }
    284         } catch (Exception e) {
    285             // TODO: handle exception
    286             e.printStackTrace();
    287         } finally {
    288             ConnectDB.closeConn(conn);
    289             if (ps != null) {
    290                 try {
    291                     ps.close();
    292                 } catch (Exception e2) {
    293                     // TODO: handle exception
    294                     e2.printStackTrace();
    295                 }
    296             }
    297         }
    298         return false;
    299     }
    300 
    301     @Override
    302     public Picture getOnePicture(String name, int album) {
    303         // TODO Auto-generated method stub
    304         Connection conn = null;
    305         PreparedStatement ps = null;
    306         try {
    307             String sql = "select * from picture where name = '"+name+"'and album = "+album;
    308             conn = ConnectDB.getConn();// 获得连接
    309             ps = (PreparedStatement) conn.prepareStatement(sql);
    310             ResultSet rs = ps.executeQuery();
    311             while (rs.next()) {
    312                 boolean visited;
    313                 name = rs.getString(1);
    314                 describe = rs.getString(2);
    315                 isVisit = rs.getInt(3);
    316                 album = rs.getInt(4);
    317                 images = rs.getString(5);
    318                 user = rs.getString(6);
    319                 
    320                 if (isVisit == 1) {
    321                     visited = true;
    322                 } else {
    323                     visited = false;
    324                 }
    325                 Picture picture = new Picture(name, describe, visited, album,
    326                         images, user);
    327                 
    328                 return picture;
    329             }
    330         } catch (Exception e) {
    331             // TODO: handle exception
    332             e.printStackTrace();
    333         } finally {
    334             ConnectDB.closeConn(conn);
    335             if (ps != null) {
    336                 try {
    337                     ps.close();
    338                 } catch (Exception e2) {
    339                     // TODO: handle exception
    340                     e2.printStackTrace();
    341                 }
    342             }
    343         }
    344 
    345         return null;
    346     }
    347 @Override
    348     public List<Picture> getVisitedPictures() {
    349         // TODO Auto-generated method stub
    350         ArrayList<Picture> result = new ArrayList<Picture>();
    351         Connection conn = null;
    352         PreparedStatement ps = null;
    353         try {
    354             String sql = "select * from picture where isvisited = '1'";
    355             conn = ConnectDB.getConn();// 获得连接
    356             ps = (PreparedStatement) conn.prepareStatement(sql);
    357             ResultSet rs = ps.executeQuery();
    358             while (rs.next()) {
    359                 boolean visited;
    360                 name = rs.getString(1);
    361                 describe = rs.getString(2);
    362                 isVisit = rs.getInt(3);
    363                 album = rs.getInt(4);
    364                 images = rs.getString(5);
    365                 user = rs.getString(6);
    366                 
    367                 if (isVisit == 1) {
    368                     visited = true;
    369                 } else {
    370                     visited = false;
    371                 }
    372                 Picture picture = new Picture(name, describe, visited, album,
    373                         images, user);
    374                 result.add(picture);
    375             }
    376         } catch (Exception e) {
    377             // TODO: handle exception
    378             e.printStackTrace();
    379         } finally {
    380             ConnectDB.closeConn(conn);
    381             if (ps != null) {
    382                 try {
    383                     ps.close();
    384                 } catch (Exception e2) {
    385                     // TODO: handle exception
    386                     e2.printStackTrace();
    387                 }
    388             }
    389         }
    390 
    391         return result;
    392     }
    393 
    394     
    395 }
    PictureOperationDaoImpl.class

    implement文件需要注意在import包时候,要加sql.....开头的,不要加mysql的

    <V>

    5,这里写了一个简单的jsp(其实是小组另一位同学写的啦)

    好像是在菜鸟扒的吧。。哈哈哈,我也不懂

     1 <%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%>
     2 <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
     3 <%@ page language="java" contentType="text/html; charset=UTF-8"
     4     pageEncoding="UTF-8"%>
     5 <!DOCTYPE html >
     6 <html>
     7 <head>
     8 
     9 <meta charset="utf-8">
    10 <meta http-equiv="X-UA-Compatible" content="IE=edge">
    11 <meta name="viewport" content="width=device-width, initial-scale=1">
    12 <title>AddPic</title>
    13 
    14 <link
    15     href="http://cdn.static.runoob.com/libs/bootstrap/3.3.7/css/bootstrap.min.css"
    16     rel="stylesheet">
    17 <script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
    18 <script
    19     src="http://cdn.static.runoob.com/libs/jquery/2.1.1/jquery.min.js"></script>
    20 
    21 </head>
    22 <body>
    23 
    24 
    25     <div class="container-fluid">
    26 
    27         <div class="col-md-12 column">
    28             <form:form class="form-horizontal" commandName="picture"
    29                 action="${pageContext.request.contextPath}/save_Picture"
    30                 method="post" enctype="multipart/form-data">
    31                 <form class="form-horizontal">
    32 
    33 
    34                     <div class="form-group">
    35                         <label for="PictureName">PictureName</label>
    36                         <form:input class="form-control" id="name" path="name" />
    37                     </div>
    38                     <div class="form-group">
    39                         <label for="Picturedescribe">PicturDescribe</label>
    40                         <form:input class="form-control" id="describe" path="describe" />
    41                     </div>
    42 
    43                     <div class="form-group">
    44                         <label for="user">user</label>
    45                         <form:input class="form-control" id="user" path="user" />
    46                     </div>
    47 
    48                     <div class="form-group">
    49                         <label for="album">album</label>
    50                         <form:input class="form-control" id="album" path="album" />
    51                     </div>
    52 
    53                     <div class="form-group">
    54                         <label for="exampleInputFile">File input</label> <input
    55                             class="form-control" name="picture" type="file" /> <input
    56                             class="form-control" name="image" type="hidden" value="default" />
    57                     </div>
    58 
    59 
    60 
    61                     <div>
    62                         <input type="radio" name="isvisited" value="1">isVisited <input
    63                             type="radio" name="isvisited" value="0">unVisited
    64                     </div>
    65                     <button type="submit" class="btn btn-default">Submit</button>
    66                 </form>
    67             </form:form>
    68         </div>
    69 
    70     </div>
    71 
    72 
    73     <script src="https://code.jquery.com/jquery.js"></script>
    74     <script
    75         src="http://cdn.static.runoob.com/libs/bootstrap/3.3.7/js/bootstrap.min.js"></script>
    76 </body>
    77 </html>
    AddPicture.jsp

    其实这个就是利用jsp中的一个表单向后台传数据,注意的是,一定要把model类和jsp中对应起来,还有个各类的属性名

    我也不很懂这些代码,不多说,会说错

    因为这个jsp中实现了文件上传的功能,需要在springmvc-config中配置!!!!

    然后添加一个包:

    <!-- fileUpload Support -->  
        <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">  
            <property name="defaultEncoding" value="UTF-8"/>  
            <!--max size: 10M-->  
            <property name="maxUploadSize" value="10485760"/>  
        </bean>

    <C>

    6,后台controller类

    上面的代码其实都是大同小异的所以折叠起来,大家想看就看看吧,下面这一小段是最折磨我的。。。

    由于这个controller中有很多控制,我只把其中的一部分拿出来

    可以看到,我们利用HttpServletRequest 可以获取到后台的文件,然后转化成MultipartFile,然后将这个MultipartFile 存入本地(或者说服务器)

    @Controller
    public class PictureController {
    
        private PictureOperationDao PictureOp = new PictureOperationDaoImpl();
            @RequestMapping(value = "/save_Picture")
        public String SavePicture(HttpServletRequest request,
                @ModelAttribute Picture picture) {
            // 转型为MultipartHttpRequest(图片文件需要)
            MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
            // 获得第1张图片(根据前台的name名称得到上传的文件)
            MultipartFile image = multipartRequest.getFile("picture");
            // 图片名字
            
         //利用这一句代码,可以获取到服务器所在的那个文件,由于我用的就是本地的Tomcat,在打印出这个路径之后是这样子的:
         //F:/study/SomeCodes/JavaEEWorkplace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/2017End0629
    File imageFile = new File(request.getServletContext() .getRealPath("")); String filepath =
    imageFile.toString(); System.out.println(filepath); // 定义一个数组,用于保存可上传的文件类型 int visited = Integer.parseInt(request.getParameter("isvisited")); if (visited == 1) { picture.setVisit(true); } else { picture.setVisit(false); } ArrayList<String> fileTypes = new ArrayList<String>(); fileTypes.add("jpg"); fileTypes.add("jpeg"); fileTypes.add("png"); fileTypes.add("gif"); // 保存图片 String imgUrl = null; if (!(image.getOriginalFilename() == null || "".equals(image .getOriginalFilename()))) { File img = ImgManager.saveFile(image, fileTypes,filepath, "resource", "image");
           //下面这一句,也就是我说的相对路径、这个路径是不完整的,下面在显示照片时候会说明 imgUrl
    = "/resource/image/"+image.getOriginalFilename(); //imgUrl = img.toString(); } //System.out.println(imgUrl); // System.out.println(picture.getName()); PictureOperationDao pictureOperationDao = new PictureOperationDaoImpl(); imgUrl = imgUrl.replace('\', '/'); picture.setImages(imgUrl); if (pictureOperationDao.add(picture)) { System.out.println("图片添加成功"); return "redirect:/list_Album"; } System.out.println("图片添加失败"); return "redirect:/list_Album"; } }

    7,在显示照片时候:

    同样的,我们首先通过jdbc获取到相对路径,然后通过遍历list表的方式,model中的路径加以修改:

    首先获取到服务器地址,然后将这个地址与相对地址相加,就可以得到实际的地址~~~~

    @RequestMapping(value = "/show_Pic/{id}")
        public String ShowPicture(HttpServletRequest request,Model model, @PathVariable int id,
                HttpSession session) {
            File imageFile = new File(request.getServletContext()
                    .getRealPath(""));
            String tomcatPath = imageFile.toString();
            ArrayList<Picture> Pictures = PictureOp.getPicturesOfOneAlbum(id);
            for (int i = 0; i < Pictures.size(); i++) {
                String iPath = Pictures.get(i).getImages();
                Pictures.get(i).setImages(tomcatPath+iPath);
            }
            model.addAttribute("Pictured", Pictures);
            session.setAttribute("SessionAlbumID", id);
            return "PictureList";
        }

     最后通过jsp的相关代码可以实现展示~~~~

    就这样吧

  • 相关阅读:
    使用phpize安装php模块
    centos如何卸载软件
    修改centos环境变量
    linux系统安装php扩展
    php单入口session处理
    session阻塞机制,解决方法
    uploadify插件的使用
    php图片上传代码
    validate插件的使用
    datepicker使用
  • 原文地址:https://www.cnblogs.com/icyhusky/p/7095603.html
Copyright © 2020-2023  润新知