我不知道什么时候我用来System.setProperty定义一个存储数据的参数?
如果说我System.setProperty在一个java文件中使用过,那么我可以在任何地方使用这些属性吗?但事实并非如此,我不能在任何地方使用它,只能在我调用的同一个java文件中使用它setProperty.
我真的不知道为什么以及这种方法的功能是什么.
我只有一个日期字符串,我希望通过它在其他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中与数据库通信,我们经常按照以下步骤操作:
PreparedStatementResultSet我很困惑,我们应该关闭连接,所有人说创建连接是昂贵的,所以为什么我们不能这样做:
static
{
try
{
connection = DriverManager.getConnection(connectorURL,
user, password);
} catch (SQLException e)
{
e.printStackTrace();
}
}
Run Code Online (Sandbox Code Playgroud)
我们只是创建一个单独的连接,并在任何地方使用它.不是吗?如果我像这样使用它会发生什么?
如果我不关闭连接,会发生什么?
另外,我们将使用连接池,它将在池中创建一些连接,并且我们从池中获取连接,池中的连接也不关闭,为什么如果我们不使用池,我们需要关注如果我们不使用步骤并关闭连接?
它太混乱了,我不知道原理是什么.请帮我.谢谢.
我想在我的项目中定义一个常见的异常管理器,所以我使用@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)
我不认为这是最好的方式,任何人都有好的意见?
我循环一个集合,只有当集合的项不为空时,才会插入到数据库中,片段代码如下:
<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)
它也失败了,那么我该如何写声明呢?
正如文档所说:
过滤器基类,旨在保证在任何 servlet 容器上每个请求分派单次执行。
有一个问题 什么是OncePerRequestFilter? 我仍然不知道为什么我们要使用它。
它说“在任何 servlet 容器上”。这意味着有servlet容器会多次执行过滤器吗?
我定义了这样的视图解析器:
<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)
上面,我要转发的页面是硬代码,我不想这样做,有什么方法可以从视图解析器中获取页面吗?
我在windows中安装了JDK7.我没有做更多的事情,不要混淆路径和类路径,这是我的路径环境:

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

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