没有美化,没有格式,没有样式

1.JSP登陆注册

将用户注册的信息保存在application对象中,用于登录时的验证。

首页如下:

如果未登录,在  session 中找不到 currentUser 的值,则直接跳转到其他页面。

<%@ 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>
<!-- 用于验证是否登录,如果没有登陆则不能访问该页面,并跳转到登录页面 -->
<%
    Object obj = session.getAttribute("currentUser");
    if (obj == null) {
        response.sendRedirect("login.jsp");
    }
%>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Insert title here</title>
</head>
<body>
    <h1>这是一个首页 !</h1>
</body>
</html>

注册页面如下:

<%@ 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>Insert title here</title>
</head>
<body>
    <form action="operation.jsp" method="post">
        <input type="hidden" name="sub_type" value="reg" />
        <input type="text" name="username" placeholder="输入用户名" />
        <input type="password" name="password" placeholder="输入密码" />
        <input type="password" name="password1" placeholder="确认密码" />
        <input type="submit" value="注册" /><a href="login.jsp">返回登陆</a>
    </form>
</body>
</html>

登录页面如下:

<%@ 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>Insert title here</title>
</head>
<body>
    <form action="operation.jsp" method="post">
        <input type="hidden" name="sub_type" value="log" />
        <input type="text" name="username" placeholder="输入用户名" />
        <input type="password" name="password" placeholder="输入密码" />
        <input type="submit" value="登录" /><a href="register.jsp">注册新用户</a>
    </form>
</body>
</html>

用户类,用于存放用户信息:

仅有用户名和代码两个属性。

package test;

public class User {
    private String username;
    private String password;

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }
    @Override
    public String toString() {
        return "User [username=" + username + ", password=" + password + "]";
    }

}

逻辑控制页面如下:

首先根据给登录页面和注册页面设置的隐藏的 sub_type 属性判断是登录还是注册,然后进行相应的判断。

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ page import="test.User"%>
<%
    //获取请求的信息
    String sub_type = request.getParameter("sub_type");
    String username = request.getParameter("username");
    String password = request.getParameter("password");
    String password1 = request.getParameter("password1");

    //判断是登录页面还是注册页面
    if("reg".equals(sub_type)) {
        if (!password.equals(password1)) {
            out.print("两次输入的密码不一致 !");
        } else {
            Object obj = application.getAttribute(username);
            if (obj != null) {        //用传来的用户名找用户,如果不为空则用户已存在
                out.print("用户名已经存在 !");
            } else {
                User user = new User();        //实例化一个用户并设置信息
                user.setUsername(username);
                user.setPassword(password);
                application.setAttribute(username, user);
                out.print("注册成功 !");
            }
        }
    }
    if("log".equals(sub_type)) {
        Object obj = application.getAttribute(username);
        if(obj!=null) {
            User u = (User)obj;//将获取到的对象强转型,然后获取信息进行判断
            if(password.equals(u.getPassword())) {
                session.setAttribute("currentUser", u);
                response.sendRedirect("index.jsp");
            } else {
                out.print("密码不对啊 !");
            }

        } else {
            out.print("用户名不存在 !");
        }
    }
    out.print("<br>");
    out.print("<a href='login.jsp'>跳转登陆</a>");
%>

2.记事本:

在用户登录注册的基础上进行修改,登陆后的用户可以在记事本留言,其他用户登录后可以看到,按照时间倒序排序,可以看到用户名,留言信息,留言时间。

添加一个留言类, Says类,有 用户,留言时间,留言内容三个属性。

主页如下,除了判断登录用户,设置 utf-8 之外,还有注意输出的时候先倒序,遍历输出之后再次倒序。

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8" import="test.Says,test.User,java.util.*"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<%

    Object obj1 = session.getAttribute("currentUser");
    if (obj1 == null) {
        response.sendRedirect("denglu.jsp");
    }
%>
<%
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
%>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>

    <form action="chuli.jsp" method="post">
        <input type="hidden" name="sub_type" value="tex" />
        <textarea rows="4" cols="12" name="text"></textarea>
        <input type="submit" value="提交">
    </form>
    <%

        Object obj=application.getAttribute("s");

        if(obj!=null){
            ArrayList<Says> list=(ArrayList)obj;

            Collections.reverse(list);//倒序,以保证后写入的内容排在上边

            for(Says say : list){
                out.print(say.getUname()+"&nbsp;&nbsp;"+"|"+"&nbsp;&nbsp;");
                out.print(say.getDate()+"<br>");
                out.print(say.getSays()+"<br>");

            }
            Collections.reverse(list);//再次倒序,否则输出的后会出问题
        }

    %>
