千里之行日常问题记录(2017.7.10-)

问题目录

  1. 在一个使用https的页面中如何发起http请求(未解决)
  2. Java获取用户真实IP(引用)
  3. List循环删除中出现的问题
  4. eclipse中导入maven项目:org.apache.maven.archiver.MavenArchiver

 

 

2017.7.10

问题1:在一个使用https的页面中如何发起http请求

浏览器会因为安全问题要求使用https的页面中的所有请求都是https,对http的请求禁止。

尝试方法:ajax, iframe; window.open;

解决:未解决

建议:服务器内部转发请求

 

问题2:Java获取用户真实IP

因为代理及其它原因获取不到用户的真实IP,

解决:

  public static String getIpAddress(HttpServletRequest request) { 
    String ip = request.getHeader("x-forwarded-for"); 
    if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { 
      ip = request.getHeader("Proxy-Client-IP"); 
    } 
    if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { 
      ip = request.getHeader("WL-Proxy-Client-IP"); 
    } 
    if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { 
      ip = request.getHeader("HTTP_CLIENT_IP"); 
    } 
    if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { 
      ip = request.getHeader("HTTP_X_FORWARDED_FOR"); 
    } 
    if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { 
      ip = request.getRemoteAddr(); 
    } 
    return ip; 
  } 
   
} 

转自http://www.jb51.net/article/67050.htm

 

2018.09.07

问题3:List循环删除中出现的问题

问题详述:List中存放20个对象,使用循环删除第10个到15个对象,实践后发现存在对象未被删除

示例:

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

public class ListRemove {

	public static void main(String[] args) {
		ArrayList list = new ArrayList();
		for (int i = 0; i < 20; i++) {
			list.add("数字"+i);
		}

		for (int j = 11; j < 16; j++) {
			System.out.println("删除"+j);
			list.remove(j);
		}
		
		Iterator iterator = list.iterator();
		while(iterator.hasNext()){
			System.out.println(iterator.next());
		}
	}	
}

输出结果:

删除11
删除12
删除13
删除14
删除15
数字0
数字1
数字2
数字3
数字4
数字5
数字6
数字7
数字8
数字9
数字10
数字12
数字14
数字16
数字18

原因:删除元素涉及到数组元素的移动。执行删除循环时,删除当前对象时,List中的下一个对象会移动到当前删除对象的位置上,下次循环则无法删除移动的对象。

解决:使用倒序遍历再删除对象元素

 

问题4:eclipse中导入maven项目:org.apache.maven.archiver.MavenArchiver

解决:

org.codehaus.plexus.archiver.jar.Manifest.write(java.io.PrintWriter)

解决方法为:更新eclipse中的maven插件

1.help ->  Install New Software -> add ->https://otto.takari.io/content/sites/m2e.extras/m2eclipse-mavenarchiver/0.17.2/N/LATEST

2.一直next confirm 安装更新 提示重启eclipse 然后再右键项目maven update project

标记:

附解决方案网址

1.http://stackoverflow.com/questions/37555557/m2e-error-in-mavenarchiver-getmanifest

2.https://github.com/tesla/m2eclipse-mavenarchiver/issues/8

转自:https://blog.csdn.net/echo_oy/article/details/53057856

转载于:https://my.oschina.net/u/2613520/blog/1305773

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值