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>

相关推荐
小宇成长录11 分钟前
Mysql:数据库和表增删查改基本语句
数据库·mysql·数据库备份
极客先躯43 分钟前
高级java每日一道面试题-2024年10月3日-分布式篇-分布式系统中的容错策略都有哪些?
java·分布式·版本控制·共识算法·超时重试·心跳检测·容错策略
团儿.1 小时前
解锁MySQL高可用新境界:深入探索MHA架构的无限魅力与实战部署
数据库·mysql·架构·mysql之mha架构
夜月行者1 小时前
如何使用ssm实现基于SSM的宠物服务平台的设计与实现+vue
java·后端·ssm
程序猿小D1 小时前
第二百六十七节 JPA教程 - JPA查询AND条件示例
java·开发语言·前端·数据库·windows·python·jpa
潘多编程1 小时前
Java中的状态机实现:使用Spring State Machine管理复杂状态流转
java·开发语言·spring
_阿伟_2 小时前
SpringMVC
java·spring
代码在改了2 小时前
springboot厨房达人美食分享平台(源码+文档+调试+答疑)
java·spring boot
权^2 小时前
MySQL--聚合查询、联合查询、子查询、合并查询(上万字超详解!!!)
大数据·数据库·学习·mysql
猿java2 小时前
使用 Kafka面临的挑战
java·后端·kafka