1,注册功能,包括两个页面

zhuce.jsp注册页面

 <%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>注册页面</title> <script type="text/javascript">
//js方法,验证用户名,昵称,密码是否为空,两次密码输入是否一致
function yanzh()
{
if(form1.user.value == "")
{
alert("用户名不能为空");
return false
}
else if(form1.passw.value == "")
{
alert("密码不能为空");
return false
}
else if(form1.nich.value == "")
{
alert("昵称不能为空");
return false
}
else if(form1.passw.value != form1.passw1.value)
{
alert("两次输入密码不一致");
return false
}
else
{
return true
} } </script> </head>
<body>
<!-- 注册表单 -->
<form action="zhcchl.jsp" name="form1" id="form1" onsubmit="return yanzh()" method="post"> 请注册
<br>
用户名:<input type="text" name="user" id="user">
<br>
昵称:<input type="text" name="nich" id="nich">
<br>
密码:<input type="password" name="passw" id="passw">
<br>
确认密码:<input type="password" name="passw1" id="passw1">
<br>
<input type="submit" value="注册"> </form> </body>
</html>

zhcchl.jsp注册处理页面

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>注册处理页面</title>
</head>
<body> <% //接收用户名,密码,昵称
String user = request.getParameter("user");
String passw = request.getParameter("passw");
String nich = request.getParameter("nich"); //取用户名对应的application对象
Object obj = application.getAttribute(user); //如果没有找到用户名,跳转到错误页面
if(user == null || user.trim().length() == 0)
{
response.sendRedirect("cuowu.jsp?mes=1");
} //如果没有找到密码,跳转到错误页面
else if(passw == null || passw.trim().length() == 0)
{
response.sendRedirect("cuowu.jsp?mes=2");
} //如果没有找到昵称,跳转到错误页面
else if(nich == null || nich.trim().length() == 0)
{
response.sendRedirect("cuowu.jsp?mes=3");
} //如果用户名已存在,跳转至错误页面
else if(obj != null)
{
response.sendRedirect("cuowu.jsp?mes=4");
} else
{ //将注册信息写入application对象
application.setAttribute(user, user + "#" + nich + "#" + passw); //跳转至错误页面提示注册成功
response.sendRedirect("cuowu.jsp?mes=5");
} %> </body>
</html>

2,登录功能,包括两个页面

login.jsp登录页面

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>登录页</title> <script type="text/javascript"> //js方法验证用户名密码是否为空
function yanzh()
{
if(form1.user.value == "")
{
alert("用户名不能为空");
return false;
}
else if(form1.password.value == "")
{
alert("密码不能为空");
return false;
}
else
{
return true;
}
}
</script> </head>
<body> <!-- 登录表单 -->
<form action="logac.jsp" name="form1" id="from1" onsubmit="return yanzh()" method="post"> 请登录
<br>
用户名:<input type="text" name="user" id="user">
<br>
密码:<input type="password" name="password" id="password">
<br>
<input type="submit" value="登录"> <a href="zhuce.jsp">注册</a> </form> </body>
</html>

logac.jsp登录处理页面

 <%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>登录处理页</title>
</head>
<body> <% //接收登录表单用户名,密码
String user = request.getParameter("user");
String password = request.getParameter("password"); //如果没有收到用户名,跳转错误页面
if(user == null || user.trim().length() == 0)
{
response.sendRedirect("cuowu.jsp?mes=1");
} //如果没有收到密码,跳转错误页面
else if(password == null || password.trim().length() == 0)
{
response.sendRedirect("cuowu.jsp?mes=2");
} //
else
{ //取出用户名对应的application对象
Object o = application.getAttribute(user); //如果没找到application对象
if(o == null)
{
//跳转到错误页面
response.sendRedirect("cuowu.jsp?mes=6");
} //如果找到
else
{ //从application对象中取出昵称,密码
String inich = o.toString().split("#")[1];
String ipassw = o.toString().split("#")[2]; //判断密码如果正确
if(ipassw.trim().equals(password.trim()))
{
//登录成功输出欢迎信息
String zhnich = new String(inich.getBytes("iso-8859-1"),"utf-8");//中文乱码处理
out.print("欢迎" + zhnich + "登录!" + " <a href='liuyan.jsp'>留言</a> <a href='zhuxiao.jsp'>注销</a>"); //创建会话对象,存入昵称
session.setAttribute("user", zhnich);
} //如果密码错误,跳转错误页面
else
{
response.sendRedirect("cuowu.jsp?mes=7");
}
}
} %> </body>
</html>

