求助!JSP跳转servlet 404报错

llllllllIllllIIllI 2017-10-18 07:32:41
这是项目结构:

------------------------------------------------------------------------------------------------------------------

------------------------------------------------------------------------------------------------------------------
UserDAO.java :
package dao;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import beans.User;

public class UserDAO {
public static final String DRIVER = "com.mysql.jdbc.Driver";
public static final String DBURL = "jdbc:mysql://localhost:3306/user_info";
public static final String DBUSER = "root";
public static final String DBPASS = "1234";

private Connection conn = null;
private PreparedStatement pStat = null;
private ResultSet rs = null;

// 获得数据库连接
public Connection getConnection() {
try {
Class.forName(DRIVER).newInstance();
return DriverManager.getConnection(DBURL, DBUSER, DBPASS);
} catch (Exception e) {
return null;
}
}

// 关闭数据库连接
public void close() {
try {
if (rs != null) {
rs.close();
}
if (pStat != null) {
pStat.close();
}
if (conn != null) {
conn.close();
}
} catch (Exception e) {
e.printStackTrace();
}
}

// 根据用户名查找
public boolean findUserByUsername(String username) {
conn = getConnection();
try {
pStat = conn.prepareStatement("select * from users where username=?");
pStat.setString(1, username);
rs = pStat.executeQuery();
if (rs.next()) {
return true;
} else {
return false;
}
} catch (SQLException e) {
return false;
} finally {
close();
}
}

// 根据用户名,密码查找
public boolean findUser(String username, String password) {
conn = getConnection();
try {
pStat = conn.prepareStatement("select * from users where username=? password=?");
pStat.setString(1, username);
pStat.setString(2, password);
rs = pStat.executeQuery();
if (rs.next()) {
return true;
} else {
return false;
}
} catch (Exception e) {
return false;
}finally {
close();
}
}

//添加用户
public boolean add(User user) {
conn=getConnection();
try {
pStat=conn.prepareStatement("insert into users values(null,?,?)");
pStat.setString(1, user.getUsername());
pStat.setString(2, user.getPassword());
int cnt=pStat.executeUpdate(); //executeUpdate 的返回值是一个整数,指示受影响的行数(即更新计数)
if(cnt>0) {
return true;
}else {
return false;
}
}catch(Exception e){
return false;
}finally {
close();
}
}
}


------------------------------------------------------------------------------------------------------------------
RegServlet.java :
package servlets;

import java.io.IOException;

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

import beans.User;
import dao.UserDAO;

public class RegServlet extends HttpServlet {

@Override
public void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String username = request.getParameter("username");
String password = request.getParameter("password");
String path = request.getContextPath();
User user = new User();
user.setUsername(username);
user.setPassword(password);
UserDAO userdao = new UserDAO();
if (userdao.findUserByUsername(username)) {
request.getSession().setAttribute("err", "用户名已存在");
response.sendRedirect(path + "/register.jsp");
} else {
boolean flag = userdao.add(user);
if (flag) {
request.getSession().setAttribute("username", username);
response.sendRedirect(path + "/welcome.jsp");
} else {
request.getSession().setAttribute("err", "注册失败");
response.sendRedirect(path + "/register.jsp");
}
}
}

}


LoginServlet:
package servlets;

import java.io.IOException;

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

import dao.UserDAO;

public class LoginServlet extends HttpServlet {

@Override
public void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String username = request.getParameter("username");
String password = request.getParameter("password");
String path = request.getContextPath();
UserDAO userdao = new UserDAO();
boolean flag = userdao.findUser(username, password);
if (flag) {
request.getSession().setAttribute("username", username);
response.sendRedirect(path + "/welcome.jsp");
} else {
request.getSession().setAttribute("err", "登陆失败");
response.sendRedirect(path + "/login.jsp");
}

}

}

-----------------------------------------------------------------------------------------------------------
login.jsp:
	<form action="/LoginServlet">
用户名<input type="text" name="username"><br>
密码<input type="password" name="password"><br>
<input type="submit" value="登录">
<input type="reset" value="重填">
</form>


register.jsp:
<form action="/RegServlet">
用户名<input type="text" name="username"><br>
密码<input type="password" name="password"><br>
<input type="submit" value="注册">
<input type="reset" value="重填">
</form>


web.xml :
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
id="WebApp_ID" version="3.0">

<display-name>MVC_Test</display-name>
<welcome-file-list>
<welcome-file>register.jsp</welcome-file>
</welcome-file-list>

<servlet>
<servlet-name>RegServlet</servlet-name>
<servlet-class>servlets.RegServlet</servlet-class>
</servlet>
<servlet>
<servlet-name>LoginServlet</servlet-name>
<servlet-class>servlets.LoginServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>RegServlet</servlet-name>
<url-pattern>/RegServlet</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>LoginServlet</servlet-name>
<url-pattern>/LoginServlet</url-pattern>
</servlet-mapping>
</web-app>
...全文
225 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

2,100

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