</body>
</html>

注册:

<%@ 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>Insert title here</title>
</head>
<body>
    <form action="chuli.jsp" method="post">
        <input type="hidden" name="sub_type" value="reg" />
        <input type="text" name="username" placeholder="输入用户名" />
        <input type="password" name="password" placeholder="输入密码" />
        <input type="password" name="password1" placeholder="确认密码" />
        <input type="submit" value="注册" /><a href="denglu.jsp">返回登陆</a>
    </form>
</body>
</html>

登录:

<%@ 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>Insert title here</title>
</head>
<body>
    <form action="chuli.jsp" method="post">
        <input type="hidden" name="sub_type" value="log" />
        <input type="text" name="username" placeholder="输入用户名" />
        <input type="password" name="password" placeholder="输入密码" />
        <input type="submit" value="登录" /><a href="zhuce.jsp">注册新用户</a>
    </form>
</body>
</html>

用户类:

package test;

public class User {
    private String username;
    private String password;

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

}

留言类:

package test;

import java.util.Date;

public class Says {
    private String uname;//暂无用
    private String date;
    private String says;
    public String getUname() {
        return uname;
    }
    public void setUname(String uname) {
        this.uname = uname;
    }
    public String getDate() {
        return date;
    }
    public void setDate(String date) {
        this.date = date;
    }
    public String getSays() {
        return says;
    }
    public void setSays(String says) {
        this.says = says;
    }
    @Override
    public String toString() {
        return "Says [uname=" + uname + ", date=" + date + ", says=" + says + "]";
    }
}

逻辑处理:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8" import="test.Says,test.User,java.util.*"%>
    <%
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
%>
<%

    String sub_type = request.getParameter("sub_type");

    String password = request.getParameter("password");
    String password1 = request.getParameter("password1");
    Says says=new Says();

    if("reg".equals(sub_type)) {

        String username = request.getParameter("username");
        System.out.println(username);
        if (!password.equals(password1)) {
            out.print("两次输入的密码不一致 !");
        } else {
            Object obj = application.getAttribute(username);
            if (obj != null) {
                out.print("用户名已经存在 !");
            } else {
                User user = new User();
                user.setUsername(username);
                user.setPassword(password);
                application.setAttribute(username, user);
                out.print("注册成功 !");
            }
        }
        out.print("<br>");
        out.print("<a href='denglu.jsp'>跳转登陆</a>");
    }
    if("log".equals(sub_type)) {
        String username = request.getParameter("username");
        System.out.println(username);
        application.setAttribute("name",username);
        Object obj = application.getAttribute(username);
        if(obj!=null) {
            User u = (User)obj;
            if(password.equals(u.getPassword())) {
                session.setAttribute("currentUser", u);
                //String name=u.getUsername();
                //application.setAttribute("name",name);
                response.sendRedirect("main.jsp");
            } else {
                out.print("密码不对啊 !");
            }

        } else {
            out.print("用户名不存在 !");
        }
        out.print("<br>");
        out.print("<a href='denglu.jsp'>跳转登陆</a>");
    }
    if("tex".equals(sub_type)){
        String say = request.getParameter("text");

        Date d=new Date();
        Object sobj=application.getAttribute("name");//获取用户名
        String sname=(String)sobj;

        System.out.println(sname);
        says.setUname(sname);
        says.setSays(say);
        says.setDate(d.toLocaleString());
        Object obj=application.getAttribute("s");

        if(obj==null){
            List list =new ArrayList();
            list.add(says);
            application.setAttribute("s",list);
        }else{
            List<Says> list=(List)obj;
            list.add(says);
            application.setAttribute("s",list);
        }
        response.sendRedirect("main.jsp");
    }

%>

