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. Remove Duplicates From Sorted Array

    Remove Duplicates from Sorted Array LeetCode OJ Given a sorted array, remove the duplicates in place ...

  2. 第10章 同步设备I/O和异步设备I/O(2)_同步IO和异步IO基础

    10.3 执行同步设备I/O (1)对设备读写操作的函数 ①ReadFile/WriteFile函数 参数 描述 hFile 文件句柄 pvBuffer 指向要接收文件数据的缓冲区或把缓冲区数据写入设 ...

  3. AC日记——鬼谷子的钱袋 codevs 2998

    2998 鬼谷子的钱袋 2006年省队选拔赛湖南  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 大师 Master    题目描述 Description 鬼谷子非常聪明,正 ...

  4. Ac日记——大整数减法 openjudge 1.6 11

    11:大整数减法 总时间限制:  1000ms 内存限制:  65536kB 描述 求两个大的正整数相减的差. 输入 共2行,第1行是被减数a,第2行是减数b(a > b).每个大整数不超过20 ...

  5. C#类型转换运算符之 explicit implicit

    类型转换运算符 explicit和implicit用于声明用户定义的类型转换运算符,如果可以确保转换过程不会造成数据丢失,则可使用这两个关键字在用户定义的类型和其他类型之间进行转换. explicit ...

  6. 如何在CTF中当搅屎棍

    论如何在CTF比赛中搅屎 0×00 前言 不能搅屎的CTF不是好CTF,不能搅屎的题目不是好题目. 我很赞成phithon神的一句话,"比赛就是和他人竞争的过程,通过各种手段阻止对手拿分我觉 ...

  7. 各种AJAX方法的使用比较

    转:http://www.cnblogs.com/fish-li/archive/2013/01/13/2858599.html#_label6 AJAX技术经过这么多年的发展,出现了一些框架或类库用 ...

  8. Vs 2015 调试ASP.NET Core修改监听端口

    如何改变监听IP地址和端口?在这里找到了答案:https://github.com/aspnet/KestrelHttpSer... 把Program.cs加一行UseUrls代码如下: using ...

  9. C# 断点续传原理与实现

    在了解HTTP断点续传的原理之前,让我们先来了解一下HTTP协议,HTTP协议是一种基于tcp的简单协议,分为请求和回复两种.请求协议是由 客户机(浏览器)向服务器(WEB SERVER)提交请求时发 ...

  10. java:如何用代码控制H2 Database启动

    1.纯手动start/stop package com.cnblogs.yjmyzz.h2; import java.sql.Connection; import java.sql.DriverMan ...