使用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一个就可以了

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yy64ll826

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值