IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> PHP知识库 -> 使用jsp实现用户注册及登录 -> 正文阅读

[PHP知识库]使用jsp实现用户注册及登录

1.思路:

首先建一个class,属性有用户名,密码,人数等,注意重写tostring,方便打印

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

    @Override
    public String toString() {
        return "User{" +
                "id=" + id +
                ", username='" + username + '\'' +
                ", password='" + password + '\'' +
                '}';
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    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;
    }
}

2.再建一个类,这里面注意需要用到单例模式,因为只需要第一次初始化就可以了

public class NewsSystem {
    static {
        ns=new NewsSystem();
    }
    private static NewsSystem ns;
    private NewsSystem(){}
    public static NewsSystem getInstance(){
        return ns;
    }
//    单列模式,只初始化一次 getInstance
    public static int id_num;
    public List<User> users =new ArrayList<>(  );
    public void addUser(String username,String password,String cfmPwd){
        if(password.equals( cfmPwd )){
            User u=new User();
            u.setId( ++id_num );
            u.setUsername( username );
            u.setPassword( password );
            users.add( u );
        }else {
            System.out.println("密码确认不一致");
        }
        System.out.println("当前共有"+users.size()+"个用户");

    }
}

3.在web里面创建一个html,创建一个登录表单

body>
<form action="index.jsp">
    <p> 用户名:<input type="text" name="name"></p>
    <p>密码:<input type="password" name="pwd"></p>
    <p>确认密码:<input type="password" name="confirmPwd"></p>
    <p><input type="submit"  value="提交注册"></p>
</form>
</body>

4.打开web下面的index.jsp,把表单的信息输入进去

 <body>
<%
    request.setCharacterEncoding( "utf-8" );
    response.setCharacterEncoding( "utf-8" );
    String username = request.getParameter( "name" );
    String password = request.getParameter( "pwd" );
    String cfmPwd = request.getParameter( "confirmPwd" );
    NewsSystem ns=NewsSystem.getInstance();
    ns.addUser( username,password,cfmPwd );
    out.print( ns.users );

//    request.getRequestDispatcher( "hello.jsp").
//            forward( request,response ); //请求转发

        session.setAttribute( "user",username );
    response.sendRedirect( "hello.jsp" ); //重定向
%>
 <p> <%=ns.users%></p>

  </body>

5.用户登录页面操作以及结束了,如果需要记录登录用户的姓名,可以在创建一个jsp

<body>
<%--<% String username=request.getParameter("name");%>--%>
<%--<h1>恭喜用户<%=username%>登录成功</h1>--%>

<% Object user = session.getAttribute( "user" );%>
<h2>恭喜用户<%=user%>登录成功</h2>

<h1>恭喜用户${user}登录</h1>   <!--EL表达式-->
</body>

我用了三种方法,结合5和我一一对应。

这里面需要注意的是,需要先添加tomcat

?6.每次运行都会先报错,在把.html输入到url才行比较麻烦,所以在web下面有个web.xml中加一句话

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">
    <welcome-file-list>
        <welcome-file>/regex.html</welcome-file>
    </welcome-file-list>
</web-app>

7.下面就是运行结果

?

?

?

总结:我遇到的一些问题。

1.首先如果tomcat没有装好,在操作对象request.方法出不来,就算强行打上去,也会爆红的;

2.也可以先装tomcat,点击绿色三角形运行,如果跳出一个页面,就是安装成功;

3.使用对象点方法request.getParameter里面的参数要和你在表单设置的name名字要相同,否则会数据是空的

4.使用单例模式getInstance,因为没有数据库存数据,如果不用单例模式,每次都会创建一个新的对象,不会计算总数

5.不要用中文,容易报错,也不要直接在src下建类,都是出错的

6.不要用页面上了的浏览器打开,要用run运行

7.如果提示导入不正确,可以把out先删除,再create一个就可以了

  PHP知识库 最新文章
Laravel 下实现 Google 2fa 验证
UUCTF WP
DASCTF10月 web
XAMPP任意命令执行提升权限漏洞(CVE-2020-
[GYCTF2020]Easyphp
iwebsec靶场 代码执行关卡通关笔记
多个线程同步执行,多个线程依次执行,多个
php 没事记录下常用方法 (TP5.1)
php之jwt
2021-09-18
上一篇文章      下一篇文章      查看所有文章
加:2021-09-18 09:51:10  更:2021-09-18 09:51:37 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 1:28:07-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码