3.留言功能,一个页面,liuyan.jsp

 <%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import = "java.util.*" %>
<%@ page import ="java.text.*" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>留言簿</title>
<% String userName = ""; //检查登录状态
Object o = session.getAttribute("user"); //如果会话不存在,说明登录失效,跳转错误页面
if(o == null)
{
response.sendRedirect("cuowu.jsp?mes=8");
}
//如果存在,取留言人
else
{
userName = o.toString();
} //获取表单留言
String liuyan = request.getParameter("liuyan"); //如果留言不为空
if(liuyan != null && liuyan != "")
{ String strly = new String(liuyan.getBytes("ISO-8859-1"),"utf-8"); //附加时间信息
Date dt = new Date();
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); //获取以liuyan为名称的application对象
Object obj = application.getAttribute("liuyan");
ArrayList<String> A; //如果对象为空,说明这是第一条留言,则创建集合类对象A
if(obj == null)
{
A = new ArrayList<String>();
} //如果不为空将以前的留言赋给集合A
else
{
A = (ArrayList<String>)obj;
} //将新留言信息加入集合
A.add(strly + " &nbsp;&nbsp;&nbsp;留言日期:" +df.format(dt) + " &nbsp;&nbsp;&nbsp;留言人:" + userName); //将留言集合A写入application对象
application.setAttribute("liuyan", A); } //如果没有输入留言就提交表单则刷新页面而不输出
else
{ } %> </head>
<body> 最新留言:<br><br>
<% //留言编号
int n = 1; //获取以liuyan为名称的application对象
Object obj = application.getAttribute("liuyan"); //如果不为空,遍历集合A,输出留言信息
if(obj != null)
{ ArrayList<String> A = (ArrayList<String>)obj; for(int i = A.size()-1; i >= 0; i--)
{ out.print(n + "." + A.get(i) + "<br>");
n++;
}
} %>
<form>
<br>请输入留言内容:<br>
<textarea rows=10 cols =30 name="liuyan"></textarea><br> <input type="submit" value="提交">
<br>
<a href="zhuxiao.jsp">注销</a>
</form>
</body>
</html>

4.公共页面

cuowu.jsp错误提示页面

 <%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>错误显示跳转页</title>
</head>
<body> <% //接收错误代码
String mes = request.getParameter("mes"); //如果没有收到,或者不是正整数,提示出错
if(mes == null || !(mes.matches("\\d+")))
{
out.print("请正确传递错误代码!");
}
else
{
int imes = Integer.parseInt(mes);
//根据错误代码输出相应错误信息
switch(imes)
{
case 1 :
out.print("用户名无效");
break;
case 2 :
out.print("密码无效");
break;
case 3 :
out.print("昵称无效");
break;
case 4 :
out.print("用户已存在");
break;
case 5 :
out.print("注册成功!稍后转到登录页面");
break;
case 6 :
out.print("用户不存在");
break;
case 7 :
out.print("密码错误");
break;
case 8 :
out.print("登录已失效,请重新登录");
break;
default:
out.print("无效的错误代码");
break; } }
//3秒后重定向至登录页面
response.setHeader("refresh", "3;URL=login.jsp"); %> </body>
</html>

zhuxiao.jsp注销页面

 <%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>注销处理</title>
</head>
<body>
<%
//注销会话后跳转至登录页面
session.invalidate();
response.sendRedirect("login.jsp");
%>
</body>
</html>

