发表于: 2017-08-04 20:35:21

2 979


今天完成的:

看了DB设计,只留一张标签表,公司和职位与改表关联,挺好的。

看了一部分接口。

收获:

1.JAVA中有三种WebService规范,分别是JAX-WS(JAX-RPC)、JAX-RS、JAXM&SAAJ。

WebService一般分为两种: 

    REST式WebService,基于HTTP协议; 

    RPC式WebService,基于SOAP协议,不过SOAP也是基于HTTP传输的。

SpringMVC里的restful是REST式的,但并没有严格遵守规范。

可参考:http://www.cnblogs.com/coprince/p/5732822.html

https://wenku.baidu.com/view/4ef16c0eed630b1c59eeb53b.html

2.dispatcherServlet的伪静态化映射

java静态化页面:常用的有三种

①、URLRewrite实现URL地址伪静态化。

②、JSPWrite重写实现JSP页面静态化。

③、采用过滤器Filter实现JSP页面静态化。

<servlet-mapping>
   <servlet-name>taotao-portal</servlet-name>
   <!--伪静态化,表现为静态页面html,实际上仍是动态处理。目的是针对seo搜索引擎优化。
   搜索引擎爬取数据时更喜欢简单易读的页面,如静态页面。搜索时权重可能会提高-->
   <url-pattern>*.html</url-pattern>
</servlet-mapping>

3.js跨域调用

ip相同,端口号不同也算跨域。js为了安全性禁止跨域访问数据,可以使用jsonp用js将数据包装起来传输。

、在js中不能跨域请求数据,js可以跨域请求js片段。但不能跨域请求数据。

、可以把数据包装成js片段。可以把数据使用js方法来包装,形成一条方法的调用语句。

、可以使用ajax请求js片段,当js判断到达浏览器会被立即执行。

、在浏览器端,先创建好回调方法,在回调方法中通过参数可以获得请求的数据。


4.json节点对象

//使用jackson包下的@jsonProperty注解将该属性的名称序列化为另外一个名称。
//反序列化的时候也有用,里面写上返回的json串对应的名字
@JsonProperty("u")
private String url;

一些层级复杂的如商品类目,有多重嵌套的父子关系。可以根据数据库关系映射为json节点对象,再转为json给前端。

5.组装json传给前端jsonp解析

@Controller
@RequestMapping("/item/cat")
public class ItemCatController {
@Autowired
   private ItemCatService itemCatService;
   //produce后面可以拼接参数,比如编码设置为application/json;charset="utf-8"
   @RequestMapping(value = "/list", produces = MediaType.APPLICATION_JSON_VALUE + ";charset=utf-8")
@ResponseBody
   public String getItemCatList(String callback) {
/**
       *@Author hfismyangel@163.com
       *@Description:两个作用:
        * 1.分发参数
        * 2.将json组装为js函数以支持jsonp。在前端js中通过jsonp解析以解决js跨域问题
       *@Date: 21:37 2017/8/4
          * @param callback
       */
       ItemCatResult result = itemCatService.getItemCatList();
       /*org.apache.commons.lang3包下的StringUtils方法的操作对象是String,是JDK提供的String类型操作方法的补充
           isBlank可验证三种不合法字符串:null,"","   "。
        */
       if (StringUtils.isBlank(callback)) {
//需要把result转换成字符串
           String json = JsonUtils.objectToJson(result);
           return json;
       }
//如果字符串不为空,需要支持jsonp调用
       //需要把result转换成字符串
       String json = JsonUtils.objectToJson(result);
       return callback + "(" + json + ");";

       /* spring4.1以上支持了jsonp,使用MappingJacksonValue。


       MappingJacksonValue mappingJacksonValue = new MappingJacksonValue(result);
     mappingJacksonValue.setJsonpFunction(callback);
     return mappingJacksonValue;
        */
   }
}

遇到的问题:

暂无

明天的计划:

写接口


返回列表 返回列表
评论

    分享到