发表于: 2017-08-05 23:08:43
2 1019
今天完成的:
学东西
收获:
1.httpClient的使用,org.apache.http.client是阿帕奇提供的对http编程的工具。可用来模拟浏览器,实现爬虫。
至于为什么使用httpClient,好像springMVC的responseEntry也能达到一样的效果。这点还在考虑
@SuppressWarnings("Duplicates")
@Test
public void doGetTest(/*String urlDemo, Map<String, String> paramDemo*/) {
String url="https://www.baidu.com/";
Map<String, String> param=new HashMap<String, String>();
param.put("test1","hello");
param.put("test2","httpclient");
// 创建Httpclient对象
CloseableHttpClient httpclient = HttpClients.createDefault();
String resultString = "";
CloseableHttpResponse response = null;
try {
// 创建uri
URIBuilder builder = new URIBuilder(url);
//将参数拼接到uri里面
if (param != null) {
for (String key : param.keySet()) {
builder.addParameter(key, param.get(key));
}
}
URI uri = builder.build();
System.out.println("====================================>>"+uri);
// 创建http GET请求
HttpGet httpGet = new HttpGet(uri);
// 执行请求
response = httpclient.execute(httpGet);
// 判断返回状态是否为200
if (response.getStatusLine().getStatusCode() == 200) {
resultString = EntityUtils.toString(response.getEntity(), "UTF-8");
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (response != null) {
response.close();
}
httpclient.close();
} catch (IOException e) {
e.printStackTrace();
}
}
//return resultString;
}
2.理解了一些前端控件在后端怎么处理
比如easyUI的treeNode控件,应该类似解析xml一样,创建一个节点实体。节点的父子关系应该在
DB中查出来。先查出来数据库中(分类)的实体对象,然后将其转为节点对象,返回给前端。
对于treeNode遍历,和查询目录下文件,解析xml一样,要用到递归,查到最后的子节点。
然后json中的数组一般映射为List
3.关于ajax
可以使用jsonp获得数据。做网站不推荐大面积使用ajax。
为了seo,更新频繁的网站会更频繁地被搜索引擎抓取,权重提高。如果全部使用ajax,网页不发生变化,搜索引擎的爬虫抓取不到js。
4.@value()注解属于spring容器
我以为属于springMVC的,在springMVC.xml里注册了属性文件,结果获取不到。改成在spring里注册就好了。
正常web.xml从WEB-INF下读取配置文件。
5.关于web.xml的运行流程
比如
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring/applicationContext-*.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
1.启动WEB项目的时候,容器首先会去它的配置文件web.xml读取两个节点:
<listener></listener>和<context-param></context-param>。
2.紧接着,容器创建一个ServletContext(application),这个WEB项目所有部分都将共享这个上下文。
3.容器以<context-param></context-param>的name作为键,value作为值,将其转化为键值对,存入ServletContext。
4.容器创建<listener></listener>中的类实例,初始化配置文件
5.接着,容器会读取<filter></filter>,根据指定的类路径来实例化过滤器。
还有web.xml的加载顺序如下:
<!--总的来说,web.xml的加载顺序是: <context-param>-> <listener> -> <filter> -> <servlet>。其中,如果web.xml中出现了相同的元素,则按照在配置文件中出现的先后顺序来加载。-->
遇到的问题:
暂无
明天的计划:
写写复盘的接口文档
评论