我的第一个jsp程序-实现注册登录留言功能的更多相关文章

  1. 编写一个JSP程序实现用户登录

    <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding= ...

  2. 第一个JSP程序

    本文介绍如何写出第一个JSP程序 1.配置服务器 (1)在eclipse中选择Server视图,(ps:很多童鞋说找不到Server,那是因为eclipse的版本问题,请下载JEE版本的eclipse ...

  3. MyEclipse配置Tomcat 并编写第一个JSP程序

    安装myeclipse之后配置tomcat服务器,在window里选择servers 选择tomcat的文件夹路径(我的是从别人那里考过来的文件夹) 选中上enable即可 出现了这个界面 在这里可以 ...

  4. Node.js基于Express框架搭建一个简单的注册登录Web功能

    这个小应用使用到了node.js  bootstrap  express  以及数据库的操作 :使用mongoose对象模型来操作 mongodb 如果没了解过的可以先去基本了解一下相关概念~ 首先注 ...

  5. DHTMLX 前端框架 建立你的一个应用程序 教程(七)-- 添加筛选功能

    表格的过滤筛选 我们在每列第一行添加一个文本,用做数据的条件筛选. 我们还提供服务端的筛选 ,当有大量数据时 , 我们可以使用dhtmlxConnector 进行后台数据的筛选. 添加过滤器到表格列中 ...

  6. 第一个web程序(web.xml , ServletConfig , ServletContext)

    一:第一个jsp程序 1.项目设计结构 2.新建Person.java package com.java.demo; public class Person { public void printSt ...

  7. 二、Tomcat配置以及IDEA运行第一个Jsp项目——JavaWeb点滴

    一.Tomcat配置环境变量 tomcat从官网下载最新的即可,本人下载的是安装版本.在安装过程中需要设置用户名和密码以及选择相应的JDK的安装目录.这些都比较简单直接下一步即可,安装完成之后就是配置 ...

  8. JAVA-一个简单的JSP程序(HelloWorld)

    相关资料: <21天学通Java Web开发> 实例代码: 1.在虚拟目录下新建一个“HeoolWorld.jsp”文件.2.“HeoolWorld.jsp”文件内容如下: <htm ...

  9. JSP注册登录页教程

    转载请标明原文地址:http://www.cnblogs.com/zhangyukof/p/6785258.html  一.准备工作 已搭建好的SSH框架工程一个,如果没有,请参考我的上一篇文章< ...

随机推荐

  1. MMORPG大型游戏设计与开发(客户端架构 part4 of vegine)

    昨天是七夕,祝大家都过的快乐,希望这句迟到的问候不会造成大家心中的困扰.这一节讲到了前端比较重要的模块,性能以及调试异常模块.一个应用的性能往往是最核心的部分,就像人身体的各个器官一样,一小部分也不能 ...

  2. AngularJs定制样式插入到ueditor中的问题总结

    总结一下自己给编辑器定制样式的过程中所遇到的问题,主要是编辑器的二次开发接口,以及用angular定制样式,问题不少,终于在**的帮助下,完成了,还剩下老版本和新版本的交互没有弄好,不过不难.下面分别 ...

  3. Vijos1019 补丁VS错误[最短路 状态压缩]

      描述 错误就是人们所说的Bug.用户在使用软件时总是希望其错误越少越好,最好是没有错误的.但是推出一个没有错误的软件几乎不可能,所以很多软件公司都在疯狂地发放补丁(有时这种补丁甚至是收费的).T公 ...

  4. 洛谷八月月赛Round1凄惨记

    个人背景: 上午9:30放学,然后因为学校举办读书工程跟同学去书城选书,中午回来开始打比赛,下午又回老家,中间抽出一点时间调代码,回家已经8:50了 也许是7月月赛时“连蒙带骗”AK的太幸运然而因同学 ...

  5. ORACLE临时表总结(转载)

    转载地址:http://www.cnblogs.com/kerrycode/p/3285936.html 临时表概念 临时表就是用来暂时保存临时数据(亦或叫中间数据)的一个数据库对象,它和普通表有些类 ...

  6. 在VisualStudio2013,2015中如何安装自定义项目模板

    For example, I want to install EP prj template: AxWebProject.zip Copy AxWebProject.zip zip file into ...

  7. 解决MWPhotoBrowser中的SDWebImage加载大图导致的内存警告问题

    下面两种现象,用同一种方法解决 1.解决MWPhotoBrowser中的SDWebImage加载大图导致的内存警告问题 2.突然有一天首页访问图片很慢,至少隔20多秒所有图片才会出来.(解析:app使 ...

  8. 采用dlopen、dlsym、dlclose加载动态链接库【总结】(转)

    1.前言 为了使程序方便扩展,具备通用性,可以采用插件形式.采用异步事件驱动模型,保证主程序逻辑不变,将各个业务已动态链接库的形式加载进来,这就是所谓的插件.linux提供了加载和处理动态链接库的系统 ...

  9. android values目录的读取优先级

    android项目新建时会有一个values目录(高版本会增加values-v11,values-v14目录),该目录用于存放显示相的配置数据的定义文件,如strings.xml, style.xml ...

  10. 微信小程序 开发 微信开发者工具 快捷键

    微信小程序已经跑起来了.快捷键设置找了好久没找到,完全凭感觉.图贴出来.大家看看. 我现在用的是0.10.101100的版本,后续版本更新快捷键也应该不会有什么变化. 现在貌似不能修改.如果有同学找到 ...