Servlet作业1-实现注册登录
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-实现注册登录的更多相关文章
- JavaWeb_利用Servlet处理注册登录请求
利用Servlet处理注册登录请求 程序结构 <%@page import="com.Gary.model.User"%> <%@ page language=& ...
- JavaWeb笔记——注册登录系统项目思路
功能: > 注册 > 登录 --------------------------------- JSP: * login.jsp --> 登录表单 * regist ...
- 注册登录系统项目思路 -- javaweb
功能: > 注册 > 登录 --------------------------------- JSP: * login.jsp --> 登录表单 * re ...
- SpringBoot注册登录(三):注册--验证账号密码是否符合格式及后台完成注册功能
SpringBoot注册登录(一):User表的设计点击打开链接SpringBoot注册登录(二):注册---验证码kaptcha的实现点击打开链接 SpringBoot注册登录(三):注册 ...
- Android:注册登录
注册登录的实现 先在layout里新建一个xml文件: //login.xml <?xml version="1.0" encoding="utf-8"? ...
- 巨蟒django之CRM1 需求分析&&表结构设计&&注册登录验证
1.需求分析 .项目 ()业务 ()权限的管理 .CRM customer relationship management 客户关系管理系统 .谁来使用CRM? 销售&&班主任& ...
- JSP注册登录页教程
转载请标明原文地址:http://www.cnblogs.com/zhangyukof/p/6785258.html 一.准备工作 已搭建好的SSH框架工程一个,如果没有,请参考我的上一篇文章< ...
- 基于javaweb人脸识别注册登录系统
---恢复内容开始--- 现在是2019年,人脸识别技术已经相当成熟了,百度自2017年发布人脸识别技术,已经被广泛应用,不管从现在的iphoneX掀起的面部解锁到手机应用端的各种人脸认证,这一技术已 ...
- SpringBoot + Vue + ElementUI 实现后台管理系统模板 -- 后端篇(五): 数据表设计、使用 jwt、redis、sms 工具类完善注册登录逻辑
(1) 相关博文地址: SpringBoot + Vue + ElementUI 实现后台管理系统模板 -- 前端篇(一):搭建基本环境:https://www.cnblogs.com/l-y-h/p ...
随机推荐
- LeetCode 笔记系列六 Reverse Nodes in k-Group [学习如何逆转一个单链表]
题目:Given a linked list, reverse the nodes of a linked list k at a time and return its modified list. ...
- BeJavaGod - 如何正确使用数据字典进行分类统一操作(一)
先说说什么是数据字典,这个玩意一般不太会解释,举个栗子吧~ 每个系统都会有用户表,性别:男(1)女(0) 另外我们做物流的会涉及到车型:卡车(1),轿车(2),挂车(3) 货物类型:危险品(1),普通 ...
- 1.使用using释放资源
using语句有二个关键字 >>作为关键字,using可以导入命名空间 >>作为C#语句,using可以释放对象占用的内存资源 语法: using(SqlConnection ...
- 用javascript实现html元素的增删查改[xyytit]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- Zygote浅谈
Zygote是什么 操作系统中,进程实际上是文件到地址空间的映射像.进程将要运行时,由操作系统将其映射到地址空间,完成这项工作的事物本质也应是一个进程,我们称这个进程为孵化进程,那么这个进程怎么收到消 ...
- css的小问题总结
1.居中问题 比如让宽度为60%的<div class="box">居中,可以再.box里面设置margin:auto 2.高度固定的div里面有两个子类div且高度和 ...
- git删除分支|查看分支动态
git不能在当前分支下删除你当前所在的分支,比如你要删除new分支,而现在正在处于new分支下,则执行git branch -d new的时候会报错 error: Cannot delete bran ...
- React 学习笔记(一)
React + es6 一.createClass 与 component 的区别 The API (via 'extends React.Component') is similar to Reac ...
- 4809 江哥的dp题c
4809 江哥的dp题c 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题解 题目描述 Description 有两个数x,y,一开始x=1,y= ...
- BZOJ 2957 楼房重建
Description 小A的楼房外有一大片施工工地,工地上有N栋待建的楼房.每天,这片工地上的房子拆了又建.建了又拆.他经常无聊地看着窗外发呆,数自己能够看到多少栋房子. 为了简化问题,我们考虑这些 ...