小编ree*_*esy的帖子

如何删除Java Servlet中的Cookie

如何删除Java servlet中的cookie?

我试过这个:http: //www.jguru.com/faq/view.jsp?EID = 42225

编辑:以下现在成功运作它似乎是以下的组合:

response.setContentType("text/html");
Run Code Online (Sandbox Code Playgroud)

cookie.setMaxAge(0);
Run Code Online (Sandbox Code Playgroud)

在我做之前:

//remove single signon cookie if it hasn't been validated yet
response.setContentType("text/html");
Cookie cookie = new Cookie(SSORealm.SSO_COOKIE_NAME, "");
cookie.setDomain(SSORealm.SSO_DOMAIN);
cookie.setMaxAge(-1);
cookie.setPath("/");
cookie.setComment("EXPIRING COOKIE at " + System.currentTimeMillis());
response.addCookie(cookie);
Run Code Online (Sandbox Code Playgroud)

根据文档关闭浏览器时,cookie会过期.

负值表示cookie不会持久存储,并在Web浏览器退出时被删除.零值会导致cookie被删除.

要使Cookie过期的完整工作代码段是:

//remove single signon cookie if it hasn't been validated yet
response.setContentType("text/html");
Cookie cookie = new Cookie(SSORealm.SSO_COOKIE_NAME, "");
cookie.setDomain(SSORealm.SSO_DOMAIN);
cookie.setMaxAge(0);
cookie.setPath("/");
cookie.setComment("EXPIRING COOKIE at " + System.currentTimeMillis());
response.addCookie(cookie);
Run Code Online (Sandbox Code Playgroud)

java cookies servlets

130
推荐指数
5
解决办法
19万
查看次数

如何获取没有上下文路径的请求URI?

方法request.getRequestURI()返回带有上下文路径的URI.

例如,如果一个应用程序的基本网址http://localhost:8080/myapp/(即上下文路径是MYAPP),和我打电话request.getRequestURI()http://localhost:8080/myapp/secure/users,它将返回/myapp/secure/users.

有没有办法我们只能得到这个部分/secure/users,即没有上下文路径的URI?

java servlets

119
推荐指数
6
解决办法
23万
查看次数

<jsp:include page = ...>和<%@ include file = ...>之间有什么区别?

两个标签都包含来自另一个页面的内容.

那么这两个标签之间的确切区别是什么?

java jsp

103
推荐指数
4
解决办法
22万
查看次数

Java相当于生成相同输出的JavaScript的encodeURIComponent?

我一直在试验各种Java代码试图想出一些东西,它将编码一个包含引号,空格和"奇异"Unicode字符的字符串,并产生与JavaScript的encodeURIComponent函数相同的输出.

我的折磨测试字符串是:"A"B±"

如果我在Firebug中输入以下JavaScript语句:

encodeURIComponent('"A" B ± "');
Run Code Online (Sandbox Code Playgroud)

- 然后我得到:

"%22A%22%20B%20%C2%B1%20%22"
Run Code Online (Sandbox Code Playgroud)

这是我的小测试Java程序:

import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;

public class EncodingTest
{
  public static void main(String[] args) throws UnsupportedEncodingException
  {
    String s = "\"A\" B ± \"";
    System.out.println("URLEncoder.encode returns "
      + URLEncoder.encode(s, "UTF-8"));

    System.out.println("getBytes returns "
      + new String(s.getBytes("UTF-8"), "ISO-8859-1"));
  }
}
Run Code Online (Sandbox Code Playgroud)

- 该计划输出:

URLEncoder.encode returns %22A%22+B+%C2%B1+%22
getBytes returns "A" B ± "

关闭,但没有雪茄!使用Java编码UTF-8字符串的最佳方法是什么,以便它产生与JavaScript相同的输出encodeURIComponent

编辑:我很快就使用Java 1.4迁移到Java 5.

javascript java unicode utf-8

84
推荐指数
5
解决办法
11万
查看次数

@see和@inheritDoc之间的差异细节

我查看了JavaDoc参考,虽然我理解@see(各种链接)和{@inheritDoc}(超类JavaDoc注释的导出)之间的基本区别,但我需要澄清事情的实际实现方式.

在Eclipse IDE中,当我为继承的方法选择"Generate Element Comments"时(从接口或toString()覆盖等),它会创建以下注释

/* (non-Javadoc)
 * @see SomeClass#someMethod()
 */
Run Code Online (Sandbox Code Playgroud)

如果我需要产生的JavaDoc我应该离开它,取代@see{@inheritDoc},或者把它真正的Javadoc这样的:

/**
 * {@inheritDoc}
 */
Run Code Online (Sandbox Code Playgroud)

当我这样做时,我是否应该保持类#方法标志?

java javadoc commenting

79
推荐指数
1
解决办法
6万
查看次数

Spring HandlerInterceptor与Servlet过滤器

Spring中的HandlerInterceptor现在可以配置为仅在某些URL上使用调用<mvc:interceptors>.

