小编Roc*_* Hu的帖子

System.setProperty和System.getProperty

我不知道什么时候我用来System.setProperty定义一个存储数据的参数?

如果说我System.setProperty在一个java文件中使用过,那么我可以在任何地方使用这些属性吗?但事实并非如此,我不能在任何地方使用它,只能在我调用的同一个java文件中使用它setProperty.

我真的不知道为什么以及这种方法的功能是什么.

java

26
推荐指数
1
解决办法
7万
查看次数

获取其他TimeZone的日期字符串的时间,结果是错误的

我只有一个日期字符串,我希望通过它在其他TimeZone中查看时间.所以我这样做了:

    String dateStr = "2014-05-15 16:14:58 PM";
    SimpleDateFormat sdf =  new SimpleDateFormat("yyyy-MM-dd HH:mm:ss a");
    sdf.setTimeZone(TimeZone.getTimeZone("America/Denver"));
    Date date = sdf.parse(dateStr);
    System.out.println(date);

    SimpleDateFormat sdf1 =  new SimpleDateFormat("yyyy-MM-dd HH:mm:ss a");
    System.out.println(sdf1.format(date));
Run Code Online (Sandbox Code Playgroud)

这是我电脑中的当前TimeZone:

在此输入图像描述

代码运行的结果是:

 Fri May 16 06:14:58 CST 2014

 2014-05-16 06:14:58 AM
Run Code Online (Sandbox Code Playgroud)

结果是错误的,我通过在计算机中将TimeZone更改为"America/Denver"得到了正确的结果,我看到了:

America/Denver —— 2014-05-15 02:14:58 AM
Run Code Online (Sandbox Code Playgroud)

我不知道为什么喜欢这样?

但如果我有一个日期而不是日期字符串,我这样做:

public static String getFormatedDateString(String _timeZone) {
    TimeZone timeZone = null;
    if (StringUtils.isEmpty(_timeZone)) {
        timeZone = TimeZone.getDefault();
    } else {
        timeZone = TimeZone.getTimeZone(_timeZone);
    }

    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss a");
    sdf.setTimeZone(timeZone);
    // TimeZone.setDefault(timeZone); …
Run Code Online (Sandbox Code Playgroud)

java timezone datetime date

5
推荐指数
1
解决办法
730
查看次数

为什么我们应该在JDBC中关闭连接?如果我们不这样做,会发生什么

在java中与数据库通信,我们经常按照以下步骤操作:

  1. 加载驱动程序
  2. 得到一个连接
  3. 创建一个Statement或 PreparedStatement
  4. 得到了 ResultSet
  5. 关闭连接

我很困惑,我们应该关闭连接,所有人说创建连接是昂贵的,所以为什么我们不能这样做:

static
    {
        try
        {
            connection = DriverManager.getConnection(connectorURL,
                    user, password);
        } catch (SQLException e)
        {
            e.printStackTrace();
        }
    }
Run Code Online (Sandbox Code Playgroud)

我们只是创建一个单独的连接,并在任何地方使用它.不是吗?如果我像这样使用它会发生什么?

如果我不关闭连接,会发生什么?

另外,我们将使用连接池,它将在池中创建一些连接,并且我们从池中获取连接,池中的连接也不关闭,为什么如果我们不使用池,我们需要关注如果我们不使用步骤并关闭连接?

它太混乱了,我不知道原理是什么.请帮我.谢谢.

connection database-connection connection-pooling jdbc

5
推荐指数
1
解决办法
6262
查看次数

Spring MVC:处理Ajax请求和正常请求异常的最佳方法是什么?

我想在我的项目中定义一个常见的异常管理器,所以我使用@ControllerAdvice来做,代码片段如下:

@ExceptionHandler(Exception.class)
public ModelAndView handleAllException(HttpServletRequest request, Exception ex) throws Exception
{
    LOGGER.error(ex.getMessage());

    ModelAndView mav = new ModelAndView();
    mav.addObject("exception", ex);
    mav.addObject("url", request.getRequestURL());
    mav.setViewName(ViewConstants.INTERNAL_ERROR_VIEW);
    return mav;
}
Run Code Online (Sandbox Code Playgroud)

它将返回一个常见的错误页面.这对于正常的请求异常非常有用.但如果这是一个Ajax请求,结果是如此丑陋.所以我添加代码来判断它.添加的代码如下:

if ("XMLHttpRequest".equals(request.getHeader("X-Requested-With"))) {
        // return HTTP Status code and response message
    } else {
        // return error page name
    }
Run Code Online (Sandbox Code Playgroud)

我不认为这是最好的方式,任何人都有好的意见?

java ajax spring spring-mvc

5
推荐指数
1
解决办法
2467
查看次数

MyBatis - 如何在 <foreach> 下编写 <if> 语句?

我循环一个集合,只有当集合的项不为空时,才会插入到数据库中,片段代码如下:

<foreach collection="ids" item="id" separator=",">
    <if test="id!= null">
       (#{id})
    </if>
</foreach>
Run Code Online (Sandbox Code Playgroud)

语句运行失败,它说“找不到参数‘id’。”,我更改了语句:

<if test="#{id}!= null">
Run Code Online (Sandbox Code Playgroud)

它也失败了,那么我该如何写声明呢?

java mybatis spring-mybatis

5
推荐指数
1
解决办法
2889
查看次数

为什么在Spring中使用OncePerRequestFilter?

正如文档所说:

过滤器基类,旨在保证在任何 servlet 容器上每个请求分派单次执行。

有一个问题 什么是OncePerRequestFilter? 我仍然不知道为什么我们要使用它。

它说“在任何 servlet 容器上”。这意味着有servlet容器会多次执行过滤器吗?

java spring servlets filter

5
推荐指数
2
解决办法
1万
查看次数

如何在Spring MVC拦截器中转发

我定义了这样的视图解析器:

<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <property name="prefix">
        <value>/WEB-INF/views/jsp/</value>
    </property>
    <property name="suffix">
        <value>.jsp</value>
    </property>
</bean>
Run Code Online (Sandbox Code Playgroud)

我有一个拦截器,当一些条件没有通过时,我想转发到一个jsp页面,我实现如下:

RequestDispatcher requestDispatcher = request.getRequestDispatcher("/WEB-INF/views/jsp/info.jsp");
requestDispatcher.forward(request, response);
Run Code Online (Sandbox Code Playgroud)

上面,我要转发的页面是硬代码,我不想这样做,有什么方法可以从视图解析器中获取页面吗?

spring spring-mvc

3
推荐指数
1
解决办法
8571
查看次数

Windows中的JDK7问题

我在windows中安装了JDK7.我没有做更多的事情,不要混淆路径和类路径,这是我的路径环境:

在此输入图像描述

可以找到我没有包含jdk安装目录.但是当我在命令行中运行"java -version"命令时,我看到了:

在此输入图像描述

但是当我运行"javac -version"时,它无法正常工作,"javac"命令未定义.如果我没有包含我的jdk安装目录,java和javac命令必须都无法正常工作,但是在jdk7中,"java"命令可以正常工作,"javac"命令没有用,为了解决了问题,我可以在路径中包含jdk安装目录,但我想知道导致问题的原因是什么,jdk7和pre版本之间有区别吗?

java java-7

-1
推荐指数
1
解决办法
116
查看次数