首先目的是jsp页面(login.jsp)拿到账号密码,跳转到第二个jsp页面(check.jsp),调用自己写的java方法(mysqldao.check(string name,string pwd))去数据库查询并返回结果。
问题有如下几个:
1.mysqldao.check()导入出错,即是在check.jsp中无法调用到mysqldao.check()方法
2.mysqldao.check()拿到name与pwd值
3.check.jsp报错加载不到jdbc驱动问题
问题1,解决方案如下:
1.将自己写的类打成包,再通过<%@ page import="包名.方法" %>
去调用
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ page import="logindao.mysql.login" %>
>
<html>
<head>
<title>Title</title>
</head>
<body>
<%
String name = request.getParameter("user");
String pwd = request.getParameter("pwd");
int result = login.login1(name,pwd);
if (result==1){
out.print("登陆成功");
}else if (result==0){
out.print("账号名或者密码错误");
}else{
out.print("系统异常");
}
%>
</body>
</html>
问题2:
- 因为request是jsp的内置对象,我们在java代码中是无法直接调用requset,故无法通过request.getParameter()去拿值,这里就我们通过函数传参的方式去解决这个问题。
public static int login1(String usr,String pwd){
/*
* 1成功 0账号秘密出错 -1系统异常
*
* */
PreparedStatement statement = null;
Connection connection = null;
ResultSet rs = null;
try {
Class.forName("com.mysql.cj.jdbc.Driver");
connection = DriverManager.getConnection(URL,USERNAME,PWD);
String sql="select count(*) from user where user_id = ? and user_password = ?";
statement = connection.prepareStatement(sql);
statement.setString(1,usr);
statement.setString(2,pwd);
rs = statement.executeQuery();
int count = -1;
if (rs.next()){
count = rs.getInt(1);
}if (count>0){
return 1;
}else {
return 0;
}
}catch (Exception e){
e.printStackTrace();
return -1;
}finally {
try {
if (rs != null ){
rs.close();
statement.close();
connection.close();
}
}catch (Exception e){
e.printStackTrace();
}
}
问题3
- 这个问题花费了我很多的时间,因为我比较菜,其次idea的相关问题解决方法在网络上没有eclipse的资源多
- 首先遇到这个问题,网上的大多解决方案是,是否将jar包放入到了web-inf下的lib目录中。一般而言问题都会解决,这是web项目不同于普通项目的地方。
- 我个人是将jar包放入到了lib目录中,却并未如意。
-
后来通过大量尝试,发现问题是在于idea的项目配置出错了。很重要的一步在创建web项目的时候,配置lib目录与classes目录。即首先在web-inf目录下创建lib目录和classes目录,然后再配置到这两个目录。IDEA配置JavaWeb项目
- 目的:在构建项目时,能将.class文件输出至 classes 文件夹中。从lib目录读取jar包
- 还有就是配置facets,即配置到项目的web根目录下,其次这个这个反斜杠及其的坑,我在做完上面的步骤之后,打开网页报404.资源不存在,后来查看了一会儿,才发现这个反斜杠写反了,写成了 ” / “,导致后面的无法访问.极度可怜。
最终,终于好了。太菜了,哭了。