************ 本文允许装载,但请注明出处http://blog.csdn.net/island20***********
学习java web应用已经快有一个月了,基本上已经掌握了一些基本的皮毛。所以一个阶段性的小编成实战就是必须的了。
为了便于对知识的巩固,所以决定选取一个比较简单的基于MVC模式的网站用户认证实例。
这个小的应用主要用到了JSP+Servlet+JavaBean+Filter+JSTL
我的运行环境仍然是eclipse3.2+tomcat5.5+jdk1.5+mysql4.1
废话一下:
JSP主要是用于做页面展示的,javabean主要是用来为数据库访问做服务的,而servlet主要就是处理请求,页面转发之类的。
详细的应用,我们在设计到的时候会说明的。
好了,开始动手!
首先是做一个验证用户的数据库。用于存储用户名及密码。
sql代码如下:
(为了便于操作我们访问数据库所使用的是root用户,密码设定为1234)
----------------------------------------------------------
use mysql
create database new_db;
create table user
(
username varchar(24)
primary key,
password varchar(20)
);
insert into user values ('island','Mobile');
insert into user values ('bodao051','871016');
----------------------------------------------------------
好了数据库已经建好了
我们可以试着查询一下看看数据库是否正确
----------------------------------------------------------
use mysql;
use new_db;
select * from user;
----------------------------------------------------------
确定自己的数据库成功建立之后,就开始后面的工作了。
首先我们需要一个前端的展示。我们采用JSP。
我们默认index.jsp为首页。而login.jsp为页面用来展示登陆的标单。
我们采用这样的模式来处理用户的登陆的判断:
首先页面welcome-file是设置为index.jsp。这个页面里面包含了一个认证是否成功登陆的JSTL代码,判断的方法就是如果user的session范围的对象是空的话,转发至login.jsp进行登陆。如果不为空则显示已经成功登陆。
index.jsp的代码如下:
---------------------------------------------------------
index.jsp
---------------------------------------------------------
<%@page contentType="text/html; charset=GBK"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<c:set var="user" value="${sessionScope.user}"/>
<html>
<head>
<title>index</title>
</head>
<body>
<center>
<h1>用户管理</h1>
<br/>
<c:if test="${empty user}">对不起,您还未登录!请点击<a href="pagecontrol?action=out">这里</a>登陆。</c:if>
<c:if test="${!empty user.userName}">
<p><b>${user.userName}</b> 用户,您好,您已经登陆本站! </p>
<p>若重新登录,请<a href="pagecontrol?action=out">注销</a></p>
</c:if>
</center>
</body>
</html>
---------------------------------------------------------
这段代码中涉及到这么一句代码
<a href="pagecontrol?action=out">
这个index.jsp的精华所在。
这个链接是和一个叫做CheckServlet.java的servlet相连的。这个servlet的作用就是用来处理Http的请求即验证用户是否输入正确的。稍后会重点介绍。
接着我们再作一个login.jsp用来进行用户的表单的登陆。
为了简单起见我们只作一个比较简单的页面。
代码如下:
----------------------------------------------------------
index.jsp
----------------------------------------------------------
<%@page contentType="text/html; charset=GBK"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<html>
<head>
<title>login</title>
<script language="JavaScript1.2">
function submitForm(theForm)
{
if(theForm.username.value==""){
alert("请输入用户名");
theForm.username.focus();
return false;
}else if(theForm.password.value==""){
alert("请输入密码");
theForm.password.focus();
return false;
}else return true;
}
</script>
</head>
<body bgcolor="#ffffff">
<center>
<h1>登录页面</h1>
<form name="form1" method="post" action="checkservlet" οnsubmit="javascript:return submitForm(this);">
<br>
<br>
<table align="center">
<tr><td>用户名</td><td><input type="text" name="username" value=""/></td></tr>
<tr><td>密码</td><td><input type="password" name="password" value=""/></td></tr>
<tr>
<td>
<input type="submit" name="Submit" value="登陆">
<input type="reset" value="重置">
</td>
</tr>
</table>
</form>
</center>
</body>
</html>
----------------------------------------------------------
从这句代码中
<form name="form1" method="post" action="checkservlet" οnsubmit="javascript:return submitForm(this);">
我们可以看出,表单的结果是以post的方式提交到checkservlet的
。
到这里我们的展示基本上已经结束,可以得到展示层都和checkservlet这个文件有着很大的关系。我们下一步的任务就是搞清楚checkservlet的用途和怎么写这个servlet。