javaweb-简单登录页面

编码处理

  1. get请求编码: tomcat8以上已经处理,不需要管

  2. post请求编码,调用request.setCharacterEncoding("UTF-8");

  3. 响应编码设置: response.setContentType("text/html;charset=UTF-8");

  4. 2,3编码处理的代码在获取参数之前,响应数 据之前,2,3作为servlet前两行代码

jsp

可以写html和java代码 作为展示

是一个动态资源 浏览器无法直接访问 后台需要web服务器 执行jsp的代码,执行完将结果转换为静态的html,然后响应给浏览器

jsp脚本代码的写法

  1. <%%> java方法可以写的都可以写

  2. <%=%> 只能写表达式 把表达式的值输出到页面

  3. <%! %>

项目的搭建

1、操作mysql需要 导入mysql驱动jar包 放在WEB-INF新建的jar包下

javaweb-简单登录页面_第1张图片 

添加依赖,没有添加jar包时,弹出下面的框,选择jar包javaweb-简单登录页面_第2张图片无法打开,重复以上步骤,可以打开 法打开,重复以上步骤,可以打开

db.properties文件放在src目录下

javaweb-简单登录页面_第3张图片

 

login登录网页的实现

1.在pojo文件夹中创建一个实体类 Admin

管理员内有三个字段,并提供getter and setter方法,和tostring方法

2.创建一个dao层接口AdminDao,dao里面的方法一般以查询为主

3.在dao文件夹中创建AdminDaoImpl 实现AdminDao实现接口

编写sql语句

4.login中的表单信息提供到servlet

在web文件夹中new一个LoginServlet

1.编码处理

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

2.获取数据请求参数

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

3.数据类型转换

不需要进行数据类型转换,跳过步骤

4.调用dao层方法 dao层只做数据的操作,不适合写很多的逻辑代码

5.把数据保存到域中

这里用到的是重定向

当数据存放在request域中(存活时间很短,只存在一次请求中有效)使用转发

6.实现页面的跳转

   //4.调用Dao的方法
    AdminDao adminDao = new AdminDaoImpl();
    Admin admin = adminDao.queryByUsernameAndPassword(user, password);
    if(admin != null){//登录成功
        //5.把数据保存域中, admin保存到session域
        //6.页面跳转  重定向
        response.sendRedirect(request.getContextPath()+"/index.jsp");
    }else{//登录失败
        //5.把数据保存域中
        String error = "用户名或者密码错误";
        request.setAttribute("error",error);
        //6.页面跳转 转发: 把数据存在request域
        request.getRequestDispatcher("/login.jsp").forward(request,response);
    }
​
}

 代项目结构:

javaweb-简单登录页面_第4张图片

 

你可能感兴趣的:(servlet,java,前端)