使用重定向与转发对登录页面实现登录失败与登录成功的页面跳转时,代码不报错,进入登录页面(http://localhost:8080/dt-chapter/page/front/login.jsp)与登录页面跳转到DemoServlet页面全都没出现错误,但是就是无法跳转到登录成功与失败的页面。
DemoServlet类:
package cn.java.servlet;
import java.io.IOException;
import java.sql.SQLException;
import java.util.Map;
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 cn.java.dao.UserDao;
import cn.java.dao.impl.UserDaoImpl;
/**
Servlet implementation class DemoServlet
/
@WebServlet("/DemoServlet")
public class DemoServlet extends HttpServlet {
private UserDao ud = new UserDaoImpl();
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
try {
String username = request.getParameter("username");
String password = request.getParameter("password");
Map<String, Object> map = ud.SelectUserId(username, password);
Object obj = map.get("flag");
int flag = Integer.parseInt(obj.toString());
if (flag >= 1) {
request.getRequestDispatcher("/page/front/success.jsp").forward(request, response);
} else {
response.sendRedirect("/dt-chapter/page/front/fail.jsp");
}
} catch (SQLException e) {
e.printStackTrace();
}
}
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
}
}
UserDaoImpl类
package cn.java.dao.impl;
import java.sql.SQLException;
import java.util.Map;
import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.MapHandler;
import cn.java.dao.UserDao;
import cn.java.utils.JdbcUtil;
public class UserDaoImpl implements UserDao {
private QueryRunner qr = new QueryRunner(JdbcUtil.dataSource);
@Override
public Map<String, Object> SelectUserId(String username, String password) throws SQLException {
return qr.query(
"SELECT COUNT(*) flag FROM USER WHERE `password`='" + password + "'AND username='" + username + "'",
new MapHandler());
}
}
登录页面
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<%
String bassPath=request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+request.getContextPath()+"/";
%>
用户名
密 码
足球 篮球 乒乓球
我感觉问题可能是出在我的DemoServlet的if代码块中,但是因为没报错,无法解决问题
能够实现页面跳转
你这个表单如果提交的是POST请求进入不了你写的GET请求里,第二就是跳转前的代码出现异常没有往下执行那两个跳转
看看tomcat的日志目录中的catalina.out文件,e.printStackTrace()打印的内容,应该也能在这个日志文件中看到