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. json与jsonp小结

    json 1. json 的值可以是下面这些类型: ① 数字(整数或浮点数),比如123,1.23 ② 字符串(在双引号中) ③ 逻辑值(true 或 false) ④ 数组(在方括号中) ⑤ 对象( ...

  2. 【原】webapp开发中兼容Android4.0以下版本的css hack

    话说现在的手机型号越来越多,主要还是android和ios这2个巨头称霸了江湖,而他们自带的浏览器内核是webkit,那对于做移动网页开发的同事来说,一般只要做好webkit内核浏览器的展现效果就行了 ...

  3. 《2016ThoughtWorks技术雷达峰会----雷达新趋势》

    雷达新趋势    徐昊,ThoughtWorks中国区CTO 1.Open Source  open source 已经从一个简简单单的软件代码组织方式变成一种文化,一种运动.当谈到Open Sour ...

  4. 关于数组的map、reduce、filter

    map:map()方法定义在Array中,传入自己的参数,就得到一个新的Array作为结果 var aqiData = [ ["北京", 90], ["上海", ...

  5. java之多线程之一/序列化和反序列化

    线程安全: 如何自己手动创建一个线程 答:继承Thread类或实现Runnable接口 public class Mythread extends Thread{ @Override public v ...

  6. Nginx反向代理、负载均衡、页面缓存、URL重写及读写分离详解

    大纲 一.前言 二.环境准备 三.安装与配置Nginx 四.Nginx之反向代理 五.Nginx之负载均衡 六.Nginx之页面缓存 七.Nginx之URL重写 八.Nginx之读写分离 注,操作系统 ...

  7. 关于oracle with as用法

    with as语法–针对一个别名with tmp as (select * from tb_name) –针对多个别名with   tmp as (select * from tb_name),   ...

  8. Java多态:upcast和downcast

    upcast例: public class Test { public static void main(String[] args) { Cup aCup = new BrokenCup(); aC ...

  9. AlwaysOn Group Listener

    1.Listener是什么 Listener实际上是一个 VirtualNetworkName,客户端通过这个VNN来连接的具体的sqlserver实例 .Listener包含了DNS名称,port和 ...

  10. HAXM VT-X (与Hype-V冲突)

    之前一直使用vs emulator. 感觉性能各方面都比较好, 但在我更新完电脑后不知道什么原因各种起不来...  无奈之下想回到Google自带的模拟器. 然后发现intel haxm一直安装失败. ...