标签: servlets

如何通过UTF-8编码的ServletOutputStream字符发送

我的servlet代码看起来像这样:

response.setContentType("text/html; charset=UTF-8");
response.setCharacterEncoding("UTF-8");
ServletOutputStream out = response.getOutputStream();
out.println(...MY-UTF-8 CODE...);
Run Code Online (Sandbox Code Playgroud)

...

然后我得到错误:

java.io.CharConversionException: Not an ISO 8859-1 character: ?
 javax.servlet.ServletOutputStream.print(ServletOutputStream.java:89)
 javax.servlet.ServletOutputStream.println(ServletOutputStream.java:242)
 rtm.servlets.CampaignLogicServlet.doPost(CampaignLogicServlet.java:68)
 javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
 javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
Run Code Online (Sandbox Code Playgroud)

如何切换Servlet输出流的字符集?

java servlets utf-8 internationalization

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

如何使用iframe进行异步(AJAX)文件上传?

我正在尝试上传ajax文件.我读到如果不使用它就不可能做到这一点iframe.
我写 :

<iframe id="uploadTrg" name="uploadTrg" height="0" width="0" frameborder="0" scrolling="yes"></iframe>
<form id="myForm" action="file-component" method="post" enctype="multipart/form-data"  target="uploadTrg">
File: <input type="file" name="file">
<input type="submit" value="Submit" id="submitBtn"/>
</form>
Run Code Online (Sandbox Code Playgroud)

并使用jquery表单插件:

$('#myForm').ajaxForm({
    dataType:  'json',
    success:   function(data){
        alert(data.toSource());
    }
});
Run Code Online (Sandbox Code Playgroud)

结果 :

文件上传成功,我可以看到上传的文件,但会出现一个对话框:

替代文字

因为我发回一个json结果来显示文件名+大小等.

我的问题: 如何使用iFrame进行"ajax文件上传".

注意:

  1. 如果有更合适/更简单的解决方案,我不喜欢使用特殊插件上传文件.
  2. 我使用jsp/servlets作为服务器端语言..但我认为使用哪种语言没有意义.

谢谢

ajax jquery servlets file-upload

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

在多线程系统中使用静态java.sql.Connection实例是否安全?

我在Tomcat上运行Web应用程序.我有一个处理所有数据库查询的类.此类包含Connection返回查询结果的对象和方法.

这是连接对象:

private static Connection conn = null;
Run Code Online (Sandbox Code Playgroud)

它只有一个实例(单例).

另外,我有执行查询的方法,例如在db中搜索用户:

public static ResultSet searchUser(String user, String pass) throws SQLException
Run Code Online (Sandbox Code Playgroud)

此方法使用静态Connection对象.我的问题是,我在静态Connection对象线程中的使用是否安全?或者当很多用户调用该searchUser方法时会引起问题吗?

java connection multithreading servlets jdbc

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

从HttpServletRequest检索JSON对象文字

我正在编写需要提取发布到servlet的对象文字的代码.我已经研究了HttpServletRequest对象的API,但是我不清楚如何从请求中获取JSON对象,因为它不是从网页上的表单元素发布的.

任何见解都表示赞赏.

谢谢.

post json servlets

49
推荐指数
6
解决办法
9万
查看次数

如何获取Web应用程序中所有HttpSession对象的列表?

假设我有一个运行的基于Java的Web应用程序,其中包含0个或更多HttpSession与之关联的有效对象.我想要一种方法来访问当前的有效HttpSession对象列表.我在想我可以实现一个HttpSessionListener并使用它来追加存储在应用程序范围的属性中的会话ID值列表,但随后会因会话失效而更新列表并且谁知道是什么其他.

在我开始烘焙自己的解决方案之前,我想我应该问一个问题:
servlet API是否提供了一些访问完整的非失效会话对象列表的方法?

我使用Tomcat 6.x作为我的Web应用程序容器和MyFaces 1.2.x(JSF)库.

解决方案
我遵循类似于BalusC在这些现有问题中讨论的方法:

我按SessionData类修改了实现HttpSessionBindingListener.当绑定事件发生时,对象将从所有SessionData对象的集合中添加或删除自身.

@Override
public void valueBound(HttpSessionBindingEvent event) { 
    // Get my custom application-scoped attribute
    ApplicationData applicationData = getApplicationData();
    // Get the set of all SessionData objects and add myself to it
    Set<SessionData> activeSessions = applicationData.getActiveSessions();
    if (!activeSessions.contains(this)) {
        activeSessions.add(this);
    }
}

@Override
public void valueUnbound(HttpSessionBindingEvent event) {
    HttpSession session = event.getSession();
    ApplicationData applicationData = getApplicationData();
    Set<SessionData> activeSessions …
Run Code Online (Sandbox Code Playgroud)

java servlets web-applications httpsession

49
推荐指数
2
解决办法
7万
查看次数

如何在servlet过滤器中重定向?

我正在尝试找到一种方法将我的请求从过滤器重定向到登录页面,但我不知道如何从servlet重定向.我搜索但我发现的是sendRedirect()方法.我无法在过滤器中找到我的响应对象.原因是什么?我怎么解决这个问题?

java redirect servlets servlet-filters

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

从eclipse调试JSP

有没有人知道从Eclipse中调试JSP的好工具?我希望能够在应用程序运行时设置和观察断点,逐步浏览Eclipse中的Java代码/标记等(在我的情况下,在JBoss下).

据推测,调试从JSP生成的servlet类是相当简单的,但它也相当没有吸引力.

java eclipse debugging jsp servlets

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

在Java Servlet中生成HTML响应

如何在Java servlet中生成HTML响应?

html servlets

48
推荐指数
2
解决办法
13万
查看次数

在Tomcat中从servlet生成线程的推荐方法是什么

可能重复一次!我使用Tomcat作为我的服务器,并想知道什么是在确定性结果的servlet中生成线程的最佳方法.我正在从servlet操作运行一些长时间运行的更新,并希望完成请求并在后台进行更新.而不是添加像RabbitMQ这样的消息中间件,我想我可以生成一个可以在后台运行并在自己的时间内完成的线程.我在其他SO线程中读到服务器终止服务器生成的线程,以便它能够很好地管理资源.

在使用Tomcat时是否有推荐的方法来生成线程,后台作业.我还使用Spring MVC作为应用程序.

java multithreading tomcat servlets spring-mvc

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

java.lang.NoClassDefFoundError:org/apache/http/client/HttpClient

我正在尝试从GWT servlet发出get请求以从Web服务获取JSON响应.以下是我的servlet中的代码:

public String getQueData() throws IllegalArgumentException {
    String message = null;
    try {           
        HttpClient httpclient = new DefaultHttpClient(); 
        JSONParser parser = new JSONParser();

        String url = "working - url";
        HttpResponse response = null;
        response = httpclient.execute(new HttpGet(url));

        JSONObject json_data = null;
        json_data = (JSONObject)parser.parse(EntityUtils.toString(response.getEntity()));
        JSONArray results = (JSONArray)json_data.get("result");
        for (Object queid : results) {
            message = message.concat((String) ((JSONObject)queid).get("id"));
            message = message.concat("\t");
            message = message.concat((String) ((JSONObject)queid).get("owner"));
            message = message.concat("\n");
        }
      } catch (Exception e) {
    message = e.toString();
    }
    return …
Run Code Online (Sandbox Code Playgroud)

java gwt json servlets

48
推荐指数
2
解决办法
17万
查看次数