servlet实现登陆注册

拿到信息必须进行非空验证
用servlet做注册登陆时,在form表单的action中不用加后缀.java,jsp文件需要加

public boolean CheckParm(String...args){
        for(String s:args){
            if("".equals(s)||s==null){
                return false;
            }
        }

        return true;

    }

当不确定传入的参数个数是可以用String...args,表示多参数传入
有返回值类型的方法一定加return

在servlet里面执行的代码写在doget方法中

        request.setCharacterEncoding("utf-8");
        response.setCharacterEncoding("utf-8");
        response.setContentType("text/html; charset=utf-8");

防止输出出现乱码的代码表示

<%@ 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="TextServlet" method="post">
        <input type="text"  name="username" placeholder="请输入用户名"/><br>
        <input type="text"  name="password" placeholder="请输入密码"/><br>
        <input type="text"  name="password1" placeholder="请再次输入密码"/><br>
        <input type="text"  name="realname" placeholder="请输入真实名字"/><br>
        <input type="submit" value="提交"/>
        <a href="login.jsp"> 超级链接</a>
    </form>

</body>
</html>

注册的servlet类

package com.hanqi.textservlet;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Servlet implementation class TextServlet
 */
@WebServlet("/TextServlet")
public class TextServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;

    /**
     * @see HttpServlet#HttpServlet()
     */
    public TextServlet() {
        super();
        // TODO Auto-generated constructor stub
    }

    /**
     * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        request.setCharacterEncoding("utf-8");
        response.setCharacterEncoding("utf-8");
        response.setContentType("text/html; charset=utf-8");

        String username = request.getParameter("username");
        String password = request.getParameter("password");
        String password1 = request.getParameter("password1");
        String realname = request.getParameter("realname");

        response.getWriter().append("username:"+username+"password:"+password+"realname:"+realname);

        if(CheckParm(username,password,password1)){
            if(password.equals(password1)){
                Object obj=request.getServletContext().getAttribute(username);
                if(obj==null){
                    request.getServletContext().setAttribute(username, username);
                    request.getServletContext().setAttribute(password, password);
                    response.sendRedirect("message.jsp?code=1");
                }else{
                    response.sendRedirect("message.jsp?code=4");
                }
            }else{
                response.sendRedirect("message.jsp?code=3");
            }
        }else{
            response.sendRedirect("message.jsp?code=2");
        }

    }

    /**
     * @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);
    }
    public boolean CheckParm(String...args){
        for(String s:args){
            if("".equals(s)||s==null){
                return false;
            }
        }

        return true;

    }

}
<%@ 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="LoginServlet" method="post">
        <input type="text"  name="username" placeholder="请输入用户名"/><br>
        <input type="text"  name="password" placeholder="请输入密码"/><br>
        <input type="submit" value="登陆"/>
    </form>

</body>
</html>

登陆的servlet类

package com.hanqi.textservlet;

import java.io.IOException;

import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Servlet implementation class LoginServlet
 */
@WebServlet("/LoginServlet")
public class LoginServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;

    /**
     * @see HttpServlet#HttpServlet()
     */
    public LoginServlet() {
        super();
        // TODO Auto-generated constructor stub
    }

    /**
     * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        request.setCharacterEncoding("utf-8");
        response.setCharacterEncoding("utf-8");
        response.setContentType("text/html; charset=utf-8");

        String username=request.getParameter("username");
        String password=request.getParameter("password");

        ServletContext application=request.getServletContext();
        Object obj=application.getAttribute(username);
        Object ob=application.getAttribute(password);
        if(obj!=null){
            String user=(String)obj;
            if(username.equals(user)){
                if(password.equals(ob)){
                    response.sendRedirect("index.jsp");
                }else{response.sendRedirect("message.jsp?code=7");}
            }else{
                response.sendRedirect("message.jsp?code=5");
                }
            }else{
                response.sendRedirect("message.jsp?code=6");
                }
        }
    /**
     * @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);
    }

}

未按要求输入的提示页面的实现

<%@ 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>
    <%
        String code=request.getParameter("code");
        if("1".equals(code)){
            out.print("<h1>注册成功!</h1>");
        }if("2".equals(code)){
            out.print("<h1>信息输入不完整!</h1>");
        }if("3".equals(code)){
            out.print("<h1>输入的密码不一致!</h1>");
        }if("4".equals(code)){
            out.print("<h1>用户已经存在!</h1>");
        }if("5".equals(code)){
            out.print("<h1>用户名错误!</h1>");
        }if("6".equals(code)){
            out.print("<h1>用户不存在!</h1>");
        }if("7".equals(code)){
            out.print("<h1>密码错误!</h1>");
        }

    %>
</body>
</html>
时间: 2024-08-02 11:04:43

servlet实现登陆注册的相关文章

【java项目实战】Servlet详解以及Servlet编写登陆页面(二)

Servlet是Sun公司提供的一门用于开发动态web网页的技术.Sun公司在API中提供了一个servlet接口,我们如果想使用java程序开发一个动态的web网页,只需要实现servelet接口,并把类部署到web服务器上就可以运行了. 到底什么是Servlet呢? 通俗一点,只要是实现了servlet接口的java程序,均称Servlet.Servlet是由sun公司命名的,Servlet = Server + Applet(Applet表示小应用程序),Servlet是在服务器端运行的小

教你使用JavaWeb实现无处不在的登陆注册

登陆注册,基本上是打开所有app都需要做的事情了,在这个大数据时代,登陆注册是最基础但也是最重要的用户数据.今天就手把手教你制作:用户登录在各大信息管理系统中,登录功能是必不可少的,他的作用就是验证用户的身份,判断用户是否是本站的会员,只有会员才能访问当前系统登录的实现步骤:1.用户填写账号和密码,提交到后台2.后台获取到账号和密码后,将其发送到数据库中进行查询3.查询结果如果为null,说明用户填写的账号或者密码有误,应该回到登录页面并提示用户重新输入4.查询结果如果不为null,说明用户填写

javaweb 登陆注册页面

视图的数据修改,表中也修改引用工具类用<%@ page import=""%> <%@ page import="java.util.Date" %> <%@ page import="java.text.SimpleDateFormat" %> 引入包可以一条一条分着写,也可以在一条内直接用逗号隔开写 <%@ page import="java.util.Date,java.text.Simp

用ajax的同步请求解决登陆注册需要根据服务器返回数据判断是否能提交的问题

最近在写www.doubilaile.com的登陆注册.需要用ajax请求服务器判断用户名是否存在,用户名和密码是否匹配,进而提交数据.碰到的问题是异步请求都能成功返回数据,但是该数据不能作为紧接着的判断的依据.我现在的理解是:异步请求去了服务器端,而本地代码仍在往下执行.服务器数据最终的确会回来,但是本地判断已经执行完毕.所以才会出现密码框单独blur后能提交,而直接submit按钮却要按两次才能提交的问题.将同步改成异步问题解决了.理解是:同步操作会等待服务器数据返回来之后才继续往下执行,所

tkinter 创建登陆注册界面

import tkinter as tk from tkinter import messagebox #设置窗口居中 def window_info(): ws = window.winfo_screenwidth() hs = window.winfo_screenheight() x = (ws / 2) - 200 y = (hs / 2) - 200 print("%d,%d" % (ws, hs)) return x,y #设置登陆窗口属性 window = tk.Tk()

前端开发---登陆注册页面优化

1.本次用到错误提示文字的颜色 http://v3.bootcss.com/css/#forms jquery 教程: http://www.w3school.com.cn/jquery/index.asp 2.工程地址:https://github.com/digitalClass/web_page 网站发布地址: http://115.28.30.25:8029/ 3. 主要工作 优化登陆注册页面显示 因为业务需要, 登陆注册页面被后端给改了, 显示效果如下: 可以看到表单全部乱掉了.打开后

Nodejs连接MySQL&amp;&amp;实现unity中的登陆注册功能

MySQL是一款常用的开源数据库产品,通常也是免费数据库的首选.查了一下NPM列表,发现Nodejs有13库可以访问MySQL,felixge/node-mysql似乎是最受关注项目,我也决定尝试用一下. 要注意名字,"felixge/node-mysql"非"node-mysql",安装目录 1. node-mysql介绍 felixge/node-mysql是一个纯nodejs的用javascript实现的一个MySQL客户端程序.felixge/node-my

Android的SQLiteDataBase小项目,实现user类登陆注册以及student类增删改查

关于SQLiteDataBase这块,大体有两种主要的实现方式,一种是不使用Helper类的方式,此种方式存在一个弊端,即不能oncreate两次,如果重复使用oncreate的button,则会报错,所以为了避免这种错误,在此项目中使用类继承SQLiteOpenHelper的方式进行SQLite3小型数据库的小项目开发,简单的实现登陆注册,以及对特定vo类的增删改查,中间还夹杂了ListView,ArrayAdapter,以及Intent的散知识点. 以下为正文:首先介绍以下我写的项目的框架,

页面点击Button按钮弹出登陆注册框(含短信验证功能)

1 <div class="login-hidd"></div> 2 <div class="login-wrap"> 3 <div class="login-cont"> 4 <img id="login-img-close" src="/views/image/close08.png" alt="登陆" title="&