纯JSP实现用户登录注册,记事本的更多相关文章

  1. javaweb学习总结(二十二)——基于Servlet+JSP+JavaBean开发模式的用户登录注册

    一.Servlet+JSP+JavaBean开发模式(MVC)介绍 Servlet+JSP+JavaBean模式(MVC)适合开发复杂的web应用,在这种模式下,servlet负责处理用户请求,jsp ...

  2. JavaWeb学习 (二十一)————基于Servlet+JSP+JavaBean开发模式的用户登录注册

    一.Servlet+JSP+JavaBean开发模式(MVC)介绍 Servlet+JSP+JavaBean模式(MVC)适合开发复杂的web应用,在这种模式下,servlet负责处理用户请求,jsp ...

  3. 基于Servlet+JSP+JavaBean开发模式的用户登录注册

    http://www.cnblogs.com/xdp-gacl/p/3902537.html 一.Servlet+JSP+JavaBean开发模式(MVC)介绍 Servlet+JSP+JavaBea ...

  4. javaweb(二十二)——基于Servlet+JSP+JavaBean开发模式的用户登录注册

    一.Servlet+JSP+JavaBean开发模式(MVC)介绍 Servlet+JSP+JavaBean模式(MVC)适合开发复杂的web应用,在这种模式下,servlet负责处理用户请求,jsp ...

  5. JavaWeb实现用户登录注册功能实例代码(基于Servlet+JSP+JavaBean模式)

    一.Servlet+JSP+JavaBean开发模式(MVC)介绍 Servlet+JSP+JavaBean模式(MVC)适合开发复杂的web应用,在这种模式下,servlet负责处理用户请求,jsp ...

  6. Java Spring+Mysql+Mybatis 实现用户登录注册功能

    前言: 最近在学习Java的编程,前辈让我写一个包含数据库和前端的用户登录功能,通过看博客等我先是写了一个最基础的servlet+jsp,再到后来开始用maven进行编程,最终的完成版是一个 Spri ...

  7. 使用JSP实现用户登录

    本文讲述使用JSP实现用户登录,包括用户登录.注册和退出功能等. 1.系统用例图 2.页面流程图 3.数据库设计 本例使用oracle数据库 创建用户表 包括id,username,password和 ...

  8. JavaWeb_(session和application)用户登录注册模板_进阶版

    用户登录注册模板_基础版 传送门 用户登录注册模板进阶版 添加了获得获得当前登录用户信息及存储登录人数 用户登录后,在首页.注册页.登录页显示登录用户信息和存储登录人数信息 目录结构 <%@pa ...

  9. JavaWeb_(request和response)用户登录注册模板_基础版

    用户登录注册模板进阶版 传送门 用户登录注册模板基础版 登录:当用户登录成功时,跳转到personCenter.jsp,当用户登录失败时,跳转到login.jsp并给出提示 注册:当用户注册成功时,跳 ...

随机推荐

  1. Sass控制命令及函数知识整理

    2017-07-07  20:17:17 最底部附结构图(实在是结构图太长了没办法) 2017-06-22  09:11:43 一.Sass的控制命令 1.@if语句 @if 指令是一个 SassSc ...

  2. 一次C++调试记录

         之前开发用Linux C比较多,C++中的STL 容器基本没有接触过.最近在学习C++,平时用到c++ 17中的部分新特性,下面就简单分享下自己C++的学习流程. 一.环境搭建      本 ...

  3. Spark Standalone Mode Configuration

    For currently popular distributed framework Spark, here is the intro and step to configure the spark ...

  4. java IO之 编码 (码表 编码 解码 转换流)

    编码 什么是编码? 计算机中存储的都是二进制,但是要显示的时候,就是我们看到的却可以有中国 ,a  1 等字符 计算机中是没有存储字符的,但是我们却看到了.计算机在存储这些信息的时候,根据一个有规 则 ...

  5. 关于Win7 内存变小处理方法

    windows + R 输入msconfig 点击引导 点击高级选项 点击最大内存打钩,就好了,你重启,你的内存将恢复成原来的.

  6. 一个简单的时间轴demo

    一个时间轴的组成 使用一个块级元素包裹内容,并未块级元素设置边框 定义圆形或者菱形等元素标签,子元素设置偏移或者定位元素将图标定位到边框上 使其中的内容不溢出,自动换行,内容自动撑高 英文自动换行:w ...

  7. js&jquery跨域详解jsonp,jquery并发大量请求丢失回调bug

    URL  说明 是否允许通信 http://www.a.com/a.js http://www.a.com/b.js 同一域名下 允许 http://www.a.com/lab/a.js http:/ ...

  8. Reverse bits - 按位反转一个int型数字

    Reverse bits of a given 32 bits unsigned integer. For example, given input 43261596 (represented in ...

  9. 操作系统,银行家算法模拟实现(Windows 环境 C++)

    计算机操作系统课设需要,写了两个下午的银行家算法(陷在bug里出不来耽误了很多时间),参考计算机操作系统(汤子瀛) 实现过程中不涉及难度较大的算法,仅根据银行家算法的思想和步骤进行实现.以下为详细步骤 ...

  10. eclipse maven构建

    run as --> maven install 1.No compiler is provided in this environment. Perhaps you are running o ...