Asicam 2019-05-01 22:48 采纳率: 0%
浏览 516

java web实现页面登陆

好像是这里面读不到数据,改了很久还是改不出来,求助!
package com.ding.dao;

import com.ding.entity.user;
import com.ding.util.DBHelper;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;

/**
*

  • @author irin
    */
    public class userDao extends DBHelper{

    public user login(String username, String password){
    user u = null;
    String sql = "select * from user where username = ? and password=?";

    try{
    ResultSet rs = this.executeQuery(sql,username,password);
    if(rs.next()){
    u = new user();
    u.setUsername(rs.getString(1));
    u.setPassword(rs.getString(2));

    }
    }catch(Exception e){
    e.printStackTrace();
    }finally{
    this.close();

    }   
    

    return u;

    }
    }

package com.ding.servlet;

import com.ding.dao.userDao;
import com.ding.entity.user;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
*

  • @author irin
    */
    public class userServlet extends HttpServlet {

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    doGet(req,resp);
    }
    private userDao userdao = new userDao();
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    req.setCharacterEncoding("utf-8");

    String username = req.getParameter("user");
    String password = req.getParameter("password");

    user u = new user();
    u.setUsername(username);
    u.setPassword(password);
    
    userDao userdao = new userDao();
    if(userdao.login(username,password)!=null){
        req.setAttribute("user",u );
        resp.sendRedirect("welcome.jsp");
    }
    else
        req.getRequestDispatcher("sorry.jsp").forward(req, resp);
    

    }

}

package com.ding.entity;

/**
*

  • @author irin
    */
    public class user {
    // private int id;
    private String username;
    private String password;
    // private String role;

    public user() {
    }

    public user(String username, String password) {
    this.username = username;
    this.password = password;
    }

    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.ding.util;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.logging.Level;
import java.util.logging.Logger;

/**
*

  • @author irin
    */
    public class DBHelper {
    private Connection conn;
    private PreparedStatement ps;
    private ResultSet rs;

    //获得连接
    private void getConnection(){
    try {
    Class.forName("com.mysql.jdbc.Driver");
    String url = "jdbc:mysql://localhost:3306/dormitorymanage?characterEncoding=utf8&useSSL=true";
    conn = DriverManager.getConnection(url,"root","Ding1234");
    } catch (Exception e) {
    e.printStackTrace();
    }

    }

    //关闭
    public void close(){
    if(conn!=null){
    try {
    conn.close();
    } catch (Exception e) {
    e.printStackTrace();
    }
    conn = null;
    }

    if(ps!=null){
    try {
        ps.close();
    } catch (Exception e) {
        e.printStackTrace();
    }
        ps = null;
    }
    
    if(rs!=null){
    try {
        rs.close();
    } catch (Exception e) {
        e.printStackTrace();
    }
        rs = null;
    }
    

    }

    //更新--增加、修改、删除
    public int executeUpdate(String sql,Object...objects){
    try {
    this.getConnection();
    ps = conn.prepareStatement(sql);
    if(objects!=null){
    for(int i=0;i<objects.length;i++){
    ps.setObject(i+1, objects[i]);
    }
    }
    return ps.executeUpdate();
    } catch (SQLException e) {
    e.printStackTrace();
    }finally{
    this.close();
    }
    return -1;

    }

    //查询
    public ResultSet executeQuery(String sql,Object...objects){
    try {
    this.getConnection();
    ps = conn.prepareStatement(sql);
    if(objects!=null){
    for(int i=0;i<objects.length;i++){
    ps.setObject(i+1, objects[i]);
    }
    }
    return rs = ps.executeQuery();
    } catch (SQLException e) {
    e.printStackTrace();
    }
    return null;

    }
    }

  • 写回答

1条回答 默认 最新

  • 苏生Susheng 2024-03-12 21:33
    关注

    中文账号还是英文账号,中文账号的话,有可能是字符集编码的问题

    评论

报告相同问题?

悬赏问题

  • ¥15 ads仿真结果在圆图上是怎么读数的
  • ¥20 Cotex M3的调试和程序执行方式是什么样的?
  • ¥20 java项目连接sqlserver时报ssl相关错误
  • ¥15 一道python难题3
  • ¥15 用matlab 设计一个不动点迭代法求解非线性方程组的代码
  • ¥15 牛顿斯科特系数表表示
  • ¥15 arduino 步进电机
  • ¥20 程序进入HardFault_Handler
  • ¥15 oracle集群安装出bug
  • ¥15 关于#python#的问题:自动化测试