2013年工作中遇到的20个问题:41-60


41.API的稳定性

public static List<Integer> getStatusCode(String role);
被多个方法调用。

其中一个方法是 xxxFunction(){
getStatusCode(“role”);

现在需要给getStatusCode增加一个参数,aa;
参数的值aa从session中取得,
aa= ActionContextUtils.getFromSession("aa");

现在遇到一个问题,如果给getStatusCode增加一个参数,所有调用getStatusCode的方法都需要获得aa的值,传入参数。

最终方案是:在getStatusCode方法内部,使用静态方法ActionContextUtils.getFromSession("aa")获得aa的值,所有接口都不需要改变。

42.函数单入口单出口的选择。

//单入口单出口
public List getList(boolean flag){
  List list =null;
  try{
     list = ...
  }catch(){
    
  }
  return list;
}

//单入口多出口--防止函数if语句嵌套过深
public List getList(User user){
 
  if(user == null){
    return null;
  }
 
  if(user.getName() == null){
    return null;
  }
 
  list = ..;
 
  return list;


43. ActionContext.getContext() 为null。
没有经过Struts2的Controller,接口响应直接被FlexController拦截了。

44. null对象可以强制转换为任意对象。
认为此不合理的原因是:经常发生NullPointerException.

String str = (String)null;√
str.charAt(0); ×

 

45.远程调试代码进不去。

代码不一致导致。

 

46.Tomcat下同一个工程启动了2次。
除了ROOT文件夹,还有个 到ROOT的连接。(Linux系统)

 

47.1台电脑不能访问另外一台电脑了。
IP自动分配的,IP到期之后,重新分配了另外一个IP。

 

48.Apache POI导出Excel时报错。
java.lang.AbstractMethodError: org.apache.poi.xssf.usermodel.XSSFRow.setRowS

poi-ooxml-3.7.jar
poi-ooxml-3.8-20120326.jar

2个jar包重复了,使用了第1个包。

 

49.Maven项目发布项目到Tomcat,项目的jar包没有发布到WEB/INF目录下。

 项目属性--Deployment Assembly-Add,添加Java Build Path Entries,
 选择一个合适的。

50.32位与64位的选择。
   JDK,Eclipse要么都使用64位的,要么都使用32位的。
  
   Tomcat可以用32位或64位。

 51. SVN由1.6升级到1.8之后,不能更新和提交了。
 
 项目--右键--Team--Upgrade。
  
 52.主机名和IP映射。
   通过修改hosts文件实现。
   hosts文件的具体位置,C:\Windows\System32\drivers\etc\hosts
   127.0.0.1       fansunion.cn
  
   重新打开浏览器即可,此时访问fansunion.cn仍然是访问本机IP,但此时host就是fansunion.cn了。
  
 53.域名跳转
   项目要修改URL的目录,原来的请求要跳转到新的目录下。
 public class UrlForwardFilter implements Filter {
    public void doFilter(ServletRequest req, ServletResponse resp,
            FilterChain filterChain) throws IOException, ServletException {      
        String uri = request.getRequestURL().toString();     
        if (uri.contains('aa')) {
            writer
                    .print("<script type='text/javascript'>window.location.href='aa';</script>");
            return;
        } else if (uri.contains('bb') {
            writer
                    .print("<script type='text/javascript'>window.location.href='bb';</script>");
            return;
        }
        filterChain.doFilter(req, response);
    }
}
 
   为了测试URL路径跳转是否成功,需要修改hosts文件,来模拟产生域名。
 
 54.Eclipse生成JavaDoc文档,防止产生乱码。
 在Eclipse里 点击工程右键 Export-->Export-->java--》 JavaDoc,在向导的最后一页的Extra JavaDoc Options 里,
 填上参数即可。比如项目采用的是UTF-8的编码就填:-encoding UTF-8 -charset UTF-8。

 
 55.Eclipse项目的2个常见文件。
   在Eclipse项目的根目录下,通常都有.classpath和.project2个文件。
   这2个文件实际上都是文本文件,可以使用记事本类软件打开,通过阅读配置可以了解更多的信息,
   知道Eclipse项目是怎么组织和运作的。
 
 <?xml version="1.0" encoding="UTF-8"?>
<classpath>
 <classpathentry kind="src" path="src"/>
 <classpathentry kind="src" path="test"/>
</classpath>

<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
 <name>FansUnion</name>
 <comment></comment>
</projectDescription> 

 56.Spring @ResponseBody 返回乱码。
 //1个同事和1个网友都遇到了这个问题
 @ResponseBody 
public String getForm(String pid) { 
    return "你好"; 

spring MVC有一系列HttpMessageConverter去处理用@ResponseBody注解的返回值,如返回list则使用MappingJacksonHttpMessageConverter,
返回string,则使用StringHttpMessageConverter,这个convert使用的是字符集是iso-8859-1,而且是final的。

1.你自己重写一个StringHttpMessageConverter,使用你想要的字符集,并且使这个属性可注入
(参考http://blog.csdn.net/jpr1990/article/details/7710110
<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"> 
        <property name="messageConverters"> 
            <util:list> 
                <bean class="com.pcds.ecomm.website.syscustomization.ConfigurableStringHttpMessageConverter"> 
                    <constructor-arg value="UTF-8"/> 
                </bean> 
                <bean class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter" /> 
            </util:list> 
        </property> 
    </bean> 
2.使用Response.getOutputStream()手动发送字符串。
需要首先设置编码,以防止乱码。

 57.Java邮件发送。
 
 几种实现方式:
 
 1.Spring Mail。
 
 2.ApacheCommonsMail。
 
 3.Jodd Mail。
 
 4.Java Mail。
 
 58.代码仓库。
 把大学和工作写的代码,进行了整理。经常备份,然后上传到网盘备份。还是有点麻烦。
 现在,使用SVNChina的付费服务,99元/1G空间/1年。
 
 59.Maven等工具的优缺点问题。
 工作中使用了Maven,带来了方便。
 好处:自动下载jar包,部署方便。
 坏处:对网络的依赖大,需要学习新工具的使用,不同项目共用同一个Maven本地仓库,
 一旦删除Maven仓库,所有项目都受到影响。
 
 引入新工具解决问题的同时,工具本身也带来了诸多问题,这是一个值得深思的问题。
 
 60.Java开源代码。
 Spring,Struts,Hibernate,OpenJDK,Jodd,Mybatis等很多Java开源项目,都进行了 浏览/研究/学习,
 感觉还是挺有学习和研究价值的。这些项目的代码中有很多注释和文档,便于研究。
 同时,我也发现,这些Java项目有很多思想和方法还是比较类似的。
 学习时间越长,对思想和方法的研究就越来越重要。

相关阅读

工作问题 http://blog.csdn.net/FansUnion/article/category/1334371


 
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值