用户名和密码正确不跳转

用户名和密码正确不跳转

# 具体遇到的问题

# 报错信息的截图

# 相关课程内容截图

# 尝试过的解决思路和结果

# 粘贴全部相关代码,切记添加代码注释(请勿截图)

在这里输入代码,可通过选择【代码语言】突出显示

<?xml version="1.0" encoding="UTF-8"?>

<c3p0-config>

  <default-config>

    <property name="driverClass">com.mysql.cj.jdbc.Driver</property>

    <property name="jdbcUrl">jdbc:mysql:///shop</property>

    <property name="user">root</property>

    <property name="password">lyt147369258</property>

  </default-config>

</c3p0-config>

package com.imooc.dao.impl;


import java.sql.Connection;

import java.sql.PreparedStatement;

import java.sql.ResultSet;


import com.imooc.dao.UserDao;

import com.imooc.domain.User;

import com.imooc.utils.JDBCUtils;


public class UserDaoImpl implements UserDao {


@Override

public User login(User user) {

Connection conn=null;

PreparedStatement pstmt=null;

ResultSet res=null;

try {

//连接数据

conn=JDBCUtils.getConnection();

//编写sql

String sql="slect * from user where username=? and password=?";

//预编译sql

pstmt=conn.prepareStatement(sql);

//设置值

pstmt.setString(1, user.getUsername());

pstmt.setString(2, user.getPassword());

res=pstmt.executeQuery();

//取得结果集

if(res.next()) {

//将结果集放入User数据中

User users=new User();

users.setUsername(res.getString("username"));

users.setUid(res.getInt("uid"));

users.setPassword(res.getString("password"));

return users;

}

}catch(Exception e) {

e.printStackTrace();

}finally {

//释放资源

JDBCUtils.release(res, pstmt, conn);

}

return null;

}

}

package com.imooc.web.action;


import java.io.IOException;

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 com.imooc.domain.User;

import com.imooc.service.UserService;

import com.imooc.service.impl.UserServiceImpl;



@WebServlet("/UserServlet")

public class UserServlet extends HttpServlet {

private static final long serialVersionUID = 1L;


protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

//接受前台传入的数据

String s=request.getParameter("method");

if("login".equals(s)) {

login(request,response);

}else if("logout".equals(s)) {

logout(request,response);

}

}

private void logout(HttpServletRequest request, HttpServletResponse response) throws IOException {

//1、销毁session

request.getSession().invalidate();

//2、进行重定向

response.sendRedirect(request.getContextPath()+"/admin/login.jsp");

}

/**

 * 实现登录操作

 * @param request

 * @param response

 * @throws IOException 

 * @throws ServletException 

 */


private void login(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

String username=request.getParameter("username");

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

System.out.println(username+password);

//封装数据

User user=new User();

user.setUsername(username);

user.setPassword(password);

//处理数据

   UserService userservice=new UserServiceImpl();

   //返回值是User,参数为user

  User users=userservice.login(user);

//处理完数据后,完成页面跳转

  if(users==null) {

  //登录失败

  //返回登录页面

  request.setAttribute("msg", "用户名或者密码错误");

  //请求的转发

  request.getRequestDispatcher("/admin/login.jsp").forward(request, response);

  //登录成功

  //将用户信息进行保存,进行页面的跳转

  request.getSession().setAttribute("users", users);

  //进行重定向

response.sendRedirect(request.getContextPath()+"/admin/category_list.jsp");

  }

}

 




protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

doGet(request, response);

}


}

错误提示:

java.sql.SQLException: The server time zone value '?й???????' is unrecognized or represents more than one time zone. You must configure either the server or JDBC driver (via the serverTimezone configuration property) to use a more specifc time zone value if you want to utilize time zone support.

Caused by: com.mysql.cj.exceptions.InvalidConnectionAttributeException: The server time zone value '?й???????' is unrecognized or represents more than one time zone. You must configure either the server or JDBC driver (via the serverTimezone configuration property) to use a more specifc time zone value if you want to utilize time zone support.


正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

2回答
好帮手慕小尤 2020-11-26 09:48:58

同学你好,1. 报连接数据库异常,则代表xml文件是生效的。

2. 同学是测试代码还报这个异常吗?如果是,则建议同学清除缓存,重新测试代码试一下。如下图所示:

http://img1.sycdn.imooc.com//climg/5fbf08f909da060202400228.jpg

如果不是,则建议同学查看控制台,查看是否存在异常信息。

3. 工具包里面的注释是乱码应该是不影响代码运行的,建议同学清除缓存重新试一下,如果还存在问题,则建议同学尝试将项目字符集修改utf-8,或重新创建一个项目试一下。
好帮手慕小尤 2020-11-25 10:40:13

同学你好,连接数据时报错The server time zone value '?й???????'是提示系统时区出现错误,建议同学在连接数据库时,添加serverTimezone的时区设置,并且为了避免乱码等问题,同学可以加上CharacterEncoding等编码内容的设置,比如:

数据库名称?serverTimezone=Hongkong&amp;useUnicode=true&amp;characterEncoding=utf-8&amp;userSSL=false


  • 提问者 复java_n #1
    我设置了连接池的xml没有起作用 <?xml version="1.0" encoding="UTF-8"?> <c3p0-config> <default-config> <property name="driverClass">com.mysql.cj.jdbc.Driver</property> <property name="jdbcUrl">jdbc:mysql:///shop?serverTimezone=Hongkong&amp;useUnicode=true&amp;characterEncoding=utf-8&amp;userSSL=false</property> <property name="user">root</property> <property name="password">lyt147369258</property> </default-config> </c3p0-config> 打开工具包里面的注释是乱码
    2020-11-25 20:21:08
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师