关于警告的神奇:编码 GBK 的不可映射字符 JCreator编译问题

mayi 2011-08-23 10:35:19
我用JCreator写了一个小servlet程序: 程序如下:


//登陆成功
package com.mayi;

import javax.servlet.http.*;
import java.io.*;
import java.sql.*;

public class Wel extends HttpServlet{
//处理请求
//重写doGet() doPost();


public void doGet(HttpServletRequest req,HttpServletResponse res){
try{
Connection ct=null;
Statement sm=null;
ResultSet rs=null;
//解决中文乱码
res.setContentType("text/html;charset=gb2312");

PrintWriter pw= res.getWriter();


pw.println("<body><center>");

//得到Session
HttpSession hs=req.getSession(true);
String id=hs.getId();
String val=(String)hs.getAttribute("pass");
String name=(String)hs.getAttribute("name");

if(val==null){
res.sendRedirect("login");
}

//接收Logincl传递的用户名
String u=req.getParameter("uname");
String p=req.getParameter("upass");

pw.println("<h1>Welcome to servlet!</h1>");


///加载图片
pw.println("<img src=imgs/b.gif><br>");
///显示ID 和 名称 密码
pw.println("你的名字是:"+u+" 你的密码是:"+p+"<br>");
pw.println(" 这个Session的ID是:"+id+" 名字是: "+name);


///-------分页功能--------
int pageSize=3; ///每一页显示多少个
int pageNow=1; ///显示第几页
int pageCount=1; ///总共有多少页
int rowCount=0; ///总共有多少个
int num=0;


///获得第几页
String number=req.getParameter("number");
System.out.println(number);
if(number==null){
//第一次登陆
}else{

pageNow=Integer.parseInt(number);
num=pageSize*(pageNow-1);
}



///链接数据库
//获得链接
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
ct=DriverManager.getConnection("jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=mayi","sa","123");
sm=ct.createStatement();
rs=sm.executeQuery("select count(*) from users ");

///计算rowCount pageCount
if(rs.next()){
rowCount=rs.getInt(1);
}


if(rowCount%pageSize==0){
pageCount=rowCount/pageSize;
}else{
pageCount=rowCount/pageSize+1;
}

rs=sm.executeQuery("select top 3 * from users where userId not in(select top "+num+" userId from users) ");

///建立信息表


pw.println("<h1>查询结果</h1>");
pw.println("<table border=1");
pw.println("<tr><th>Id</th><th>name</th><th>passwd</th><th>email</th><th>grade</th></tr>");
while(rs.next()){
pw.println("<tr>");
pw.println("<td>"+rs.getInt("userId")+"</td>");
pw.println("<td>"+rs.getString("username")+"</td>");
pw.println("<td>"+rs.getString("passwd")+"</td>");
pw.println("<td>"+rs.getString("email")+"</td>");
pw.println("<td>"+rs.getInt("grade")+"</td>");
pw.println("</tr>");
}
pw.println("</table>");


////上一页
pw.println("<a href=wel?number="+(pageNow-1)+">上一页</a>");////链接地址 web 为servlet中的URL地址!?

///第几页链接
for (int i =pageNow; i<pageNow+pageSize+4;i++){
pw.println("<a href=wel?number="+i+">"+i+"</a>");////链接地址 web 为servlet中的URL地址!!
}

///下一页
pw.println("<a href=wel?number="+(pageNow+1)+">下一页</a>");////链接地址 web 为servlet中的URL地址!?


///做个超链接
pw.println("<br><a href=login>返回重新登陆</a>");

pw.println("</body></center>");
}catch(Exception ce){
ce.printStackTrace();
}
}

public void doPost(HttpServletRequest req,HttpServletResponse res){

this.doGet(req,res);
}


}



警告:编码 GBK 的不可映射字符

我就按照网上的方法 :
修改后为:-encoding UTF-8 -classpath "$[ClassPath]" -d "$[OutputPath]" $[ModJavaFiles]


再编译一下 发现更多的错误!!我很是郁闷!! 就又改回原来的默认值为:-classpath "$[ClassPath]" -d "$[OutputPath]" $[ModJavaFiles]


最后我用eclipse把源代码整理了一下 就是使代码整洁一点 你懂的!

它居然编译通过了???
我不信 用Ctrl+Z回到原来的状态 在编译 还是没问题!!! 神奇了 刚刚死都编译不过 现在倒好 怎么都能编译的过了!!

不知哪位大侠能告诉小弟一声我 这是为什么啊!! 好让我长点经验!!!




...全文
186 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

81,094

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