login.jsp的内容是
<!-- http://127.0.0.1:8080//FightLandlordServer/jsp/umg/login.jsp -->
<%@ page language="java" import="java.util.*" pageEncoding="GBK"
isELIgnored="false"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme() + "://"
+ request.getServerName() + ":"
+ request.getServerPort() + path + "/";
request.setCharacterEncoding("gbk");
response.setCharacterEncoding("gbk");
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<style>
#userName {
max-width: 140px;
background: url(images/bg.gif);
}#password {
max-width: 140px;
background: url(images/bg.gif);
}.btn {
background: url(images/btn.gif);
}body {
color: #008888;
/*background:#336600;*/
}.login {
position: absolute;
top: 50%;
left: 60%;
}tr {
padding: 20px 0px;
}.loginLogo {
position: absolute;
top: 26%;
left: 26%;
}
</style>
</head> <body>
<img src="images/loginLogo.gif" class="loginLogo" />
<div class="login">
<form action="LoginServlet" method="get">
用户名&nbsp;
<input type="text" name="userName" id="userName" />
<br />
<br />
密 码 &nbsp;
<input type="password" name="password" id="password" />
<br />
<br />
用户类型&nbsp;&nbsp;&nbsp;
<select name="userType">
<option selected="selected">
玩家
</option>
<option>
管理员
</option>
</select>
<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<input type="submit" name="submit" value="登录" class="btn" />
&nbsp;&nbsp;&nbsp;
<input type="reset" " name="reset" value="重置" class="btn" />
</form>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<font color="red">${message}</font>
</div>
</body>
</html>
----------------------------------------------------------
后台处理servlet是LoginServlet.java
package com.ddz.control;import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
/**
 * 功能说明:处理http://127.0.0.1:8080//FightLandlordServer/jsp/umg/login.jsp的请求
 * @author Administrator
 *
 */
public class LoginServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
public void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException,
IOException {
doPost(request, response);
} public void doPost(HttpServletRequest request,
HttpServletResponse response) throws ServletException,
IOException {
request.setCharacterEncoding("GBK");
response.setCharacterEncoding("GBK");
HttpSession session = request.getSession();
String userName= new String(request.getParameter("userName").getBytes("ISO-8859-1"),"gbk");
String password= request.getParameter("password");
String userType= new String(request.getParameter("userType").getBytes("ISO-8859-1"),"gbk");
System.out.println("userType:"+userType);
System.out.println("userName:"+userName);
String loginFlag=GameServlet.dsi.loginVerify(userName, password);
request.setAttribute("message", loginFlag);
if(loginFlag.equals("success")){
session.setAttribute("user", GameServlet.dsi.getNameByUserName(userName));
System.out.println("userType:"+userType);
if(userType.equals("玩家")){
request.getRequestDispatcher("jsp/umg/player.jsp").forward(request, response);
}else{
request.getRequestDispatcher("jsp/umg/manager.jsp").forward(request, response);
}
}else{//登录失败
request.getRequestDispatcher("jsp/umg/login.jsp").forward(request, response);
}

}}

解决方案 »

  1.   

    把jsp页面属性中的编码格式换一下,换成你页面里用的,要保持一致。
      

  2.   

    用了request.setCharacterEncoding("GBK");
    就不要再用new String(request.getParameter("userName").getBytes("ISO-8859-1"),"gbk");
    去转码了,选用其中的一个方法就够了。
      

  3.   

    第一、把 myeclipse 里面的 编码配置好 
    第二、把 tomcat 里的 编码 配置好 
    统一一样 最好 为"utf-8" 
    页面 同上面 一样 为"utf-8"具体 怎么弄 自己 在网上搜一下 操作 一下 以后你就不会 这么纠结了
      

  4.   

    request.setCharacterEncoding("GBK");只对post提交方式有用
      

  5.   

    1、把你JSP页面上的有关编码设置的Code全删掉!就留下<%@ page language="java" pageEncoding="UTF-8"%>
    //最好就是用UTF-8,因为代码要国际化一点,当然,你也可以用GBK
    2、设置过滤器,过滤器设置为UTF-8,这样哪怕是你的JSP页面是GBK也没多大问题,最好JSP页面与过滤器的设置一致。PS:如果你知道过滤器,你会省掉很多事情。
      

  6.   

    <form action="LoginServlet" method="post">把get换成post
    request.setCharacterEncoding("GBK");
     response.setCharacterEncoding("GBK");
     HttpSession session = request.getSession();
     String password= request.getParameter("password");
     System.out.println("userType:"+userType);
     System.out.println("userName:"+userName);
    iso-8859-1那个转码也去掉,试试。
      

  7.   

    数据库 页面和代码,全设置成utf-8就可,