1.登录界面
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<h1>欢迎使用</h1>
<form action="logina" method="post">
姓名<input type="text" name="user"><br>
密码<input type="text" name="pwd"><br>
<img src="code" alt="" width="100" onclick="this.src=this.src+'?'+Math.random()">
<input type="text" name="yz">
<button>登录</button>
</form>
</body>
</html>
登录界面完成后会跳转到判断用户名密码已经验证码是否正确的界面和查找界面
2.查找(判断用户名密码验证码是否正确)
查找列表界面完成之后,还是跳转到此页面
@WebServlet("/logina")
public class UserRequest2 extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
this.doPost(req, resp);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
String user = req.getParameter("user");
String pwd = req.getParameter("pwd");
String code = req.getParameter("yz");
System.out.println("user2 = " + user);
System.out.println("pwd2 = " + pwd);
System.out.println("code= " + code);
//判断用户输入的验证码跟机器生成的验证码是否相同
HttpSession session = req.getSession();
String yz = (String) session.getAttribute("yz");
if (!yz.equals(code)){
System.out.println("验证码错误!");
}
InputStream in = Resources.getResourceAsStream("config/mybatis-config.xml");
SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(in);
SqlSession sqlSession = factory.openSession();
StudentDao studentDao = sqlSession.getMapper(StudentDao.class);
User select = studentDao.login(user, pwd);
if (select==null){
//错误提示
req.getRequestDispatcher("usererror").forward(req,resp);
}else {
List<Student> list = studentDao.findAll();
req.setAttribute("list",list);
req.getRequestDispatcher("showlist").forward(req,resp);
}
}
}
3.删除
删除操作完成之后,跳转到查找的列表界面
@WebServlet("/delOne")
public class StuDel extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
this.doPost(req, resp);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
String id = req.getParameter("id");
try {
InputStream in = Resources.getResourceAsStream("config/mybatis-config.xml");
SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(in);
SqlSession sqlSession = factory.openSession();
StudentDao studentDao = sqlSession.getMapper(StudentDao.class);
int delete = studentDao.deleteStudent(Integer.valueOf(id));
sqlSession.commit();
if (delete>0){
List<Student> list = studentDao.findAll();
req.setAttribute("list",list);
req.getRequestDispatcher("showlist").forward(req,resp);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
4.添加
(1)添加的表单界面
@WebServlet("/insert")
public class StuInsertData extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
this.doPost(req, resp);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
req.setCharacterEncoding("utf-8");
resp.setContentType("text/html;charset=utf-8");
PrintWriter writer = resp.getWriter();
writer.write("<!doctype html>");
writer.write("<html>");
writer.write("<head>");
writer.write("<meta charset='utf-8'>");
writer.write("</head>");
writer.write("<h1>学生信息添加展示</h1>");
writer.write("<body style='backgroud:#ccffff;'>");
writer.write("<h1>学生信息展示</h1>");
writer.write("<div style='margin:0 auto;width:600px;border:solid 3px red;'>" +
"<h3><a href='insert'>录入信息</a></h3>");
writer.write("<form action='insertok' methon='post'>" +
"姓名:<input type='text' name='name'><br>" +
"性别:<input type='text' name='sex'><br>" +
"年龄:<input type='text' name='age'><br>" +
"专业:<input type='text' name='major'><br>" +
"时间:<input type='text' name='time'><br>" +
"<button>提交</button>" +
"<input type='reset' value='重置'/>" +
"</form>" +
"</div>");
writer.write("</body>");
writer.write("</html>");
}
}
(2)添加实现的操作
@WebServlet("/insertok")
public class insertok extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
this.doPost(req, resp);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
req.setCharacterEncoding("utf-8");
resp.setContentType("text/html;charset=utf-8");
String name = req.getParameter("name");
String sex = req.getParameter("sex");
String age = req.getParameter("age");
String major = req.getParameter("major");
String time = req.getParameter("time");
try {
InputStream in = Resources.getResourceAsStream("config/mybatis-config.xml");
SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(in);
SqlSession sqlSession = factory.openSession();
StudentDao studentDao = sqlSession.getMapper(StudentDao.class);
Student student = new Student();
student.setName(name);student.setSex(sex);student.setAge(Integer.valueOf(age));
student.setMajor(major);student.setTime(time);
int add = studentDao.saveStudent(student);
sqlSession.commit();
if (add>0){
List<Student> list = studentDao.findAll();
req.setAttribute("list",list);
req.getRequestDispatcher("showlist").forward(req,resp);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
5.更新
(1)更新的表单界面
@WebServlet("/updateOne")
public class UpdataData extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
this.doPost(req, resp);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
req.setCharacterEncoding("utf-8");
resp.setContentType("text/html;charset=utf-8");
PrintWriter writer = resp.getWriter();
//Student stu =(Student) req.getAttribute("stu");
String id = req.getParameter("id");
InputStream in = Resources.getResourceAsStream("config/mybatis-config.xml");
SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(in);
SqlSession sqlSession = factory.openSession();
StudentDao studentDao = sqlSession.getMapper(StudentDao.class);
Student stu = studentDao.findById(Integer.valueOf(id));
// Student stu = jdbcTools.select("select * from stuhhh where id=?", Student.class,id);
writer.write("<!doctype html>");
writer.write("<html>");
writer.write("<head>");
writer.write("<meta charset='utf-8'>");
writer.write("</head>");
writer.write("<h1>学生信息更新展示</h1>");
writer.write("<body style='backgroud:#ccffff;'>");
writer.write("<h1>学生信息展示</h1>");
writer.write("<div style='margin:0 auto;width:600px;border:solid 3px red;'>" +
"<h3><a href='updateOne'>修改信息</a></h3>");
writer.write("<form action='updateok' methon='post'>" +
"iD:<input type='hidden' name='id' value=" +stu.getId()+
"><br>"+
"姓名:<input type='text' name='name' value=" +stu.getName()+
"><br>"+
"性别:<input type='text' name='sex' value=" +stu.getSex()+
"><br>" +
"年龄:<input type='text' name='age' value=" +stu.getAge()+
"><br>" +
"专业:<input type='text' name='major' value=" +stu.getMajor()+
"><br>" +
"时间:<input type='text' name='time' value=" +stu.getTime()+
"><br>" +
"<button>提交</button>" +
"<input type='reset' value='重置'/>" +
"</form>" +
"</div>");
writer.write("</body>");
writer.write("</html>");
}
}
(2)添加实现的操作
@WebServlet("/updateok")
public class UpdateOk extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
this.doPost(req, resp);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
req.setCharacterEncoding("utf-8");
resp.setContentType("text/html;charset=utf-8");
String id = req.getParameter("id");
String name = req.getParameter("name");
String sex = req.getParameter("sex");
String age = req.getParameter("age");
String major = req.getParameter("major");
String time = req.getParameter("time");
InputStream in = Resources.getResourceAsStream("config/mybatis-config.xml");
SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(in);
SqlSession sqlSession = factory.openSession();
StudentDao studentDao = sqlSession.getMapper(StudentDao.class);
Student student = new Student();student.setId(Integer.valueOf(id));
student.setName(name);student.setSex(sex);student.setAge(Integer.valueOf(age));
student.setMajor(major);student.setTime(time);
int update = studentDao.updateStudent(student);
sqlSession.commit();
if (update>0){
List<Student> list = studentDao.findAll();
req.setAttribute("list",list);
req.getRequestDispatcher("showlist").forward(req,resp);
}
}
}
6.验证码的实现
我是添加了ValidateCode.jar实现的
@WebServlet("/code")
public class Code extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
this.doPost(req, resp);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
ValidateCode validateCode = new ValidateCode(500, 200, 4, 100);
String code = validateCode.getCode();
HttpSession session = req.getSession();
session.setAttribute("yz",code);
//System.out.println("code = " + code);
validateCode.write(resp.getOutputStream());
}
}
7.用户名或者密码错误情况
@WebServlet("/usererror")
public class Usererror extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
this.doPost(req, resp);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
req.setCharacterEncoding("utf-8");
resp.setContentType("text/html;charset=utf-8");
PrintWriter user = resp.getWriter();
user.write("<!Doctype html>");
user.write("<html>");
user.write("<head>");
user.write("<meta charset='utf-8>'");
user.write("</head>");
user.write("<body>");
user.write("<h2 style='color:red;font-weight:bold;'>"+
"用户名或密码有错误,请重新登录"+
"</h2>"+
"<p>请重新登录<p>");
user.write("</body>");
user.write("</html>");
}
}
8.注解方法
(1)所需要用到的方法
以下是我个人封装的包,有需要的可以修改一下用
public interface StudentDao {
@Select("select * from stuhhh")
List<Student> findAll();
@Insert("insert into stuhhh values(null,#{name},#{sex},#{age},#{major},#{time})")
int saveStudent(Student stu);
@Delete("delete from stuhhh where id=#{id}")
int deleteStudent(int id);
@Update("update stuhhh set name=#{name},sex=#{sex},age=#{age},major=#{major},time=#{time}where id=#{id}")
int updateStudent(Student student);
//根据id查询一条数据
@Select("select * from stuhhh where id =#{id}")
Student findById(Integer id);
//模糊查询
@Select("select * from stuhhh where name like '%${value}%'")
List<Student> findByName(String name);
//查询总数量
@Select("select count(*) from stuhhh")
int findTotal();
@Select("select * from guan where username=#{username} and password=#{password}")
User login(@Param("username") String username, @Param("password") String password);
}
(2)config资源
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE configuration PUBLIC
"-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<environments default="develop">
<environment id="develop">
<transactionManager type="JDBC"></transactionManager>
<dataSource type="POOLED">
<property name="driver" value="com.mysql.cj.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/testdb?characterEncoding=utf-8"/>
<property name="username" value="root"/>
<property name="password" value="123456"/>
</dataSource>
</environment>
</environments>
<mappers>
<!-- <mapper resource="mapper/StudentMapper.xml"/>-->
<mapper class="Dao.StudentDao"/>
<!-- <mapper resource="mapper/UserMapper.xml"/>-->
</mappers>
</configuration>
就是以上这么多啦,有问题的可以私信我或者留言哦!
谢谢!