小编Jon*_*der的帖子

Java 在 UTC+1 时获得 UTC+2

上周日,我们更改了中欧的时间 (-1h)。我正在做一些测试,但有些东西并没有让我用 java 时间解析器睡觉。这是代码

public static void main(String[] args) {
    String dateFormatPattern = "yyyy-MM-dd HH:mm:ss";
    String dateUtc = "2016-10-09 12:50:00";

    SimpleDateFormat dateFormatUtc = new SimpleDateFormat(dateFormatPattern);
    dateFormatUtc.setTimeZone(TimeZone.getTimeZone("UTC"));

    SimpleDateFormat dateFormatLisboa = new SimpleDateFormat(dateFormatPattern);
    dateFormatLisboa.setTimeZone(TimeZone.getTimeZone("Europe/Lisboa"));

    SimpleDateFormat dateFormatMadrid = new SimpleDateFormat(dateFormatPattern);
    dateFormatMadrid.setTimeZone(TimeZone.getTimeZone("Europe/Madrid"));

    SimpleDateFormat dateFormatParis = new SimpleDateFormat(dateFormatPattern);
    dateFormatParis.setTimeZone(TimeZone.getTimeZone("Europe/Paris"));

    System.out.println("UTC: "+dateUtc);
    try {
        Date d = dateFormatUtc.parse(dateUtc);
        System.out.println("Lisboa: "+dateFormatLisboa.format(d));
        System.out.println("Madrid: "+dateFormatMadrid.format(d));
        System.out.println("Paris: "+dateFormatParis.format(d));
    } catch (ParseException e) {
        e.printStackTrace();
    }
}
Run Code Online (Sandbox Code Playgroud)

这是输出

UTC: 2016-10-09 12:50:00
Lisboa: 2016-10-09 12:50:00
Madrid: 2016-10-09 14:50:00
Paris: 2016-10-09 14:50:00
Run Code Online (Sandbox Code Playgroud)

为什么UTC和马德里时间相差2小时?现在马德里是UTC+1。 …

java timezone date

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

从servlet过滤器重定向Web客户端(通过AJAX进行客户端 - 服务器连接)

我正在使用JAASRealm身份验证进行Web(在tomcat 7中).这是servlet的过滤器:

private String loginPage = "welcome.jsp";

@Override
public void doFilter(ServletRequest request, ServletResponse response,
        FilterChain filterChain) throws IOException, ServletException {

    if ((request instanceof HttpServletRequest) && (response instanceof HttpServletResponse)) {
        HttpServletRequest httpServletRequest = (HttpServletRequest) request;
        HttpServletResponse httpServletResponse = (HttpServletResponse) response;
        if (httpServletRequest.getUserPrincipal() == null) {
            // User is not logged in, redirect to login page.
            httpServletRequest.setAttribute("from", httpServletRequest.getRequestURI());
            httpServletResponse.sendRedirect(loginPage);
        }
        else {
            filterChain.doFilter(request, response);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我在web.xml中声明了它

<filter>
    <filter-name>login-filter</filter-name>
    <filter-class>LoginFilter</filter-class>
</filter>
<filter-mapping>
    <filter-name>login-filter</filter-name>
    <url-pattern>/sampleServlet</url-pattern>
</filter-mapping>
Run Code Online (Sandbox Code Playgroud)

我的问题是当我没有经过身份验证并且我通过AJAX调用servlet时,这行过滤器不起作用

httpServletResponse.sendRedirect(loginPage);
Run Code Online (Sandbox Code Playgroud)

所以,我没有收到任何数据,我没有被重定向到登录页面.在这种情况下我该怎么办?

authentication jquery servlets servlet-filters

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