您的位置:首页 > 运维架构 > 网站架构

【javaweb:servlet】网站登录信息校验,并返回页面提示

2018-01-25 22:55 295 查看
package indi.login;

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

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

import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.BeanHandler;
import indi.domain.User;
import indi.utils.DataSourceUtils;

public class LoginServlet extends HttpServlet {

public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//1.设置request的解码字符集为UTF-8
request.setCharacterEncoding("UTF-8");
//2.获取用户的登录信息
String username=request.getParameter("username");
String password=request.getParameter("password");

//3.调用业务方法去查询用户,针对不同的查询结果进行处理
User selectResult=null;
try {
selectResult = select(username,password);
} catch (SQLException e) {
e.printStackTrace();
}
if(selectResult!=null) {
//表示登录成功
//则将用户跳转至网站首页,采用"重定向"的方法(redirect)
response.sendRedirect(request.getContextPath()+"/index.jsp");
}else {
//表示登录失败
//则将用户界面重新跳转至login.jsp,采用"请求转发"(dispatch)的方法
//下面代码运用request域对象的特性,在一次转发中传递信息
request.setAttribute("loginInfo", "用户名或密码错误!");
request.getRequestDispatcher("/login.jsp").forward(request, response);
}
}
//根据登录信息,去数据库中查询,并返回User对象
public User select(String username,String password) throws SQLException {
QueryRunner qr=new QueryRunner(DataSourceUtils.getDataSource());
String sql="select * from user where username=? and password=?";
User user = qr.query(sql, new BeanHandler<>(User.class), username,password);
return user;
}

public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: