Servlet基础 管理员注册页面

管理员注册页面

index.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
   
<title>注册页面</title>
    
  </head>
  
  <body>

  <form action="AdminServlet">
  管理员姓名:<input name="adminname"><br>
  管理员密码:<input name="adminpwd"><br>
       <input type = "submit" value="注册"><input type="reset" value="重置">
  </form>

   
  </body>
</html>

AdminServlet.java

package com.servlet;


import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.bean.Admin;
import com.dao.IAdminDao;
import com.dao.impl.AdminDaoImpl;

public class AdminServlet extends HttpServlet {
    @Override
    protected void service(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
      
 //设置请求的编码格式
        response.setCharacterEncoding("utf-8");
        
        IAdminDao adminDao = new AdminDaoImpl();
        
//获取表单提交的数据
        String name = request.getParameter("adminname");
        System.out.println(name);
        String pwd = request.getParameter("adminpwd");
        System.out.println(pwd);
      
 //name 赋值到admin.adminName
        //pwd 赋值到admin.adminPWd

        Admin admin = new Admin();
        admin.setAdminName(name);
        admin.setAdminpwd(pwd);
        
//接收数据保存到数据库
        //调用AdminDaoImpl的实现

        int i = adminDao.regAdmin(admin);
     
   //判断注册是否成功
        if(i>0){
            System.out.println("注册成功!");
            
//响应头
            /*response.setHeader("user", "caixukun");*/
          
 //方法1、设置响应的编码格式
            /*response.setCharacterEncoding("utf-8");
            response.setHeader("Content-type","text/html;charset=utf-8");*/
            
//方法2、设置响应的编码格式
            response.setContentType("text/html;charset=utf-8");
            
            
          
 //字节流输出
            /*ServletOutputStream steam = response.getOutputStream();
            String mag = "zijieliu";
            steam.write(mag.getBytes());*/
            
          
 //字符流输出
            PrintWriter writer = response.getWriter();
            writer.write("<h1>注册成功!</h1>");
            writer.write("<h1>点击<a href = 'login.jsp'>这里</a>进入管理员登陆页面</h1>");
        }else{
            System.out.println("注册失败!");
            response.getWriter().write("<h1>注册失败!请重新注册</h1>");
            response.getWriter().write("<h1><a href = 'index.jsp'>返回管理员注册页面</a></h1>");
        }
    }

}

IAdminDao.java

 package com.dao;

import java.sql.ResultSet;

import com.bean.Admin;

public interface IAdminDao {
  
 //注册的接口
    int regAdmin(Admin admin);
    
    
//查询登录的接口
    ResultSet login(Admin admin);

}
AdminDaoImpl.java

package com.dao.impl;

import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

import com.bean.Admin;
import com.dao.IAdminDao;
import com.mysql.jdbc.Connection;
import com.utils.BaseDao;

public class AdminDaoImpl implements IAdminDao {

    //注册功能实现
    @Override
    public int regAdmin(Admin admin) {
        int i = 0;
        Connection conn = BaseDao.getconn();
        String sql = "insert into admin values(null,?,?)";
        try {
            PreparedStatement ps = conn.prepareStatement(sql);
            ps.setObject(1, admin.getAdminName());
            ps.setObject(2, admin.getAdminpwd());
            i = ps.executeUpdate();
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return i;
    }
    
    
//登陆功能的判断
    @Override
    public ResultSet login(Admin admin) {
        ResultSet rs = null;
        //1、
        Connection conn = BaseDao.getconn();
        String sql = "select * from admin where admin_name = ? and admin_pwd = ?";
        try {
            PreparedStatement ps = conn.clientPrepareStatement(sql);
            ps.setObject(1, admin.getAdminName());
            ps.setObject(2, admin.getAdminpwd());
            rs = ps.executeQuery();
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        
        return rs;
    }

}
 

BaseDao.java

package com.utils;

import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;

import java.sql.Connection;
import java.sql.PreparedStatement;
import com.sun.corba.se.spi.orbutil.fsm.Guard.Result;
import com.sun.jndi.url.corbaname.corbanameURLContextFactory;

public class BaseDao {
    private static final String driver = "com.mysql.jdbc.Driver";
    private static final String url = "jdbc:mysql:///news_week1?characterEncoding=utf-8";
    private static final String user = "root";
    private static final String pwd = "root";
    
    static{
        try {
            Class.forName(driver);
        } catch (ClassNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
    public static Connection getconn(){
        Connection conn = null;
        try {
             conn =  DriverManager.getConnection(url, user, pwd);
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return conn;
    }
    public static void close(Connection conn,PreparedStatement ps,ResultSet rs){
        try {
            if(null !=rs)
                rs.close();
            if(null !=ps)
                ps.close();
            if(null !=conn)
                conn.close();
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }    
    }

}
 

Admin.java

package com.bean;

public class Admin {
    
    
    private int adminId;
    private String adminName;
    private String adminpwd;
    public int getAdminId() {
        return adminId;
    }
    public void setAdminId(int adminId) {
        this.adminId = adminId;
    }
    public String getAdminName() {
        return adminName;
    }
    public void setAdminName(String adminName) {
        this.adminName = adminName;
    }
    public String getAdminpwd() {
        return adminpwd;
    }
    public void setAdminpwd(String adminpwd) {
        this.adminpwd = adminpwd;
    }
    @Override
    public String toString() {
        return "Admin [adminId=" + adminId + ", adminName=" + adminName
                + ", adminpwd=" + adminpwd + "]";
    }public Admin(int adminId, String adminName, String adminpwd) {
        super();
        this.adminId = adminId;
        this.adminName = adminName;
        this.adminpwd = adminpwd;
    }public Admin() {
        super();
    } 
}


管理员登陆页面

login.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">  
    <title>登陆页面</title>
  </head>
  <body>
  <h1>管理员登陆页面</h1>
  <form action = "LoginServlet" method="post">
    管理员姓名:<input type = "text" name = "adminname"><br>
    管理员密码:<input type = "text" name = "adminpwd"><br>
     <input type = "submit" value = "登陆"><input type = "submit" value = "取消"><br>
  </form>

  </body>
</html>

LoginServlet.java

package com.servlet;


import java.io.IOException;
import java.sql.ResultSet;
import java.sql.SQLException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.bean.Admin;
import com.dao.IAdminDao;
import com.dao.impl.AdminDaoImpl;

public class LoginServlet extends HttpServlet {
    @Override
    protected void service(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        
        IAdminDao dao = new AdminDaoImpl();
        
        //处理乱码
        request.setCharacterEncoding("utf-8");
        
        //设置响应的编码格式
        response.setCharacterEncoding("utf-8");
        response.setContentType("text/html;charset=utf-8");
        //接收表单数据
        String name = request.getParameter("adminname");
        String pwd = request.getParameter("adminpwd");
        
        //连接数据库判断是否存在登录的用户
        Admin admin = new Admin();
        admin.setAdminName(name);
        admin.setAdminpwd(pwd);
            
        //调用接口实现查询登陆用户功能
        ResultSet rs = dao.login(admin);
        //判断登陆是否成功
        try {
            if(rs.next()){
                //response.getWriter().write("<h1>恭喜您登陆成功!</h1>");    

                拓展      转发和重定向
                /*转发的形式实现页面跳转 request.getRequestDispatcher
                http://localhost:8080/adminDemo1/LoginServlet
                request.setAttribute("user", name);
                request.getRequestDispatcher("success.jsp").forward(request, response);*/
                /*重定向的方式实现页面跳转 response.sendRedirect
                http://localhost:8080/adminDemo1/success.jsp
                response.sendRedirect("success.jsp");*/
                
                /*
                 * 转发和重定向的区别
                 * 1、地址栏不同,转发地址栏不发生改变,重定向地址栏改变为重定向的页面。
                 * 2、request 作用域一次请求的参数,转发可以共享,可以取request作用域的值,转发不可以。
                 * 3、转发是一次请求,重定向是两次请求。
                 * 4、转发只能跳转到本项目下的路径,重定向只要网络允许可以跳转任意路径。
                 */

                
            }else {
                response.getWriter().write("<h1>登陆失败!</h1>");
                response.getWriter().write("<a href = 'login.jsp'>返回登陆界面!</a>");
            }
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

}

拓展

success.jsp 登陆成功后跳转页面

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>My JSP 'success.jsp' starting page</title>
    
    <meta http-equiv="pragma" content="no-cache">
    <meta http-equiv="cache-control" content="no-cache">
    <meta http-equiv="expires" content="0">    
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="This is my page">
    <!--
    <link rel="stylesheet" type="text/css" href="styles.css">
    -->

  </head>
  
  <body>
 
  <h1>欢迎${user},登陆成功</h1>
  </body>
</html>

相关推荐

  1. Servlet基础之配置 Servlet 及其映射

    2024-04-02 10:16:03       34 阅读
  2. 登录注册页面

    2024-04-02 10:16:03       29 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-04-02 10:16:03       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-02 10:16:03       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-02 10:16:03       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-02 10:16:03       20 阅读

热门阅读

  1. 探索信创之路:为何坚持自主创新

    2024-04-02 10:16:03       16 阅读
  2. C++ list

    C++ list

    2024-04-02 10:16:03      13 阅读
  3. HashMap 和 Hashtable 有什么区别?

    2024-04-02 10:16:03       17 阅读
  4. OpenEuler/Centos制作离线软件源

    2024-04-02 10:16:03       14 阅读
  5. File类的解释与说明

    2024-04-02 10:16:03       13 阅读
  6. linux清空文件内容

    2024-04-02 10:16:03       15 阅读
  7. 联邦学习概述,让你了解联邦学习

    2024-04-02 10:16:03       19 阅读
  8. 竞赛常考的知识点大总结(四)高级数据结构

    2024-04-02 10:16:03       17 阅读
  9. MySQL|为什么不推荐用外键?

    2024-04-02 10:16:03       19 阅读
  10. 如何在微信小程序中使用less来编写css

    2024-04-02 10:16:03       17 阅读