今天给大家带来的是Java web的登录界面的实现。
功能:通过登录界面输入正确的用户名和密码点击登录到正确的页面。
功能实现:主要通过前端使用jsp,通过form表单的提交功能将信息提交到servlet中,再通过后台的的c3p0和JdbcTemplate连接数据库,核对数据库中的内容,用户名密码正确则返回true否则返回false。
工具:IDEA2018.2.2、Tomcat 7.0.9、jdk 1.8.0
启动IDEA并且点击创建项目,配置好自己的jdk版本和Tomcat版本,点击next。
点击勾选Creat projec from tempalte,点击next。
然后选择自己的文件夹路径完成创建。
这样我们完成了一个项目的完成。
在web/WEB-INF目录下写好自己要写的jsp页面
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
登录页面
登录界面代码中有表单form代码,
<%--action是指将内容提交到哪个页面--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
登录成功
Title
用户名或密码错误,请重新登录!
在后台创建servlet文件来获取前端jsp页面所传递的数据。
package com.zr.serlvet;
import com.zr.bean.User;
import com.zr.service.impl.userServiceImpl;
import com.zr.service.userService;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
/*@WebServlet(name="/loginServlet")
这个地方如果要使用@WebServlet的注解直接开发那么要讲 name= 删除掉
* 如果要使用xml开发的话 ,那么name=就不用删除,并且在xml文件中写好servlet的配置和映射代码。
* */
@WebServlet("/loginServlet")
public class loginServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//1、处理servlet中的编码问题。
response.setCharacterEncoding("utf-8");
response.setContentType("text/html; charset=utf-8");
//2、获取login.jsp中的传递给的信息。
String username=request.getParameter("userName");
String password=request.getParameter("password");
//3、在bean目录下创建一个用户的一个类将用户名和密码进行保存下来。
User user=new User(username,password);
//4、在service文件目录下创建UerService的接口以及实现类。
userService us = new userServiceImpl();
//5、判断密码是否符合要求
if(us.login(user)) {
//符合要求则返回跳转到success.jsp
request.getRequestDispatcher("/success.jsp").forward(request, response);
}else{
//不满足要求则返回error页面
request.getRequestDispatcher("/error.jsp").forward(request,response);
}
// System.out.println(user.getUserName()+" "+user.getPassword());
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
this.doPost(request,response);
}
}
package com.zr.bean;
public class User {
private String userName;
private String password;
public User(String userName, String password) {
this.userName = userName;
this.password = password;
}
public User() {
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
package com.zr.service;
import com.zr.bean.User;
public interface userService {
boolean login(User user);
}
package com.zr.service.impl;
import com.zr.bean.User;
import com.zr.dao.impl.userDaoImpl;
import com.zr.dao.userDao;
import com.zr.service.userService;
public class userServiceImpl implements userService {
//获取后台连接数据库的类
userDao us=new userDaoImpl();
@Override
public boolean login(User user) {
//判断数据库的类的密码是否满足要求
if(us.login(user)!=null){
return true;
}
return false;
}
}
package com.zr.dao;
import com.zr.bean.User;
public interface userDao {
User login(User user);
}
package com.zr.dao.impl;
import com.mchange.v2.c3p0.ComboPooledDataSource;
import com.zr.bean.User;
import com.zr.dao.userDao;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;
import java.util.List;
public class userDaoImpl implements userDao {
@Override
public User login(User user) {
//获取JdbcTemplate类,使用JdbcTemplate来操作数据库
JdbcTemplate jdbc=new JdbcTemplate(new ComboPooledDataSource());
String sql = "select * from users where user=? and password=?";
//传入数据
List<User> list = jdbc.query(sql, new BeanPropertyRowMapper<>(User.class), user.getUserName(), user.getPassword());
if(!list.isEmpty()){
return list.get(0);
}
return null;
}
}