TOMCAT服务器重启造成图片资源自动删除

来源:互联网 发布:中国电信测速软件 编辑:程序博客网 时间:2024/05/18 00:26

最近在做了一个简单的Spring+springMVC+Mybatis 的案例,在该过程中遇到几个问题,现在占时以之记录。有些问题还没得到解决。

1)分页传参问题
jsp页面向controller传递参数的时候,实际中很有可能是传递多个参数,且各个参数来自不同的标签位置,如可能来自标签 也有可能来自 标签,那么如何实现这些参数的传递呢?
例如:标签中可以放置的产品的总分类、上一页、下一页等标签, 中可以设置每页你需要显示分页的数目。
那么如何获得以上的数据,且要保证用户在点击上一页或下一页的不能丢失总分类的数据?

2)向jsp页面传递List集合问题
在实际情况中,有可能对LIst集合进行了多重封装:例如,可能在订单orders中封装一个订单项orderitem,在订单项orderitem中又封装一个书book项,等等。那么如何使用el表达式在jsp页面取值的时候才能不出错呢?它传递值的时候又遵循哪些规则呢?

3)图片上传的问题
图片上传程序写完之后,发现上传到 Tomcat 服务器中的图片,在每次Tomcat重启的情况下都会被自动删除。上网查询之后,解决方法如下:
a.修改web.xml文件,内容如下:

 <servlet>        <servlet-name>default</servlet-name>        <servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class>        <init-param>            <param-name>debug</param-name>            <param-value>0</param-value>        </init-param>         <init-param>        <!-- 图片要想上传成功,需要添加readonly选项,它的值设置成为:false -->            <param-name>readonly</param-name>            <param-value>false</param-value>        </init-param>        <init-param>            <param-name>listings</param-name>           <!-- param-value原来的值是:false 这里将它改为:true-->            <param-value>true</param-value>        </init-param>        <load-on-startup>1</load-on-startup>    </servlet>

b.修改service.xml文件,内容如下:

 <Host appBase="webapps" autoDeploy="true" name="localhost" unpackWARs="true">        <!-- SingleSignOn valve, share authentication between web applications             Documentation at: /docs/config/valve.html -->        <!--        <Valve className="org.apache.catalina.authenticator.SingleSignOn" />        -->        <!-- Access log processes all example.             Documentation at: /docs/config/valve.html             Note: The pattern used is equivalent to using pattern="common" -->             <!-- 修改部分:将以下一行代码注释掉 -->       <!--  <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" pattern="%h %l %u %t &quot;%r&quot; %s %b" prefix="localhost_access_log" suffix=".txt"/> -->

其实就是给工程配置虚拟路径,这样tomcat在启动的时候直接找到你的工程了,你上传的图片就不会跑到/tomcat/webapps/目录,而是直接到了你的工程里,不管你怎样重启项目,或者清理缓存,上传的文件依然存在!

4)数据库的级联操作问题
虽然就是简单的几个表,但是都是有外键约束的,而且当初在建表的时候并没有对外键使用:on delete cascade/on update cascade 。所以在mybatis对表进行删除和更新的时候总是无法成功!虽然有mapper.xml 配置文件,可是一个方法中却只能写一个SQL语句呀!这就比较郁闷了。在网上看了帖子都没找到符合要求的SQL,于是索性将外键删除,再重新将on delete cascade/on update cascade 直接加上去,果然级联删除与跟新就没那么麻烦了。所以,以后在建表的时候,最好仔细考虑一下是否有需要添加on delete cascade/on update cascade !

1 0
原创粉丝点击