简单商城ssm开发过程中遇到的问题

遇见的问题:

1、spring mvc 拦截,不能全部拦截,若如此做,将不能直接访问静态资源(html\js\css).

   

2、form 表单里的任意button将会直接提交表单。但是给button加上type="button"类型后,就不会提交form表单了。

   

3、关于jstl的引入 <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> 正确

<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %>

   

4、@SessionAttribute 和 modelAttribute 有些许小冲突。使用modelAttribute接受参数,而且还需将方法里某个数据放入session。此时就需要提前访问一次该方法。 或者不适用modelAttribute接受参数。

   

5、关于springmvc的session ,springmvc 提供的方法,通过注解 @sessionAttribute()配合model\map去配置session,此种方法配置的session,前端通过sessionScope,后台通过request.getSession()都可以获取。但是通过request.getSession().removeAttribute()的删除,应该是删除的Tomcat容器里的session。此时删除后,前端依然可以访问。必须要用spring容器里提供的 sessionStatus.setComplete()清空。清空后,前段页面已不能访问session(估计前端页面访问的都是spring容器),但是tomcat容器里面的Session并没有删除。亦或是与我猜想不一致,session是需要刷新的

   

6、cookie :

        Cookie hit = new Cookie("hitCounter",hitCounter.toString());

        Cookie cookie = new Cookie("data",URLEncoding.encoding(data,"utf-8"));   

   

//如果设置了"HttpOnly"属性,那么通过程序(JS脚本、Applet等)将无法访问该Cookie
hit.setHttpOnly(true);

   

//       hit.setMaxAge(60*60);//设置生存期为1小时
//     hit.setDomain("www.zifansky.cn");//子域,在这个子域下才可以访问该Cookie
//       hit.setPath("/hello");//在这个路径下面的页面才可以访问该Cookie
//       hit.setSecure(true);//如果设置了Secure,则只有当使用https协议连接时cookie才可以被页面访问
      
       response.addCookie(hit);返回给页面

   

前段获取cookie:

1\cookie.data.value

   

7、若是使用maven开发,有些jar会需要加入到tomcat容器下,例如 jstl\gson

   

8、springmvc 和 ajax的交互,回传data

     /* 方式一  通过servlet中的response返回数据

         * @throws IOException

         */

        @RequestMapping(value="/ajax.do")

        public void Ajax(HttpServletResponse resp) throws IOException{

            resp.getWriter().write("hello  ajax");

        }

 

        //方式二  通过流的形式

        @RequestMapping(value="/ajax1.do")

        public void Ajax1(Writer out) throws IOException{

            out.write("hello ajax1");

        }

 

        //方三  通过注解的形式

        @RequestMapping(value="/ajax2.do")

        @ResponseBody  //返回值就是响应的内容

        public String Ajax2() throws IOException{

            return "hello  ajax2";

        }

   

9、form表单中是一个完整的bean(user),但是bean中包含文件。 此时form表单的属性除了enctype="multipart/form-data" ,还需将<input type="file" name="pic"/> 中的name不能与Userbean 的属性相同。 后台使用user和 @requestParam("pic") multipartFile file 配合接收。

   

10、项目中图片上传:一般来说,只有上传到tomcat容器下才能访问,但并没有持久化,并不在项目中。

可以通过在tomcat/conf/servlet.xml中<host></host>中加入:

<!-- path是虚拟路径,docBase为真实路径 -->

<Context path="/commodity" docBase="D:\img" crossContext="true" reloadable="false" debug="0"/>

   

11、produces="application/json; charset=utf-8",此配置放在@RequestMapping(value="",produces=""),可以解决ajax返回参数乱码。

   

12、window.onload = function(){} 页面完全加载完成后执行。

$(function(){}) / $(document).ready(function(){}) dom加载完毕后执行。

   

posted @ 2020-10-28 14:25  黑质白章  阅读(564)  评论(0编辑  收藏  举报