我想实现的功能很简单。
A页面是一个登陆页面,有一个单选,两个表单。
B页面是checkinputtype,如果用户名密码正确,单选为学生,则跳转到C页面。
C页面负责显示登陆成功,并打印出用户名。
我把书上写的可以祛除乱码的方法都用上了,还是不行。请高手指点。
A:
<body>
<form name="loginform" method="post" action="checkinputtype.jsp">
用户名:
<input type="text" name="user"><br>
密码:
<input type="password" name="pass"><br>
<input name="iden" type="radio" value="student" checked>
学生
<input type="radio" name="iden" value="teacher">老师<br>
<input type="submit" name="Submit" value="提 交">
<input name="Reset" type="reset" id="reset" value="重 填">
<br>
</body>
B:
<body>
<%
request.setCharacterEncoding("GB2312");
String name = new String(request.getParameter("user").getBytes("ISO8859_1"));
String pwd = new String(request.getParameter("pass").getBytes("ISO8859_1"));
String leixing = new String(request.getParameter("iden").getBytes("ISO8859_1"));
if(name.equals("于经文")||pwd.equals("yjw")||leixing.equals("teacher"))
{
response.sendRedirect("userpanel.jsp");
}
else if(name.equals("张学兵")||pwd.equals("zxb")||leixing.equals("student"))
{
session.setAttribute("message",name);
response.sendRedirect("controlpanel.jsp");
}
%>
</body>
C:
<body>
<%
request.setCharacterEncoding("GB2312");
String message=null;
message = (String)session.getAttribute("message");
out.println(message);
%>>
</body>登陆后,页面显示 %-- --%> html> ??????? >
请指点。
A页面是一个登陆页面,有一个单选,两个表单。
B页面是checkinputtype,如果用户名密码正确,单选为学生,则跳转到C页面。
C页面负责显示登陆成功,并打印出用户名。
我把书上写的可以祛除乱码的方法都用上了,还是不行。请高手指点。
A:
<body>
<form name="loginform" method="post" action="checkinputtype.jsp">
用户名:
<input type="text" name="user"><br>
密码:
<input type="password" name="pass"><br>
<input name="iden" type="radio" value="student" checked>
学生
<input type="radio" name="iden" value="teacher">老师<br>
<input type="submit" name="Submit" value="提 交">
<input name="Reset" type="reset" id="reset" value="重 填">
<br>
</body>
B:
<body>
<%
request.setCharacterEncoding("GB2312");
String name = new String(request.getParameter("user").getBytes("ISO8859_1"));
String pwd = new String(request.getParameter("pass").getBytes("ISO8859_1"));
String leixing = new String(request.getParameter("iden").getBytes("ISO8859_1"));
if(name.equals("于经文")||pwd.equals("yjw")||leixing.equals("teacher"))
{
response.sendRedirect("userpanel.jsp");
}
else if(name.equals("张学兵")||pwd.equals("zxb")||leixing.equals("student"))
{
session.setAttribute("message",name);
response.sendRedirect("controlpanel.jsp");
}
%>
</body>
C:
<body>
<%
request.setCharacterEncoding("GB2312");
String message=null;
message = (String)session.getAttribute("message");
out.println(message);
%>>
</body>登陆后,页面显示 %-- --%> html> ??????? >
请指点。
解决方案 »
- 请教个一直困扰我很久的问题,页面布局,路过的来看看吧!
- 谁有一工作之余接私活项目开发的经验!哪方面的,有哪些要注意的地方?请指教!
- Struts2中诡异的 <s:set> 标签~~~~ 难道没有一个人能够解决么?
- JSP问题,请大家帮帮忙,谢谢了
- 100分,有学习struts的可以运行的例子吗?我用的工具是eclipse
- 请问???java如何用递归解析树型结果的xml文件
- 这个检查用户登陆的程序错了
- 一个文件上传的问题
- 昨天发现自己已经是三个三角了,呵呵,放分.
- 那儿有比较完整的jsp+xml的教程
- 初学者在线求助:JSP中HTTP Status 500出错(TOMCAT+MYSQL)!
- 未发现数据源名称并且未指定默认驱动程序问题
没有用啊
String pwd = new String(request.getParameter("pass").getBytes("ISO8859_1"));
String leixing = new String(request.getParameter("iden").getBytes("ISO8859_1"));
不是这样写的吧?
你试试这样
String str= new String(request.getParameter("user"));
String name=new String(str.getBytes("ISO-8859-1"),("UTF-8"));
http://community.csdn.net/Expert/TopicView3.asp?id=4547791
{
byte[] s=str.getBytes("ISO8859-1");
str=new String(s);
return str;
}
为什么有时候这样做又是对的,其中的道理是什么。推荐楼主看一篇文章,理解其中的原理:
http://www.regexlab.com/zh/encoding.htm
request.setCharacterEncoding("与 A 页面一致的编码")3. 直接 request.getParameter 就可以了,不需要再进行转化。
String pwd = new String(request.getParameter("pass").getBytes("ISO8859_1"),"GB2312");
String leixing = new String(request.getParameter("iden").getBytes("ISO8859_1"),"GB2312");
1. 首先要看 A 页面是什么编码,提交的数据的编码与 A 页面编码一致。2. 在 B 页面中使用
request.setCharacterEncoding("与 A 页面一致的编码")3. 直接 request.getParameter 就可以了,不需要再进行转化。
===========================================================================已经说得很清楚了String name = new String(request.getParameter("user").getBytes("ISO8859_1"));
String pwd = new String(request.getParameter("pass").getBytes("ISO8859_1"));
String leixing = new String(request.getParameter("iden").getBytes("ISO8859_1"));楼主把这几行后面的getBytes("ISO8859_1"))去掉String name = new String(request.getParameter("user"));像这样应该就好用了,不过这种方法确实不是万能的,有时候也会出乱码,当然这种也是最简单的