Servlet过滤器可以实现相同的功能(日志记录,安全性等).那应该用哪一个?

我认为使用Interceptors,可以使用ModelAndView对象与模型一起工作,因此它具有更多优势.任何人都可以提出过滤器或拦截器比另一个有优势的场景吗?

spring spring-mvc interceptor servlet-filters

63
推荐指数
4
解决办法
7万
查看次数

不可变字符串vs std :: string

我最近一直在阅读有关不可变字符串的原因为什么字符串在Java和.NET中不可变为什么.NET字符串是不可改变的?以及为什么D选择不可变字符串的一些东西.似乎有很多好处.

  • 平凡的线程安全
  • 更安全
  • 在大多数用例中,内存效率更高.
  • 便宜的子串(标记化和切片)

更不用说大多数新语言都有不可变的字符串,D2.0,Java,C#,Python等.

C++会从不可变字符串中受益吗?

是否有可能在c ++(或c ++ 0x)中实现具有所有这些优点的不可变字符串类?


更新:

在不可变字符串const_stringfix_str上有两次尝试.五年内都没有更新.它们甚至被使用过吗?为什么const_string没有进入boost?

c++ string immutability

61
推荐指数
3
解决办法
3万
查看次数

Oracle JDBC间歇性连接问题

我遇到了一个非常奇怪的问题这是一个非常简单的JDBC连接到Oracle数据库的用法

OS: Ubuntu
Java Version:  1.5.0_16-b02
               1.6.0_17-b04
Database: Oracle 11g Release 11.1.0.6.0
Run Code Online (Sandbox Code Playgroud)

当我使用jar文件时 OJDBC14.jar它每次都连接到数据库当我使用jar文件时 OJDBC5.jar它连接了一些时间,有时它会抛出一个错误(如下所示)如果我用Java 6重新编译并使用 OJDBC6.jar我获得相同的结果如OJDBC5.jar

我需要JODB5.jar中的特定功能,这些功能在OJDBC14.jar中不可用

有任何想法吗

错误

> Connecting to oracle
    java.sql.SQLException: Io exception: Connection reset
    at oracle.jdbc.driver.SQLStateMapping.newSQLException(SQLStateMapping.java:74)
    at oracle.jdbc.driver.DatabaseError.newSQLException(DatabaseError.java:110)
    at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:171)
    at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:227)
    at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:494)
    at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:411)
    at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:490)
    at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:202)
    at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:33)
    at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:474)
    at java.sql.DriverManager.getConnection(DriverManager.java:525)
    at java.sql.DriverManager.getConnection(DriverManager.java:171)
    at TestConnect.main(TestConnect.java:13)
Run Code Online (Sandbox Code Playgroud)

以下是我正在使用的代码

import java.io.*;
import java.sql.*;
public class TestConnect {
    public static void main(String[] args) {
        try {
            System.out.println("Connecting to oracle"); …
Run Code Online (Sandbox Code Playgroud)

java oracle jdbc

59
推荐指数
4
解决办法
11万
查看次数

Java的Fork/Join vs ExecutorService - 何时使用哪个?

我刚读完这篇文章:Java-5 ThreadPoolExecutor相对于Java-7 ForkJoinPool有什么优势?觉得答案不够直接.

您能用简单的语言和示例来解释,Java 7的Fork-Join框架与旧解决方案之间的权衡取舍是什么?

我还阅读了Google关于Java提示的#1热门提示:何时javaworld.com 使用ForkJoinPool vs ExecutorService但文章没有回答标题问题,它主要讨论api差异......

java concurrency multithreading executorservice fork-join

52
推荐指数
6
解决办法
3万
查看次数

用Java中的泛型参数覆盖方法?

我有一个抽象类Monitor.java,它由Class EmailMonitor.java子类.

方法:

public abstract List<? extends MonitorAccount> performMonitor(List<? extends MonitorAccount> accounts)
Run Code Online (Sandbox Code Playgroud)

Monitor.java中定义,必须在EmailMonitor.java中重写.

我目前在EmailMonitor.java中重写了如下方法:

@Override
public List<EmailAccount> performMonitor(List<EmailAccount> emailAccounts) {
    //...unrelated logic
    return emailAccounts;
}
Run Code Online (Sandbox Code Playgroud)

但是,这会产生编译时错误:

Name clash: The method performMonitor(List<EmailAccount>) of type EmailMonitor has the same erasure as performMonitor(Lis<? extends MonitorAccount> emailAccounts) of type Monitor but does not override it

EmailAccount是一个子类MonitorAccount,所以(至少在我看来)以这种方式覆盖它是完全有道理的.虽然编译器对我的逻辑不满意,但是如何在保持编译时检查以确保所有调用EmailMonitor.performMonitor()接收列表EmailAccount而不是其他类型的MonitorAccount

java generics inheritance

42
推荐指数
2
解决办法
4万
查看次数