用Jsp+Servlet+JavaBean写的注册登陆界面,解决中文乱码

话说这学期课是真多啊,忙成一个球了!还好从昨天开始,我们学校就举办运动会了,大二以上年级休息四天,哈哈哈大笑   得意 不要太羡慕啊~

今天上午写了一个注册+登陆页面

使用的技术主要有:Jsp Servlet Javabean

遇到的问题:JavaBean的getName()方法若为中文则显示乱码,就这个问题我真是历尽千辛万苦啊,contentType,pageEndoing统一的设成gbk不行,设置了字符编码过滤器后session.setAttribute(session_name,session_value)设置的值和session.getAttribute(session_name)已经可以显示中文,但使用Javabean的类userBean的getName()方法还是乱码,此时心中顿时感觉有一万头神马呼啸着狂奔而过...后来在网上看到一篇帖子,它的思想是在写一个JavaBean类将字符编码转换一下(http://hi.baidu.com/ixuzpycgedbnsvq/item/1b07e633fcc166f5e6bb7a6f),这样转码之后,就完全可以支持中文了

#Jsp reg.jsp 注册页面

<%@ page contentType="text/html; charset=gbk" language="java" import="java.sql.*" %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gbk" />
<meta name="description" content="MySpace By Young Studio" />
<link rel="stylesheet" href="css/frame.css" media="screen" />
<link rel="stylesheet" href="css/test.css" media="screen" />
<script type="text/javascript" src="js/test.js"></script>
<title>Register_test</title>
</head>
<body>
<div id="content">
	<header>
    <h1>RegSpace</h1>
  	</header> <hr />
	<!--注册表单-->
	<div id="reg">
		<form name="form1" method="post" action="regCheck.jsp">
		
			<div>姓名:<input type="text" name="name" class="formInput" placeholder="如:张三" autofocus="autofocus"/>
			<label class="la" id="Lname"></label></div><br />
			
			<div>年龄:<input type="number" name="age" class="formInput" placeholder="如:17" />
			<label class="la" id="Lage"></label></div><br />
			
			<div>体重:<input type="number" name="weight" class="formInput" placeholder="如:75" />
			<label class="la" id="Lweight"></label></div><br />
			
			<div>班级:<select size="1" id ="selclass" name="selclass" >  
                <option value="计121-1"  selected="selected">计121-1</option>  
                <option value="计121-2" >计121-2</option>  
                <option value="计122-1" >计122-1</option>  
                <option value="计122-2" >计122-2</option>  
                <option value="计123-1" >计123-1</option>  
                <option value="计123-2" >计123-2</option>  
                <option value="计124-1" >计124-1</option>  
                <option value="计124-2" >计124-2</option>  
				<option value="计124-2" >计125</option>  
            </select>  
			<label class="la" id="Lclass"></label></div><br />
			
			<div>密码:<input type="password" name="pwd" class="formInput" placeholder="xxxx" />
			<label class="la" id="Lpwd"></label></div><br />
			
			<div>重复密码:<input type="password" name="repwd" class="formInput" placeholder="xxxx" style="margin-left:8px;position:relative;" />
			<label class="la" id="Lrepwd"></label></div><br />
			
			<div>Email:<input type="email" name="email" class="formInput" placeholder="xxx@xx.xx" style="margin-left:33px;position:relative;" />
			<label class="la" id="Lemail"></label></div><br />
			
			<div>简介:<textarea name="brief" class="formTextarea" placeholder="我来自…"></textarea>
			<label class="la" id="Lbrief"></label></div><br />
			
			<input type="submit" value="注册" class="formInput" onClick="return reg();" />
		</form>
	</div><!--#reg-->
</div><!--#content-->
</body>
</html>
#Jsp regCheck.jsp 注册检查页面

<%@ page contentType="text/html; charset=gbk" language="java"  import="user.userBean"%>
<jsp:useBean id="love" class="user.userBean" scope="page" />
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gbk" />
<meta name="description" content="MySpace By Young Studio" />
<link rel="stylesheet" href="css/frame.css" media="screen" />
<link rel="stylesheet" href="css/test.css" media="screen" />
<script type="text/javascript" src="js/test.js"></script>
<title>Login_test</title>
</head>
<body>
<div id="content">
	<header>
    <h1>LoginSpace</h1>
  	</header> <hr />
	<!--注册表单-->
	<div id="maincotent">
		<fieldset>
			<legend>用户注册</legend>
			<p>欢迎你!</p>
			<%
				request.setCharacterEncoding("gbk");
				String name = request.getParameter("name");
				String pwd = request.getParameter("pwd");
				session.setAttribute("name",name);
				session.setAttribute("pwd",pwd);
				out.println(name);
				out.println("<p>点击<a href='login.jsp'>这里</a>登陆</p>");
			%>
		</fieldset>
	</div><!--#maincontent-->
</div><!--#content-->
</body>
</html>
#Jsp login.jsp 登陆页面

<%@ page contentType="text/html; charset=gbk" language="java" import="java.sql.*" %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gbk"/>
<meta name="description" content="MySpace By Young Studio" />
<link rel="stylesheet" href="css/frame.css" media="screen" />
<link rel="stylesheet" href="css/test.css" media="screen" />
<script type="text/javascript" src="js/test.js"></script>
<title>Login_test</title>
</head>
<body>
<div id="content">
	<header>
    <h1>LoginSpace</h1>
  	</header> <hr />
	<!--登陆表单-->
	<div id="maincontent">
		<fieldset>
			<legend>用户登陆</legend>
				<form name="form1" method="get" action="loginCheck.jsp">
				
					<div>用户:<input type="text" name="name" class="formInput" autofocus="autofocus"/>
					<label class="la" id="Lname"></label></div><br />
					
					<div>密码:<input type="password" name="pwd" class="formInput"  />
					<label class="la" id="Lage"></label></div><br />
					
					<input type="submit" value="登陆" class="formInput" onClick="return loginChk();" />
					
				</form>
		</fieldset>
	</div><!--#maincontent-->
</div><!--#content-->
</body>
</html>

#Jsp loginCheck.jsp 登陆检查页面

<%@ page contentType="text/html; charset=gbk" language="java" pageEncoding="gbk" import="user.MyTools" %>
<jsp:useBean id="demo" class="user.userBean" scope="application" />
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gbk" />
<meta name="description" content="MySpace By Young Studio" />
<link rel="stylesheet" href="css/frame.css" media="screen" />
<link rel="stylesheet" href="css/test.css" media="screen" />
<script type="text/javascript" src="js/test.js"></script>
<title>Login_test</title>
</head>
<body>
<div id="content">
	<header>
    <h1>LoginSpace</h1>
  	</header> <hr />
	<!--loginCheck-->
	<div id="maincontent">
		<fieldset>
			<legend>用户登陆</legend>
			<jsp:setProperty name="demo" property="*" />
			<%
				String name  = session.getAttribute("name").toString();
				String pwd   = session.getAttribute("pwd").toString();
				String cname = MyTools.toChinese(demo.getName());  //使用MyTools的方法将字符转码
                                String cpwd  = MyTools.toChinese(demo.getPwd());//使用MyTools的方法将字符转码
                                if(name.equals(cname) && pwd.equals(cpwd))
  				{
 					response.sendRedirect("welcome.jsp");
  				}
			 	else
 				{
 					response.sendRedirect("errorPage.jsp");
 				}
			%>
 		</fieldset>
	 </div><!--#maincontent-->
 </div><!--#content-->
</body>
</html>
#Jsp welcome.jsp 登陆成功页面

<%@ page contentType="text/html; charset=gbk" language="java" import="user.MyTools" %>
<jsp:useBean id="demo" class="user.userBean" scope="application" />
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gbk" />
<meta name="description" content="MySpace By Young Studio" />
<link rel="stylesheet" href="css/frame.css" media="screen" />
<link rel="stylesheet" href="css/test.css" media="screen" />
<script type="text/javascript" src="js/test.js"></script>
<title>Welcome</title>
</head>
<body>
<div id="content">
	<header>
    <h1>Space</h1>
  	</header> <hr />
	<!--welcome-->
	<div id="maincontent">
		<fieldset>
			<p>欢迎您!</p>
			<p><%=MyTools.toChinese(demo.getName())%></p> //使用MyTools的getName方法将字符转码
		</fieldset>
	</div><!--#maincontent-->
</div><!--#content-->
</body>
</html>
#Jsp errorPage.jsp 登陆失败页面

<%@ page contentType="text/html; charset=gbk" language="java" import="java.sql.*" isErrorPage="true" %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gbk" />
<meta name="description" content="MySpace By Young Studio" />
<link rel="stylesheet" href="css/frame.css" media="screen" />
<link rel="stylesheet" href="css/test.css" media="screen" />
<script type="text/javascript" src="js/test.js"></script>
<title>ErrorPage</title>
</head>
<body>
<div id="content">
	<header>
    <h1>ErrorPage</h1>
  	</header> <hr />
	<!--errorPage-->
	<div id="reg">
		<fieldset>
			<%
				out.println("登陆失败");
				out.println("<p>点击<a href='login.jsp'>这里</a>重新登陆</p>");
			%>
		</fieldset>
	</div><!--#reg-->
</div><!--#content-->
</body>
</html>

#Servlet 使用过滤器实现转码编码

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

public class ManageFilter implements Filter {
	protected String encoding = "gbk";
	protected FilterConfig filterConfig = null;
	public void init(FilterConfig filterConfig) throws ServletException{
		this.filterConfig = filterConfig;
		this.encoding = filterConfig.getInitParameter("encoding");
	}
	public void doFilter(ServletRequest request,ServletResponse response,FilterChain chain) throws IOException,ServletException{
		HttpServletRequest res = (HttpServletRequest)request;
		res.setCharacterEncoding(encoding);
		chain.doFilter(request,response);
	}
	public void destroy(){
		this.filterConfig = null;
	}
}

#JavaBean userBean

package user;

public class userBean {
	private String name;
	private String pwd;
	public userBean(){}
	public void setName(String name){
		this.name = name;
	}
	public String getName(){
		return name;
	}
	public void setPwd(String pass){
		pwd = pass;
	}
	public String getPwd(){
		return pwd;
	}
}
#JavaBean 字符转码

package user;
import java.io.UnsupportedEncodingException;

public class MyTools {
	public static String toChinese(String str) {
		if (str == null)
			str = "";
		try {
			// 通过String类的构造方法将,指定的字符串转换为“gbk”编码
			str = new String(str.getBytes("ISO-8859-1"), "gbk");
		} catch (UnsupportedEncodingException e) {
			str = "";
			e.printStackTrace();
		}
		return str;
	}
}
#web.xml 配置如下

<?xml version="1.0" encoding="gb2312"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 version="2.4">
<filter>
  <filter-name>ManageFilter</filter-name>
  <filter-class>ManageFilter</filter-class>
  <init-param>
    <param-name>encoding</param-name>
    <param-value>gbk</param-value> 
  </init-param>
</filter>
<filter-mapping>
  <filter-name>ManageFilter</filter-name>
  <url-pattern>/*</url-pattern>
</filter-mapping>	
</web-app>

主要思路

1.打开 reg.jsp 进行注册(regCheck.jsp进行注册判断,如成功将用户名和密码存入session,并使用servlet过滤器将字符编码转换为gb2312,避免中文乱码

2.注册成功后点击 登陆 进入登陆界面(login.jsp)

3.填写注册时的用户名和密码,点击submitloginCheck.jsp进行注册判断,使用JavaBean将输入值与session存入值进行等值判断,若相等,重定向至welcome.jsp,若不等,重定向到errorPage.jsp

 

展示效果如下


评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值