学习内容:将服务器展示的内容及标签写入文件中,响应给浏览器不是读取文件,而是读取文件中的字符串
在浏览器的展示层解析服务器响应回来的内容及标签
体会:解析过程中都是不停的拼串与逻辑,到后面就有点晕了,敲代码时还出现挺多Bug,今天的内容听得有点累0.0。。。。
总结:String这块不扎实
代码:
//解析信息并展示
public void responseExhibition(String responseContent){
//创建两个新的变量 用于存储新一次的请求和参数
String content = null;
HashMap
//解析
标签 String的不可变特性
responseContent = responseContent.replace(“
“,”\r\n”);
while(true){
//解析其他的标签
int lessThanIndex = responseContent.indexOf(“<”);
int greaterThenIndex = responseContent.indexOf(“>”);
//如果两个符号成对 证明存在一个有意义的标签
if(lessThanIndex!=-1 && greaterThenIndex!=-1 && lessThanIndex
System.out.println(responseContent.substring(0,lessThanIndex));
//分析标签是什么类型 做相应的处理
String tag = responseContent.substring(lessThanIndex,greaterThenIndex+1);
//在文件中通过这个形式拆分
if(tag.contains(“input”)){
String value = input.nextLine();
if(paramsMap==null){
paramsMap = new HashMap<>();
}
//将一个大的标记按照空格拆分
String[] keyAndValues = tag.split(“ “);
//循环每一组键值对
for(String keyAndValue : keyAndValues){
//如果当前的一组中包含有等号 证明是正常的参数
if(keyAndValue.contains(“=”)){
//按照等号拆分
String[] KV = keyAndValue.split(“=”);
if(“name”.equals(KV[0])){
paramsMap.put(KV[1].substring(1,KV[1].length()-1),value);
}
}
}
//在文件中通过这个形式拆分