如下代码中返回的页面中的中文都变成了问号,怎么回事?
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.util.*;
import java.util.regex.*;
import org.apache.commons.fileupload.*;
import org.apache.commons.fileupload.disk.*;
import org.apache.commons.fileupload.servlet.*;
public class AddTopicServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException
{
boolean bIsFileSaved = true;
String result = "Add topic succeesfully.";
String title = "";
String module = "";
String catalog = "";
String author = "";
String content = "";
String additional = "";
// save file to local disk
try {
String localFileDir = "C:/Program Files/Apache Software Foundation/Tomcat 4.1/webapps/examples/";
// Create a factory for disk-based file items
DiskFileItemFactory factory = new DiskFileItemFactory();// Create a new file upload handler
ServletFileUpload upload = new ServletFileUpload(factory);// Parse the request
List items = upload.parseRequest(request);
// Process the uploaded items
Iterator iter = items.iterator();
while (iter.hasNext()) {
FileItem item = (FileItem) iter.next(); if (item.isFormField()) {
String name = item.getFieldName();
String value = item.getString(); if (name.compareToIgnoreCase("title") == 0)
title = value;
else if (name.compareToIgnoreCase("author") == 0)
author = value;
else if (name.compareToIgnoreCase("module") == 0)
module = value;
else if (name.compareToIgnoreCase("catalog") == 0)
catalog = value;
else if (name.compareToIgnoreCase("content") == 0)
content = value;
else if (name.compareToIgnoreCase("path") == 0)
localFileDir = value;
else
System.out.println("Illegal filed (" + name + "," + value + ")");
}
}
// 正则匹配,过滤路径取文件名
String regExp=".+\\\\(.+)$";
Pattern p = Pattern.compile(regExp); iter = items.iterator();
while (iter.hasNext()) {
FileItem item = (FileItem) iter.next(); if (!item.isFormField()) {
Matcher m = p.matcher(item.getName());
if (m.find()){
additional = "doc/" + m.group(1);
item.write(new File(localFileDir + "/" + additional));
}
}
}
} catch (Exception e) {
e.printStackTrace();
result = "Failed to add topic, beause writing file error.";
bIsFileSaved = false;
} // add record to mysql
if (bIsFileSaved) {
if (title.length() == 0)
title = "No title";
TopicManager mgr = new TopicManager();
if (!mgr.add(title, author, module, catalog, content, additional))
result = "Failed to add topic, beause Connect mysql failed.";
}
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<html>");
out.println("<head>");
out.println("<META content=\"text/html; charset=gb2312\" http-equiv=Content-Type>");
out.println("<title>Request Parameters Example</title>");
out.println("</head>");
out.println("<body>");
out.println("<p>" + result);
out.println("</body>");
out.println("</html>");
} public void doPost(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException
{
doGet(request, response);
}
}
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.util.*;
import java.util.regex.*;
import org.apache.commons.fileupload.*;
import org.apache.commons.fileupload.disk.*;
import org.apache.commons.fileupload.servlet.*;
public class AddTopicServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException
{
boolean bIsFileSaved = true;
String result = "Add topic succeesfully.";
String title = "";
String module = "";
String catalog = "";
String author = "";
String content = "";
String additional = "";
// save file to local disk
try {
String localFileDir = "C:/Program Files/Apache Software Foundation/Tomcat 4.1/webapps/examples/";
// Create a factory for disk-based file items
DiskFileItemFactory factory = new DiskFileItemFactory();// Create a new file upload handler
ServletFileUpload upload = new ServletFileUpload(factory);// Parse the request
List items = upload.parseRequest(request);
// Process the uploaded items
Iterator iter = items.iterator();
while (iter.hasNext()) {
FileItem item = (FileItem) iter.next(); if (item.isFormField()) {
String name = item.getFieldName();
String value = item.getString(); if (name.compareToIgnoreCase("title") == 0)
title = value;
else if (name.compareToIgnoreCase("author") == 0)
author = value;
else if (name.compareToIgnoreCase("module") == 0)
module = value;
else if (name.compareToIgnoreCase("catalog") == 0)
catalog = value;
else if (name.compareToIgnoreCase("content") == 0)
content = value;
else if (name.compareToIgnoreCase("path") == 0)
localFileDir = value;
else
System.out.println("Illegal filed (" + name + "," + value + ")");
}
}
// 正则匹配,过滤路径取文件名
String regExp=".+\\\\(.+)$";
Pattern p = Pattern.compile(regExp); iter = items.iterator();
while (iter.hasNext()) {
FileItem item = (FileItem) iter.next(); if (!item.isFormField()) {
Matcher m = p.matcher(item.getName());
if (m.find()){
additional = "doc/" + m.group(1);
item.write(new File(localFileDir + "/" + additional));
}
}
}
} catch (Exception e) {
e.printStackTrace();
result = "Failed to add topic, beause writing file error.";
bIsFileSaved = false;
} // add record to mysql
if (bIsFileSaved) {
if (title.length() == 0)
title = "No title";
TopicManager mgr = new TopicManager();
if (!mgr.add(title, author, module, catalog, content, additional))
result = "Failed to add topic, beause Connect mysql failed.";
}
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<html>");
out.println("<head>");
out.println("<META content=\"text/html; charset=gb2312\" http-equiv=Content-Type>");
out.println("<title>Request Parameters Example</title>");
out.println("</head>");
out.println("<body>");
out.println("<p>" + result);
out.println("</body>");
out.println("</html>");
} public void doPost(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException
{
doGet(request, response);
}
}
解决方案 »
- tomcat里设置java_home的时候,为什么一定要指向jdk目录?指向jre则报错?
- java 权限控制
- 新手遇到一个SSH2整合分页问题,请大侠帮帮我
- Java RSS 有谁用过java做过rss的实例啊!!!
- JBob平台系统,基于Java和Ajax,专注权限(主页有效果图)。
- 一个关于后台输出HMTL到前台页面的问题?
- textarea 换行问题
- 怎样提示等待信息?
- 菜鸟问题,这个为什么在页面无法显示 相加的结果!
- 请问resin-2.1.4 与 resin ee 2.1.4有什么区别啊?
- 配置了ORACLE数据源,请问怎样把连接数据库封装到一个类中?
- 如何通过一个SESSION号来让一个SESSION失效
out.print("<%@ page language=java pageEncoding=gb2312 contentType=text/html;charset=gb2312 %>")你写的out.println("<META content=\"text/html; charset=gb2312\" http-equiv=Content-Type>");我以前试过好像不起什么作用。asp里面没有问题,jsp里面不知道怎么搞,反正这么去设置是有问题的。