1,注册功能

注册页面zhuce.html

 <!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" 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>

注册处理Servlet: Zhcchl.java

 package com.hanqi;

 import java.io.IOException;

 import javax.servlet.ServletContext;
import javax.servlet.ServletException; import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.hanqi.*; /**
* Servlet implementation class Zhcchl
*/
public class Zhcchl extends HttpServlet {
private static final long serialVersionUID = 1L; /**
* @see HttpServlet#HttpServlet()
*/
public Zhcchl() {
super();
// TODO Auto-generated constructor stub
} /**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//解决中文乱码
response.setCharacterEncoding("GBK");
//request.setCharacterEncoding("GBK");
//response.setContentType("text/html;charset=GBK"); // 接收表单提交信息
String user = request.getParameter("user");
String nich = request.getParameter("nich");
String passw = request.getParameter("passw"); //判断接收信息合法性
if(user == null || user.trim().length() == 0)
{
response.getWriter().append("用户名不能为空");
response.setHeader("refresh", "3;URL=zhuce.html");
}
else if(nich == null || nich.trim().length() == 0)
{
response.getWriter().append("昵称不能为空");
response.setHeader("refresh", "3;URL=zhuce.html");
}
else if(passw == null || passw.trim().length() == 0)
{
response.getWriter().append("密码不能为空");
response.setHeader("refresh", "3;URL=zhuce.html");
}
else
{
ServletContext application = this.getServletContext(); if(application.getAttribute(user) != null)
{
response.getWriter().append("用户已存在");
response.setHeader("refresh", "3;URL=zhuce.html"); }
else
{
//实例化Zhcxx类
Zhcxx zc = new Zhcxx();
//将信息存入zc对象
zc.setUser(user);
zc.setNich(nich);
zc.setPassw(passw); //将用户注册信息写入application application.setAttribute(user, zc); response.getWriter().append("注册成功"); response.setHeader("refresh", "3;URL=index.html");
}
}
//response.getWriter().append("Served at: ").append(request.getContextPath());
} /**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
} }

自定义存储用户注册信息的类:Zhcxx.java

 package com.hanqi;

 public class Zhcxx {

     private String user;

     public String getUser() {
return user;
} public void setUser(String user) {
this.user = user;
} private String nich;
public String getNich() {
return nich;
} public void setNich(String nich) {
this.nich = nich;
} private String passw;
public String getPassw() {
return passw;
} public void setPassw(String passw) {
this.passw = passw;
} }

2登录功能

登录页面index.html

 <!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" 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.html">注册</a>
</form> </body>
</html>

登录处理Servlet:logac.java

 package com.hanqi;

 import java.io.IOException;

 import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; /**
* Servlet implementation class Logac
*/
public class Logac extends HttpServlet {
private static final long serialVersionUID = 1L; /**
* @see HttpServlet#HttpServlet()
*/
public Logac() {
super();
// TODO Auto-generated constructor stub
} /**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// 指定中文字符集
response.setCharacterEncoding("GBK");
//request.setCharacterEncoding("GBK");
//response.setContentType("text/html;charset=GBK");
//接收表单信息
String user = request.getParameter("user"); String passw = request.getParameter("password"); //判断获取信息合法性
if(user == null || user.trim().length() == 0)
{
response.getWriter().append("用户名非法");
response.setHeader("refresh", "3;URL=index.html");
}
else if(passw == null || passw.trim().length() == 0)
{
response.getWriter().append("密码非法");
response.setHeader("refresh", "3;URL=index.html");
}
else
{
//创建application对象
ServletContext application = this.getServletContext();
//取出以user为名存储的对象
Object obj = application.getAttribute(user);
//如果对象不存在说明用户名不存在
if(obj == null)
{
response.getWriter().append("用户名不存在");
response.setHeader("refresh", "3;URL=index.html");
}
else
{
//实例化Zhcxx
Zhcxx zhc = (Zhcxx)obj;
//从zhc对象取出密码,昵称
String ipsw = zhc.getPassw();
String inch = new String(zhc.getNich().getBytes("ISO-8859-1"),"UTF-8");
//判断密码是否正确
if(passw.trim().equals(ipsw.trim()))
{
response.getWriter().println("欢迎" + inch +"登录");
}
else
{
response.getWriter().println("密码错误");
            response.setHeader("refresh", "3;URL=index.html");
}
}
} //response.getWriter().append("Served at: ").append(request.getContextPath());
} /**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
} }

Servlet作业1-实现注册登录的更多相关文章

  1. JavaWeb_利用Servlet处理注册登录请求

    利用Servlet处理注册登录请求 程序结构 <%@page import="com.Gary.model.User"%> <%@ page language=& ...

  2. JavaWeb笔记——注册登录系统项目思路

    功能:   > 注册   > 登录 --------------------------------- JSP:   * login.jsp  --> 登录表单   * regist ...

  3. 注册登录系统项目思路 -- javaweb

    功能:   > 注册   > 登录   ---------------------------------   JSP:   * login.jsp  --> 登录表单   * re ...

  4. SpringBoot注册登录(三):注册--验证账号密码是否符合格式及后台完成注册功能

    SpringBoot注册登录(一):User表的设计点击打开链接SpringBoot注册登录(二):注册---验证码kaptcha的实现点击打开链接      SpringBoot注册登录(三):注册 ...

  5. Android:注册登录

    注册登录的实现 先在layout里新建一个xml文件: //login.xml <?xml version="1.0" encoding="utf-8"? ...

  6. 巨蟒django之CRM1 需求分析&&表结构设计&&注册登录验证

    1.需求分析 .项目 ()业务 ()权限的管理 .CRM customer relationship management 客户关系管理系统 .谁来使用CRM? 销售&&班主任& ...

  7. JSP注册登录页教程

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

  8. 基于javaweb人脸识别注册登录系统

    ---恢复内容开始--- 现在是2019年,人脸识别技术已经相当成熟了,百度自2017年发布人脸识别技术,已经被广泛应用,不管从现在的iphoneX掀起的面部解锁到手机应用端的各种人脸认证,这一技术已 ...

  9. SpringBoot + Vue + ElementUI 实现后台管理系统模板 -- 后端篇(五): 数据表设计、使用 jwt、redis、sms 工具类完善注册登录逻辑

    (1) 相关博文地址: SpringBoot + Vue + ElementUI 实现后台管理系统模板 -- 前端篇(一):搭建基本环境:https://www.cnblogs.com/l-y-h/p ...

随机推荐

  1. java设计模式之抽象工厂模式

    上一篇文章(http://www.cnblogs.com/liaoweipeng/p/5768197.html)讲了简单工厂模式,但是简单工厂模式存在一定的问题,如果想要拓展程序,必须对工厂类进行修改 ...

  2. Java开发之Servlet之间的跳转

    一.转向(Forward) 1.要点说明 转向是通过RequestDispatcher对象的forward()方法来实现的.RequestDispatcher可以通过HttpServletReques ...

  3. ExtJs4 笔记(14) layout 布局

    作者:李盼(Lipan)出处:[Lipan] (http://www.cnblogs.com/lipan/)版权声明:本文的版权归作者与博客园共有.转载时须注明本文的详细链接,否则作者将保留追究其法律 ...

  4. Android驱动入门-LED--HAL硬件访问服务层②

    硬件平台: FriendlyARM Tiny4412 Cortex-A9 操作系统: UBUNTU 14.04 LTS 时间:2016-09-21  16:58:56 为了避免访问冲突,则创建了硬件访 ...

  5. noip模拟赛(一)魔法树

    魔法树 (mahou.pas/c/cpp) [问题描述] 魔法使moreD在研究一棵魔法树. 魔法树顾名思义,这货是一棵树,奇葩的是魔法树上的每一条边都拥有一个魔法属性,如果不那么奇葩就不是moreD ...

  6. MMDrawerController的使用

    1.http://www.jianshu.com/p/9e55cbf7d5ab  MMDrawerController的使用

  7. background-size背景缩放

    特别注意:背景图片缩放是相对于背景图片所在容器的宽高而言的,并不是相对背景图片本身的宽高 比如,一个div的宽高是300和200像素,背景图片本身的宽高是100*100的像素,设置div的backgr ...

  8. C语言:void指针

    使用前必须进行强制类型转换 #include <stdio.h> void test(const void *p); int main(){ ; int *p = &i; puts ...

  9. 未能正确加载包“Microsoft.Data.Entity.Design.Package.MicrosoftDataEntityDesignPackage

    本文出处:http://blog.sina.com.cn/s/blog_6fe3efa301016i64.html vs 2005 ,vs 2008, vs 2010,安装后有时出现这个错误(我的机器 ...

  10. NOIP2016提高组解题报告

    NOIP2016提高组解题报告 更正:NOIP day1 T2天天爱跑步 解题思路见代码. NOIP2016代码整合