四、编写用户登陆的Servlet:login.java
//login.java//import required classes
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.sql.*;//class login
public class login extends HttpServlet
{
public void doGet(HttpServletRequest req,HttpServletResponse res)
throws IOException,ServletException
{
String username = req.getParameter("username");
String password = req.getParameter("password");
if(this.checklogin(username,password))
{
Cookie mylogin = new Cookie("username",username);
mylogin.setVersion(1);
mylogin.setPath("/");
mylogin.setComment("Your login username");
res.addCookie(mylogin);
}
//Cookie[] myCookies = req.getCookies();
//String nameValue = this.getCookieValue(myCookies,"username","not found");
//PrintWriter out = res.getWriter();
//out.println("username" ":" nameValue);
//out.println("Test Cookie Success!");
res.sendRedirect("/index.jsp");
}
public void doPost(HttpServletRequest req,HttpServletResponse res)
throws IOException,ServletException
{
doGet(req,res);
}
public static String getCookieValue(Cookie[] cookies,String cookieName,String defaultValue)
{
for(int i=0;i<cookies.length;i ) {
Cookie cookie = cookies[i];
if (cookieName.equals(cookie.getName()))
return(cookie.getValue());
}
return(defaultValue);
}
public boolean checklogin(String username,String password)
{
try{
DBConn loginConn = new DBConn();
loginConn.executeQuery("select * from tbl_user where name='" username "'");
if(loginConn.rs_next())
{
System.out.println("Connection created!");
if(loginConn.rs_getString("pwd").trim().equals(password))
{
System.out.println(loginConn.rs_getString("name"));
return true;
}
else
{
return false;
}
}
System.out.println("Test Login Success!");
return false;
}catch(Exception e){
System.out.println(e.toString());
return false;
}
}
public static void main(String args[])
{
login mylogin = new login();
System.out.println(mylogin.checklogin("shandong","shandong"));
}
}
说明:
1、默认的jdk1.4中并没有servlet包,请至sun公司网页下载servlet.jar,放至jdk目录下的jre\lib\目录下,并在JCreator中设置jdk处添加servlet.jar包
2、本Servlet用于检验用户名和密码,若正确则将用户名写入Cookie,完成后将当前页重定向到index.jsp页
五、编写检测用户是否已经登陆的bean:checkLogin.java
//checkLogin.java
//import required classes
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;//class checkLogin
public class checkLogin
{
public String username = "";
public boolean check(HttpServletRequest req,HttpServletResponse res)
throws IOException,ServletException
{
String cookieName = "username";
Cookie[] myCookies = req.getCookies();
this.username = this.getCookieValue(myCookies,cookieName,"not found");
PrintWriter out = res.getWriter();
if(this.username != null)
{
//out.println("早上好," this.username "!");
return true;
}else{
out.println("登陆失败!");
return false;
}
}
public String getUserName()
{
return this.username;
}
public static String getCookieValue(Cookie[] cookies,String cookieName,String defaultValue)
{
for(int i=0;i<cookies.length;i ) {
Cookie cookie = cookies[i];
if (cookieName.equals(cookie.getName()))
return(cookie.getValue());
}
return(defaultValue);
}
}
说明:此bean检测cookie中的username,若不为空则说明已登录,反之说明没有登录。方法不够完善,您可以自行扩充。
六、在JRun中建立shopping服务器
打开JRun Administrator,新建shopping服务器,这里端口为8101。
将上文所述所有编译后的class文件连同org包拷至JRun的shopping服务器所在目录中的classes文件夹下,路径为:
C:\JRun4\servers\shopping\default-ear\default-war\WEB-INF\classes\
七、建立jsp文件
应用DW,在C:\JRun4\servers\shopping\default-ear\default-war\目录下新建如下的jsp文件:
index.jsp:
至此,我们已经完成了一个用户注册、登录的系统。 因为这是本人自己边学边做完成的,所以代码一定有很多不完善的地方,欢迎大家批评指正。 以上所有代码均经本人测试通过。
<%@ page contentType="text/html;charset=gb2312" pageEncoding="gb2312" %>
<html>
<head>
<title>Shopping123</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<link href="styles/shoppingstyle.css" rel="stylesheet" type="text/css">
</head>
<body bgcolor="#FFFFFF" leftmargin="0" topmargin="0">
<jsp:useBean id="checklogin" class="checkLogin" scope="page"/>
<%
boolean login = checklogin.check(request,response);
%>
<table width="100%" height="100%" border="0" cellpadding="0" cellspacing="0">
<tr bgcolor="#990000">
<td height="80" colspan="5"><table width="100%" height="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td width="120"> </td>
<td class="caption">Shopping123</td>
<td width="200"> </td>
</tr>
</table></td>
</tr>
<tr>
<td width="200" align="center" valign="top"><table width="100%" height="20" border="0" cellpadding="0" cellspacing="0">
<tr>
<td> </td>
</tr>
</table>
<%
if(!login){
%>
<table width="90%" border="0" align="center" cellpadding="0" cellspacing="1" bgcolor="#CCCCCC">
<form name="form1" method="post" action="/servlet/login">
<tr align="center" bgcolor="#CCCCCC">
<td height="30" colspan="2" class="deepred">卖场入口</td>
</tr>
<tr>
<td width="50%" height="24" align="center" bgcolor="#FFFFFF">会员</td>
<td align="center" bgcolor="#FFFFFF"><input name="username" type="text" id="username" size="10"></td>
</tr>
<tr>
<td height="24" align="center" bgcolor="#FFFFFF">密码</td>
<td align="center" bgcolor="#FFFFFF"><input name="password" type="text" id="password" size="10"></td>
</tr>
<tr>
<td height="24" align="center" bgcolor="#FFFFFF"><a href="reg.jsp" target="_blank" class="red">注册</a></td>
<td align="center" bgcolor="#FFFFFF"><input type="submit" name="Submit" value="进入"></td>
</tr>
</form>
</table>
<%
}
else
{
out.println("您好," checklogin.getUserName() "!");
}
%>
</td>
<td width="1" valign="top" bgcolor="#CCCCCC"></td>
<td width="400"> </td>
<td width="1" valign="top" bgcolor="#CCCCCC"></td>
<td width="200"> </td>
</tr>
<tr align="center" bgcolor="#990000">
<td height="60" colspan="5" class="white">copyright© 2003 Shopping123</td>
</tr>
</table>
</body>
</html>
reg.jsp<%@ page contentType="text/html;charset=gb2312" pageEncoding="gb2312" %>
<html>
<head>
<title>Shopping123</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<link href="styles/shoppingstyle.css" rel="stylesheet" type="text/css">
</head>
<body bgcolor="#FFFFFF" leftmargin="0" topmargin="0">
<table width="100%" height="100%" border="0" cellpadding="0" cellspacing="0">
<tr bgcolor="#990000">
<td height="80" colspan="5"><table width="100%" height="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td width="120"> </td>
<td class="caption">Shopping123</td>
<td width="200"> </td>
</tr>
</table></td>
</tr>
<tr>
<td width="100" align="center" valign="top"> </td>
<td width="1" valign="top"></td>
<td width="400" align="center" valign="top"><table width="100%" height="20" border="0" cellpadding="0" cellspacing="0">
<tr>
<td> </td>
</tr>
</table>
<table width="100%" border="0" cellpadding="0" cellspacing="1" bgcolor="#CCCCCC">
<form action="regpost.jsp" method="post" name="form1">
<tr align="center">
<td height="30" colspan="2" bgcolor="#CCCCCC" class="deepred">会员注册</td>
</tr>
<tr>
<td width="50%" height="24" align="center" bgcolor="#FFFFFF">会员</td>
<td align="center" bgcolor="#FFFFFF"><input name="username" type="text" id="username" size="16"></td>
</tr>
<tr>
<td width="50%" height="24" align="center" bgcolor="#FFFFFF">密码</td>
<td align="center" bgcolor="#FFFFFF"><input name="password" type="password" id="password" size="16"></td>
</tr>
<tr>
<td width="50%" height="24" align="center" bgcolor="#FFFFFF">验证密码</td>
<td align="center" bgcolor="#FFFFFF"><input name="confirm" type="password" id="confirm" size="16"></td>
</tr>
<tr>
<td width="50%" height="24" align="center" bgcolor="#FFFFFF">E-mail</td>
<td align="center" bgcolor="#FFFFFF"><input name="email" type="text" id="email" size="16"></td>
</tr>
<tr>
<td width="50%" height="24" align="center" bgcolor="#FFFFFF"><input type="submit" name="Submit" value="重写"></td>
<td align="center" bgcolor="#FFFFFF"><input type="submit" name="Submit2" value="注册"></td>
</tr>
</form>
</table></td>
<td width="1" valign="top"></td>
<td width="100"> </td>
</tr>
<tr align="center" bgcolor="#990000">
<td height="60" colspan="5" class="white">copyright© 2003 Shopping123</td>
</tr>
</table>
</body>
</html>
regpost.jsp:注册表单提交页面<%@ page contentType="text/html;charset=gb2312" pageEncoding="gb2312" %>
<%@ page import="reg"%>
<html>
<head>
<title>Shopping123</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<link href="styles/shoppingstyle.css" rel="stylesheet" type="text/css">
</head>
<body bgcolor="#FFFFFF" leftmargin="0" topmargin="0">
<%
String username = new String(request.getParameter("username").getBytes("ISO8859_1")).trim();
String password = new String(request.getParameter("password").getBytes("ISO8859_1")).trim();
String confirm = new String(request.getParameter("confirm").getBytes("ISO8859_1")).trim();
String email = new String(request.getParameter("email").getBytes("ISO8859_1")).trim();
%>
<table width="100%" height="100%" border="0" cellpadding="0" cellspacing="0">
<tr bgcolor="#990000">
<td height="80" colspan="5"><table width="100%" height="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td width="120"> </td>
<td class="caption">Shopping123</td>
<td width="200"> </td>
</tr>
</table></td>
</tr>
<tr>
<td width="100" align="center" valign="top"> </td>
<td width="1" valign="top"></td>
<td width="400" align="center" valign="top">
<table width="100%" height="20" border="0" cellpadding="0" cellspacing="0">
<tr>
<td> </td>
</tr>
</table>
<jsp:useBean id="regID" class="reg" scope="session"/>
<%
if(regID.reg(username,password,confirm,email))
{
out.print("ok");
String newID = regID.getID() "";
%>
<table width="100%" border="0" cellpadding="0" cellspacing="1" bgcolor="#CCCCCC">
<tr align="center">
<td height="30" colspan="2" bgcolor="#CCCCCC" class="deepred">恭喜您,注册成功!</td>
</tr>
<tr>
<td width="50%" height="24" align="center" bgcolor="#FFFFFF">编号</td>
<td align="center" bgcolor="#FFFFFF"><%=newID%></td>
</tr>
<tr>
<td width="50%" height="24" align="center" bgcolor="#FFFFFF">会员</td>
<td align="center" bgcolor="#FFFFFF"><%=username%></td>
</tr>
<tr>
<td width="50%" height="24" align="center" bgcolor="#FFFFFF">密码</td>
<td align="center" bgcolor="#FFFFFF"><%=password%></td>
</tr>
<tr>
<td width="50%" height="24" align="center" bgcolor="#FFFFFF">E-mail</td>
<td align="center" bgcolor="#FFFFFF"><%=email%></td>
</tr>
</table>
<%
out.print("<br>");
out.print("<a href=javascript:window.close()>关闭</a>");
}else{
out.print("注册失败!<br>");
out.print("该用户名已有人使用,请使用另外的用户名!");
out.print("<a href=javascript:history.go(-1)>返回</a>");
}
%>
</td>
<td width="1" valign="top"></td>
<td width="100"> </td>
</tr>
<tr align="center" bgcolor="#990000">
<td height="60" colspan="5" class="white">copyright© 2003 Shopping123</td>
</tr>
</table>
</body>
</html>
第1页:在jsp中用bean和servlet联合实现用户注册、登录(1) 第2页:在jsp中用bean和servlet联合实现用户注册、登录(2)
© CopyRight 2008-2010, JSJGZ.CN, 计算机故障 Inc. All Rights Reserved
闽ICP备09000710号 增值电信业务经营许可证闽B2-20080004号 Rss订阅